{"version":3,"file":"static/js/69.d4c74e1b.chunk.js","mappings":"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","sources":["utils/translation.js","app/Index.jsx","utils/behaviors.js","utils/queries/conversations.js","utils/queries/integration.js","utils/sdk.js","utils/session-storage.js","utils/cookie.js","utils/webmessenger.js","../../../packages/websocket-client/index.js","utils/websocket.js","../../../packages/api-livechat/src/utils/Errors.ts","../../../packages/api-livechat/src/utils/Settings.ts","../../../packages/api-livechat/src/utils/ApiClient.ts","../../../packages/api-livechat/src/services/authentication/index.ts","../../../packages/api-livechat/src/services/authentication/Auth.ts","../../../packages/api-livechat/src/services/messaging/Webmessenger.ts","../../../packages/api-livechat/src/services/messaging/index.ts"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { IntlProvider } from \"react-intl\";\nimport PropTypes from \"prop-types\";\nimport axios from \"axios\";\n\nconst TranslationContext = createContext();\n\nconst projectToken =\n process.env.REACT_APP_TRANSLATION_PROJECT ||\n \"11494a5a46f54bf2a46c2767c73626b0\";\nconst environment = process.env.REACT_APP_TRANSLATION_ENV || \"_latest\";\n\nfunction TranslationProvider({ children }) {\n const [messages, setMessages] = useState({});\n const [translations, setTranslations] = useState([]);\n const [language, setLanguage] = useState(null);\n\n const translationValue = useMemo(() => ({\n changeLanguage: (locale) => setLanguage(locale),\n language,\n }));\n\n useEffect(() => {\n fetch(\n `https://cdn.simplelocalize.io/${projectToken}/${environment}/_index`\n )\n .then((data) => data.json())\n .then((t) => setTranslations(t))\n .then(() =>\n fetch(\n `${process.env.REACT_APP_LIVECHAT}/language/${window.eK.integration}`\n )\n .then((data) => data.json())\n .then((l) => setLanguage(l.language))\n );\n }, []);\n\n useEffect(() => {\n setMessages(translations[language]);\n }, [language, translations]);\n\n return (\n \n {language && (\n {}}\n >\n {children}\n \n )}\n \n );\n}\n\nTranslationProvider.propTypes = {\n children: PropTypes.shape(),\n};\n\nTranslationProvider.defaultProps = { children: {} };\n\nfunction useTranslation() {\n const context = useContext(TranslationContext);\n if (context === undefined) {\n throw new Error(\n \"useTranslation must be used within a TranslationProvider\"\n );\n }\n return context;\n}\n\nexport {TranslationProvider, useTranslation};\n","import React, { Suspense, useEffect } from \"react\";\n\nimport { getFingerprint } from \"@thumbmarkjs/thumbmarkjs\";\n\nimport { BehaviorsProvider } from \"../utils/behaviors\";\nimport { SDKProvider } from \"../utils/sdk\";\nimport { TranslationProvider } from \"../utils/translation\";\nimport { WebmessengerProvider } from \"../utils/webmessenger\";\nimport { WebSocketProvider } from \"../utils/websocket\";\n\nconst App = React.lazy(() => import(\"./App\"));\n\nfunction Index() {\n useEffect(() => {\n async function init() {\n const fingerprint = await getFingerprint();\n\n window.eK.fingerprint = fingerprint;\n if (process.env.REACT_APP_ANALYTICS) {\n try {\n const data = {\n fingerprint,\n integration: window.eK.integration,\n entity: window.eK.entity,\n url: window.location.href,\n };\n\n await fetch(`${process.env.REACT_APP_ANALYTICS}/pageView`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n } catch (err) {\n console.error(err);\n }\n }\n }\n\n init();\n }, []);\n\n return (\n \n \n \n \n }>\n {\n window.__ekwm = ref;\n }}\n >\n \n \n \n \n \n \n \n );\n}\n\nexport default Index;\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport * as API from \"@ekonsilio/api-livechat\";\nimport set from \"lodash/set\";\nimport { DateTime } from \"luxon\";\nimport PropTypes from \"prop-types\";\nimport { isMobile } from \"react-device-detect\";\nimport { useIntl } from \"react-intl\";\n\nimport { getBehaviorsSessionStorage } from \"./session-storage\";\nimport { useWebmessenger } from \"./webmessenger\";\n\nconst BehaviorsContext = createContext();\n\nconst webmessengerApi = new API.Messaging.Webmessenger();\n\nfunction BehaviorsProvider({ children }) {\n const intl = useIntl();\n const timer = useRef(null);\n\n const {\n maximized,\n openWindow,\n hide,\n show,\n greeting,\n setGreeting,\n createNotification,\n closeNotification,\n conversation,\n integration,\n online,\n } = useWebmessenger();\n\n const [isInit, setIsInit] = useState(false);\n const [hideChat, setHideChat] = useState(false);\n /* create this state only for showChat behavior */\n const [showChat, setShowChat] = useState(false);\n const [enabled, setEnabled] = useState(true);\n const [behaviors, setBehaviors] = useState(null);\n\n const [data, setData] = useState({\n timeOnSite: getBehaviorsSessionStorage()\n ? DateTime.now()\n .diff(\n DateTime.fromISO(\n getBehaviorsSessionStorage().website.date\n )\n )\n .as(\"seconds\")\n : 0,\n timeOnPage: 0,\n });\n\n const refresh = useCallback(async () => {\n const storage = getBehaviorsSessionStorage();\n setData((previousState) => ({\n ...previousState,\n timeOnSite: storage\n ? DateTime.now()\n .diff(DateTime.fromISO(storage.website.date))\n .as(\"seconds\")\n : 0,\n timeOnPage: storage\n ? DateTime.now()\n .diff(DateTime.fromISO(storage.page.date))\n .as(\"seconds\")\n : 0,\n }));\n }, [setData]);\n\n const exec = useCallback(\n async (behavior, action, storage) => {\n let sentAt;\n switch (action.type) {\n case \"openWindow\":\n if (!hideChat && storage.hideChat === false) {\n closeNotification();\n openWindow();\n }\n break;\n case \"hideChat\":\n if (!conversation && !showChat) {\n hide();\n setHideChat(true);\n\n storage.hideChat = true;\n sessionStorage.setItem(\n \"eK-behaviors\",\n JSON.stringify(storage)\n );\n }\n break;\n case \"showChat\":\n if (!conversation && hideChat) {\n storage.hideChat = false;\n show();\n setShowChat(true);\n setHideChat(false);\n }\n break;\n case \"notification\":\n if (!hideChat && !maximized) {\n createNotification({\n title:\n action.title ||\n intl.formatMessage({\n id: \"WEBMESSENGER.NOTIFICATION.NEW_MESSAGE\",\n defaultMessage: \"Nouveau message\",\n }),\n text: action.text,\n behavior: behavior._id,\n });\n }\n break;\n case \"greeting\":\n if (action.subType === \"message\")\n sentAt =\n storage.triggered.greeting?.message?.sentAt ||\n DateTime.now();\n\n setGreeting((prevMessage) => ({\n ...prevMessage,\n [action.subType]: {\n text: action.text,\n title: action.title,\n sentAt,\n },\n }));\n break;\n default:\n break;\n }\n\n /**\n * Return the values to be updated in the store\n */\n return (!hideChat && !storage.hideChat) ||\n action.type === \"hideChat\" ||\n action.type === \"showChat\"\n ? {\n ...(action.type === \"greeting\"\n ? {\n [`triggered.greeting.${behavior._id}`]: true,\n ...(action.subType === \"message\" && {\n \"triggered.greeting.message.behavior\":\n behavior._id,\n \"triggered.greeting.message.sent\":\n storage.triggered.greeting?.message\n ?.sent,\n \"triggered.greeting.message.sentAt\": sentAt,\n \"triggered.greeting.message.text\":\n action.text,\n }),\n }\n : {\n [`triggered.${behavior._id}`]: true,\n }),\n }\n : {};\n },\n [\n openWindow,\n hide,\n show,\n createNotification,\n setGreeting,\n closeNotification,\n conversation,\n hideChat,\n showChat,\n maximized,\n ]\n );\n\n const evaluate = useCallback(\n async (forceBehaviors) => {\n const storage = getBehaviorsSessionStorage();\n\n /**\n * Boolean to check if storage has changed\n */\n let updateStorage = false;\n\n /**\n * Set the storage by property key (ex: `greeting.message`)\n * @param {Object} triggered\n */\n\n const updateTriggeredBehavior = (triggered) => {\n for (const key in triggered) {\n if (triggered) {\n set(storage, key, triggered[key]);\n }\n }\n if (!updateStorage) updateStorage = true;\n };\n\n if (storage) {\n const behaviorsData = behaviors || forceBehaviors;\n\n const pageUrl = new URL(window.location.href);\n\n pageUrl.timeOnSite = data.timeOnSite;\n pageUrl.timeOnPage = data.timeOnPage;\n pageUrl.deviceType = isMobile ? \"mobile\" : \"desktop\";\n // Save original pathname in path value\n pageUrl.path = pageUrl.pathname;\n // Include query params to the pathname during evaluation\n pageUrl.pathname += pageUrl.search;\n // remove ? to query params during evaluation\n pageUrl.queryString = pageUrl.search.slice(1);\n\n if (behaviorsData) {\n const { default: Vote } = await import(\"./vote\");\n\n const res = await Vote.evaluate(\n behaviorsData,\n pageUrl,\n \"conditions\"\n );\n\n const behaviorsHideChat = behaviorsData.filter(\n ({ actions }) =>\n actions.find((action) => action.type === \"hideChat\")\n );\n\n const behaviorsShowChat = behaviorsData.filter(\n ({ actions }) =>\n actions.find((action) => action.type === \"showChat\")\n );\n\n const isEvaluatedHideChat =\n behaviorsHideChat?.length &&\n behaviorsHideChat.find(\n (behaviorOpenWindow) => res[behaviorOpenWindow._id]\n );\n\n const isEvaluatedShowChat =\n behaviorsShowChat?.length &&\n behaviorsShowChat.find(\n (behaviorOpenWindow) => res[behaviorOpenWindow._id]\n );\n\n for (const [id, value] of Object.entries(res)) {\n const behavior = behaviorsData.find(\n (behaviorData) => behaviorData._id === id\n );\n\n if (behavior.active && value) {\n /**\n * Iterate over the actions\n * (Multiple actions case (example: greeting))\n */\n for (const action of behavior.actions) {\n /**\n * Because of the fact that there are two types of greeting,\n * the greeting message is only triggered if there is not already a message\n * in the store\n */\n if (\n action.type === \"greeting\" &&\n (action.subType === \"header\" ||\n !conversation) &&\n !storage.triggered.greeting[behavior._id]\n ) {\n updateTriggeredBehavior(\n await exec(behavior, action, storage)\n );\n } else if (\n action.type === \"hideChat\" &&\n !showChat\n )\n updateTriggeredBehavior(\n await exec(behavior, action, storage)\n );\n else if (action.type === \"showChat\")\n updateTriggeredBehavior(\n await exec(behavior, action, storage)\n );\n else if (action.type === \"notification\") {\n // Purposely nested condition\n if (!conversation)\n if (\n !storage.triggered?.notification?.[\n behavior._id\n ]\n ) {\n await exec(\n behavior,\n action,\n storage\n );\n }\n } else if (\n ((action.type === \"openWindow\" &&\n (!isEvaluatedHideChat ||\n isEvaluatedHideChat.active ===\n true) &&\n (!isEvaluatedShowChat ||\n isEvaluatedShowChat.active ===\n true)) ||\n (action.type !== \"openWindow\" &&\n action.type !== \"greeting\" &&\n action.type !== \"hideChat\" &&\n action.type !== \"showChat\" &&\n action.type !== \"notification\") ||\n (action.type === \"notification\" &&\n /**\n * Display all notification only if they are not not associated to a behavior greeting message\n * or only if it associated to a behavior greeting message and the behavior has been triggered\n * and there is no conversation\n */\n (!behavior.actions.find(\n ({ subType }) =>\n subType === \"message\"\n ) ||\n (!conversation &&\n storage.triggered.greeting\n .message._id ===\n behavior._id)))) &&\n !storage.triggered[behavior._id]\n ) {\n updateTriggeredBehavior(\n await exec(behavior, action, storage)\n );\n }\n }\n }\n }\n }\n\n /**\n * Set the greeting message if there is no greeting displayed and there is a message in the store\n * change page case\n */\n if (storage.triggered.greeting?.message && !greeting?.message) {\n setGreeting((prevMessage) => ({\n ...prevMessage,\n message: {\n text: storage.triggered.greeting.message.text,\n sentAt: storage.triggered.greeting.message.sentAt,\n },\n }));\n }\n\n if (updateStorage)\n sessionStorage.setItem(\n \"eK-behaviors\",\n JSON.stringify(storage)\n );\n }\n },\n [behaviors, data, exec, setGreeting, conversation, greeting]\n );\n\n const disable = useCallback(() => {\n if (enabled) {\n setEnabled(false);\n }\n }, [enabled]);\n\n const enable = useCallback(() => {\n if (!enabled) {\n setEnabled(true);\n }\n }, [enabled]);\n\n const triggerOpenWindowBehaviors = useCallback(async () => {\n if (behaviors) {\n const storage = getBehaviorsSessionStorage();\n\n const openWindowBehaviors = behaviors\n .filter(\n (behavior) =>\n !!behavior.actions.find(\n (action) => action.type === \"openWindow\"\n )\n )\n .reduce(\n (res, behavior) => ({\n ...res,\n [`triggered.${behavior._id}`]: true,\n }),\n {}\n );\n\n for (const key in openWindowBehaviors) {\n if (openWindowBehaviors[key])\n set(storage, key, openWindowBehaviors[key]);\n }\n\n sessionStorage.setItem(\"eK-behaviors\", JSON.stringify(storage));\n }\n }, [behaviors]);\n\n useEffect(() => {\n if (integration !== null && enabled) {\n const store = getBehaviorsSessionStorage();\n\n if (!store) {\n sessionStorage.setItem(\n \"eK-behaviors\",\n JSON.stringify({\n website: {\n date: DateTime.now(),\n },\n page: {\n href: window.location.href,\n date: DateTime.now(),\n },\n triggered: {\n greeting: {},\n },\n })\n );\n }\n\n if (store) {\n sessionStorage.setItem(\n \"eK-behaviors\",\n JSON.stringify({\n ...store,\n ...(store.page.href !== window.location.href\n ? {\n page: {\n href: window.location.href,\n date: DateTime.now(),\n },\n }\n : {}),\n triggered: {\n ...store.triggered,\n /**\n * Empty the previous greeting to reset it (greeting header)\n */\n greeting: {},\n },\n })\n );\n }\n\n webmessengerApi\n .getBehaviors(integration)\n .then(async (behaviorsElements) => {\n setBehaviors(behaviorsElements);\n })\n .catch((err) => err);\n }\n }, [integration, enabled]);\n\n useEffect(() => {\n if (online && behaviors !== null && isInit === false) {\n refresh()\n .then(() => evaluate(behaviors))\n .then(() => setIsInit(true));\n }\n }, [online, behaviors, isInit]);\n\n useEffect(() => {\n if (enabled) {\n timer.current = setInterval(async () => {\n await refresh();\n await evaluate();\n }, 2000);\n }\n\n return () => {\n clearInterval(timer.current);\n };\n }, [behaviors, evaluate, refresh, enabled]);\n\n useEffect(() => {\n if (conversation !== null) {\n if (hideChat) {\n show();\n setHideChat(false);\n }\n disable();\n }\n }, [conversation, disable, hideChat, show]);\n\n useEffect(() => {\n if (isInit) {\n const storage = getBehaviorsSessionStorage();\n storage.hideChat = hideChat;\n sessionStorage.setItem(\"eK-behaviors\", JSON.stringify(storage));\n }\n }, [hideChat, isInit]);\n\n const values = useMemo(\n () => ({\n behaviors,\n disable,\n enable,\n hideChat,\n triggerOpenWindowBehaviors,\n isInit,\n }),\n [behaviors, disable, enable, hideChat, isInit]\n );\n return (\n \n {children}\n \n );\n}\n\nfunction useBehaviors() {\n const context = useContext(BehaviorsContext);\n if (context === undefined) {\n throw new Error(\"useBehaviors must be used within a BehaviorsProvider\");\n }\n return context;\n}\n\nBehaviorsProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport { BehaviorsProvider, useBehaviors };\n","import axios from \"axios\";\nimport { useMutation, useQuery } from \"react-query\";\n\nexport function useAddHistoryMutation(options) {\n return useMutation(\n async ({ _id, url }) =>\n await axios.put(`/conversation/${_id}/history`, {\n url,\n }),\n options\n );\n}\n\nexport function useConversationMessagesQuery(\n conversationId,\n unreadOnly,\n options\n) {\n return useQuery(\n [\"messages\", ...(unreadOnly ? [\"unread\"] : [])],\n async () =>\n await axios.get(\n `/conversation/${conversationId}/messages${\n unreadOnly ? \"?unread\" : \"\"\n }`\n ),\n options\n );\n}\n\nexport function useRateConversationMutation(conversationId, options) {\n return useMutation(\n async ({ satisfactionRating }) =>\n await axios.post(`/conversation/${conversationId}/rate`, {\n satisfactionRating,\n }),\n options\n );\n}\n","import axios from \"axios\";\nimport { useQuery } from \"react-query\";\n\n// eslint-disable-next-line import/prefer-default-export\nexport function useGetIntegrationQuery(integrationId, options) {\n return useQuery(\n [\"integration\", integrationId],\n async () => await axios.get(`/integration/${integrationId}`),\n options\n );\n}\n","import React, {\n createContext,\n useContext,\n useImperativeHandle,\n useState,\n} from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport { useBehaviors } from \"./behaviors\";\nimport { useWebmessenger } from \"./webmessenger\";\n\nconst SDKContext = createContext();\n\nconst SDKProvider = React.forwardRef(({ children }, ref) => {\n const {\n openWindow,\n closeWindow,\n notification,\n closeNotification,\n online,\n operator,\n maximized,\n } = useWebmessenger();\n const { triggerOpenWindowBehaviors } = useBehaviors();\n\n const [events, setEvents] = useState({});\n\n useImperativeHandle(\n ref,\n () => ({\n maximize: () => {\n if (online) {\n if (notification) {\n closeNotification();\n }\n openWindow(true);\n triggerOpenWindowBehaviors();\n }\n },\n minimize: () => {\n closeWindow();\n },\n isMaximized: () => maximized,\n status: () => ({\n online,\n operator:\n online && operator\n ? {\n name: operator.name,\n title: operator.title,\n picture: `${process.env.REACT_APP_FILE}/files/avatars/${operator.face}`,\n }\n : null,\n }),\n on: (eventType, listener) => {\n if (typeof events[eventType] !== \"object\") {\n setEvents((prevEvents) => ({\n ...prevEvents,\n [eventType]: [],\n }));\n }\n\n setEvents((prevEvents) => ({\n ...prevEvents,\n [eventType]: [...prevEvents[eventType], listener],\n }));\n },\n off: (eventType, listener) => {\n if (typeof events[eventType] === \"object\") {\n const index = events[eventType].indexOf(listener);\n\n if (index > -1) {\n setEvents((prevEvents) => ({\n ...prevEvents,\n [eventType]: events[eventType].filter(\n (eventListener) => eventListener !== listener\n ),\n }));\n }\n }\n },\n }),\n [online, notification, events, operator, maximized]\n );\n\n const emit = (eventType, args) => {\n if (typeof events[eventType] === \"object\") {\n for (const listener of events[eventType]) {\n listener.call(this, args);\n }\n }\n };\n\n const value = React.useMemo(() => ({ emit }), [emit]);\n\n return {children};\n});\n\nfunction useSDK() {\n const context = useContext(SDKContext);\n if (context === undefined) {\n throw new Error(\"useSDK must be used within a SDKProvider\");\n }\n return context;\n}\n\nSDKProvider.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\nexport { SDKProvider, useSDK };\n","export function getBehaviorsSessionStorage() {\n const sessionItem = sessionStorage.getItem(\"eK-behaviors\");\n return sessionItem ? JSON.parse(sessionItem) : null;\n}\n\nexport function getChatButtonSessionStorage() {\n const sessionData = sessionStorage.getItem(\"eK-chat-button-animation\");\n return sessionData ? JSON.parse(sessionData) : true;\n}\n","const parseCookie = (str) =>\n str\n .split(\";\")\n .map((v) => v.split(\"=\"))\n .reduce((acc, v) => {\n acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(\n v[1].trim()\n );\n return acc;\n }, {});\n\nexport default parseCookie;\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nimport * as API from \"@ekonsilio/api-livechat\";\nimport axios from \"axios\";\n// eslint-disable-next-line camelcase\nimport jwt_decode from \"jwt-decode\";\nimport PropTypes from \"prop-types\";\nimport { useCookies } from \"react-cookie\";\n\nimport parseCookie from \"./cookie\";\nimport { useAddHistoryMutation } from \"./queries/conversations\";\nimport { useGetIntegrationQuery } from \"./queries/integration\";\nimport { getBehaviorsSessionStorage } from \"./session-storage\";\n\naxios.defaults.baseURL = process.env.REACT_APP_API_LIVECHAT;\nAPI.Settings.BaseURL = process.env.REACT_APP_API_LIVECHAT;\n\nconst authenticationApi = new API.Authentication.Auth();\nconst webmessengerApi = new API.Messaging.Webmessenger();\n\nconst WebmessengerContext = createContext();\n\nfunction WebmessengerProvider({ children }) {\n const [cookies, setCookie, removeCookie] = useCookies([\n \"eK-token\",\n \"eK-global\",\n \"eK-conversation\",\n ]);\n\n const [integration, setIntegration] = useState(null);\n const [visitorSatisfactionIntegration, setVisitorSatisfactionIntegration] =\n useState(false);\n const [operator, setOperator] = useState(null);\n const [greeting, setGreeting] = useState(null);\n const [notification, setNotification] = useState(null);\n const [conversation, setConversation] = useState(null);\n const [token, setToken] = useState(null);\n\n const [hidden, setHidden] = useState(true);\n const [maximized, setMaximized] = useState(false);\n const [typing, setTyping] = useState(false);\n const [online, setOnline] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [messages, setMessages] = useState([]);\n const [unreadMessagesCount, setUnreadMessagesCount] = useState(0);\n\n const { mutate: addHistory } = useAddHistoryMutation();\n\n const setGlobalSessionStorage = (obj) => {\n const expires = new Date();\n expires.setHours(expires.getHours() + 6);\n\n setCookie(\n \"eK-global\",\n {\n ...cookies[\"eK-global\"],\n ...obj,\n },\n {\n secure: true,\n path: \"/\",\n sameSite: \"strict\",\n expires,\n }\n );\n };\n\n const incrementUnreadMessagesCount = (count = 1) => {\n setUnreadMessagesCount((prevCount) => prevCount + count);\n };\n\n const resetUnreadMessagesCount = () => setUnreadMessagesCount(0);\n\n const openWindow = (persist) => {\n setMaximized(true);\n\n if (persist && !conversation === false)\n setGlobalSessionStorage({ maximized: true });\n };\n\n const closeWindow = () => {\n setMaximized(false);\n resetUnreadMessagesCount();\n if (conversation) setGlobalSessionStorage({ maximized: false });\n };\n\n const hide = () => setHidden(true);\n const show = () => setHidden(false);\n\n const closeNotification = () => {\n setNotification(null);\n\n const storage = getBehaviorsSessionStorage();\n\n // Remove behavior notification\n if (\n (storage.triggered?.greeting?.message?.behavior &&\n !storage.triggered?.notification?.[\n storage.triggered?.greeting?.message?.behavior\n ]) ||\n storage.triggered?.greeting?.message?.behavior\n ) {\n storage.triggered = {\n ...storage.triggered,\n notification: {\n ...storage.triggered.notification,\n [storage.triggered.greeting.message.behavior]: true,\n },\n };\n }\n\n if (notification?.behavior) {\n storage.triggered = {\n ...storage.triggered,\n notification: {\n ...storage.triggered.notification,\n [notification.behavior]: true,\n },\n };\n }\n\n // Remove conversation notification\n if (storage.triggered.notificationConversation)\n storage.triggered = {\n ...storage.triggered,\n notificationConversation: false,\n };\n\n sessionStorage.setItem(\"eK-behaviors\", JSON.stringify(storage));\n };\n const submitNotification = () => {\n setNotification(null);\n openWindow();\n };\n const createNotification = (data) => {\n setNotification({\n title: data.title,\n text: data.text,\n behavior: data.behavior,\n });\n };\n\n const login = (authToken) => {\n const expires = new Date(jwt_decode(authToken).exp * 1000);\n expires.setHours(expires.getHours() - 2);\n\n setToken(authToken);\n API.Settings.Authorization = {\n type: \"Bearer\",\n token: authToken,\n };\n axios.defaults.headers.common.Authorization = `Bearer ${authToken}`;\n\n setCookie(\"eK-token\", authToken, {\n secure: true,\n path: \"/\",\n sameSite: \"strict\",\n expires,\n });\n };\n\n const populateState = (conv) => {\n const { participants } = conv;\n const conversationSession = cookies[\"eK-conversation\"];\n\n setConversation(conv);\n\n const currentOperator = participants.operators.find((o) => o.current);\n const lastOperator =\n participants.operators[participants.operators.length - 1];\n\n if (!currentOperator && conversationSession && lastOperator)\n setOperator(lastOperator);\n else setOperator(currentOperator);\n };\n\n const storageEvent = useCallback(\n (event) => {\n if (event.storageArea !== localStorage) return;\n if (\n event.key === \"eK-conversation:new\" &&\n event.newValue &&\n event.newValue === integration\n ) {\n const tokenCookie =\n token || parseCookie(document.cookie)[\"eK-token\"];\n\n if (tokenCookie && !conversation) {\n setToken(tokenCookie);\n API.Settings.Authorization = {\n type: \"Bearer\",\n token: tokenCookie,\n };\n\n axios.defaults.headers.common.Authorization = `Bearer ${tokenCookie}`;\n\n const conversationSession =\n cookies[\"eK-conversation\"]?.conversation;\n\n if (conversationSession) {\n webmessengerApi\n .getConversation(conversationSession)\n .then((conv) => {\n populateState(conv);\n if (!maximized) setMaximized(true);\n })\n .catch(() => {});\n }\n }\n }\n },\n [integration, conversation, token, maximized]\n );\n\n useGetIntegrationQuery(integration, {\n onSuccess: ({ data }) => {\n setVisitorSatisfactionIntegration(data?.visitorSatisfaction);\n },\n enabled: !!integration,\n });\n\n useEffect(() => {\n window.addEventListener(\"storage\", storageEvent);\n return () => {\n window.removeEventListener(\"storage\", storageEvent);\n };\n }, [storageEvent]);\n\n useEffect(() => {\n if (\n conversation &&\n conversation?._id &&\n (!cookies[\"eK-conversation\"] ||\n !cookies[\"eK-conversation\"]?.conversation)\n ) {\n const expires = new Date();\n expires.setHours(expires.getHours() + 12);\n\n setCookie(\n \"eK-conversation\",\n {\n conversation: conversation._id.toString(),\n },\n {\n secure: true,\n path: \"/\",\n sameSite: \"strict\",\n expires,\n }\n );\n }\n }, [conversation]);\n\n useEffect(() => {\n if (window.eK && window.eK.integration && integration === null)\n setIntegration(window.eK.integration);\n\n if (cookies[\"eK-token\"]) {\n setToken(cookies[\"eK-token\"]);\n API.Settings.Authorization = {\n type: \"Bearer\",\n token: cookies[\"eK-token\"],\n };\n\n axios.defaults.headers.common.Authorization = `Bearer ${cookies[\"eK-token\"]}`;\n\n authenticationApi\n .login({})\n .then((data) => {\n if (data.token) login(data.token);\n\n const conversationSession =\n cookies[\"eK-conversation\"]?.conversation;\n\n if (conversationSession) {\n webmessengerApi\n .getConversation(conversationSession)\n .then((conv) => {\n if (conv) {\n populateState(conv);\n\n addHistory({\n _id: conv._id,\n url: window.location.href,\n });\n\n setIsLoading(false);\n\n setMaximized(\n cookies[\"eK-global\"]?.maximized || false\n );\n } else {\n if (cookies[\"eK-global\"])\n removeCookie(\"eK-global\", {\n path: \"/\",\n });\n\n setIsLoading(false);\n }\n })\n .catch(() => {\n if (cookies[\"eK-global\"])\n removeCookie(\"eK-global\", {\n path: \"/\",\n });\n setIsLoading(false);\n });\n } else {\n if (cookies[\"eK-global\"])\n removeCookie(\"eK-global\", {\n path: \"/\",\n });\n\n setIsLoading(false);\n }\n })\n .catch(() => {\n setToken(null);\n API.Settings.Authorization = {\n type: \"Bearer\",\n token: null,\n };\n\n delete axios.defaults.headers.common.Authorization;\n\n removeCookie(\"eK-global\", {\n path: \"/\",\n });\n removeCookie(\"eK-token\", {\n path: \"/\",\n });\n\n setIsLoading(false);\n });\n } else setIsLoading(false);\n }, []);\n\n useEffect(() => {\n if (greeting && !!greeting?.message && !maximized) {\n setUnreadMessagesCount(1);\n }\n }, [greeting?.message]);\n\n useEffect(() => {\n if (typing && operator?.type === \"agent\") {\n const timeout = setTimeout(() => {\n setTyping(false);\n }, 15000);\n\n return () => clearTimeout(timeout);\n }\n return undefined;\n }, [typing, operator]);\n\n // useEffect(() => {\n // if (maximized && !document.body.classList.contains(\"ek-noScroll\")) {\n // document.body.classList.add(\"ek-noScroll\");\n // } else if (\n // !maximized &&\n // document.body.classList.contains(\"ek-noScroll\")\n // ) {\n // document.body.classList.remove(\"ek-noScroll\");\n // }\n // }, [maximized]);\n\n const handleSetMessages = setMessages;\n\n const value = React.useMemo(\n () => ({\n integration,\n visitorSatisfactionIntegration,\n\n hidden,\n hide,\n show,\n\n maximized,\n openWindow,\n closeWindow,\n\n operator,\n setOperator,\n\n greeting,\n setGreeting,\n\n notification,\n closeNotification,\n submitNotification,\n createNotification,\n\n conversation,\n setConversation,\n\n online,\n setOnline,\n token,\n login,\n\n typing,\n setTyping,\n\n messages,\n handleSetMessages,\n incrementUnreadMessagesCount,\n resetUnreadMessagesCount,\n unreadMessagesCount,\n }),\n [\n integration,\n visitorSatisfactionIntegration,\n hidden,\n maximized,\n operator,\n greeting,\n notification,\n conversation,\n online,\n token,\n typing,\n messages,\n unreadMessagesCount,\n ]\n );\n\n return (\n \n {!isLoading && children}\n \n );\n}\n\nfunction useWebmessenger() {\n const context = useContext(WebmessengerContext);\n if (context === undefined) {\n throw new Error(\n \"useWebmessenger must be used within a WebmessengerProvider\"\n );\n }\n return context;\n}\n\nWebmessengerProvider.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\nexport { WebmessengerProvider, useWebmessenger };\n","import { EventEmitter } from \"events\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n/**\n * Websocket Client\n * @param {string} uri\n */\nexport default function WebsocketJS(uri) {\n const _uri = uri;\n const _emitter = new EventEmitter();\n const _callbacks = {};\n let autoReconnection = true;\n let sock;\n let autoPing;\n\n function sendAutoPing() {\n if (sock) {\n sock.send(JSON.stringify({ type: \"message\", event: \"ping\" }));\n }\n }\n\n function resetIntervalAutoPing() {\n if (autoPing) clearInterval(autoPing);\n\n autoPing = setInterval(sendAutoPing, 30000);\n }\n\n function onOpen() {\n _emitter.emit(\"open\");\n\n resetIntervalAutoPing();\n }\n\n function onMessage(rawMessage) {\n let _msg = null;\n\n try {\n _msg = JSON.parse(rawMessage.data);\n } catch (error) {\n console.error(\"Websocket Client :: Error parsing message\");\n return;\n }\n\n if (_msg) {\n // if (!_msg.hasOwnProperty(\"type\")) {\n // console.error(\"Websocket Client :: Invalid message - Missing type\");\n // return;\n // }\n\n // eslint-disable-next-line no-prototype-builtins\n if (_msg.hasOwnProperty(\"callback_id\")) {\n if (_msg.data?.error)\n _callbacks[_msg.callback_id].call(\n null,\n null,\n _msg.data.error\n );\n else _callbacks[_msg.callback_id].call(null, _msg.data);\n } else {\n _emitter.emit(_msg.event, _msg.data, _msg.room);\n }\n } else {\n console.error(\"Websocket Client :: Error parsing message\");\n }\n }\n\n function onClose() {\n _emitter.emit(\"close\");\n\n if (autoPing) clearInterval(autoPing);\n\n if (autoReconnection) {\n setTimeout(() => {\n try {\n // eslint-disable-next-line no-undef\n sock = new WebSocket(_uri);\n sock.onopen = onOpen;\n sock.onmessage = onMessage;\n sock.onclose = onClose;\n } catch (err) {\n console.error(\"Websocket Client :: AutoReconnection\", err);\n }\n }, 1000);\n }\n }\n\n /**\n * Emit event\n * @param {string} event\n * @param {object} data\n * @param {*} callback\n */\n this.emit = (event, data, callback) => {\n const _msg = {\n type: \"message\",\n event,\n data,\n };\n\n if (typeof callback === \"function\") {\n const callbackId = uuidv4();\n _callbacks[callbackId] = callback;\n _msg.callback_id = callbackId;\n }\n\n if (sock) {\n sock.send(JSON.stringify(_msg));\n }\n };\n\n /**\n * Listen event\n * @param {string} event\n * @param {*} listener\n * @returns\n */\n this.on = (event, listener) => {\n return _emitter.on(event, listener);\n };\n\n /**\n * Remove listener for event\n * @param {string} event\n * @param {*} listener\n * @returns\n */\n this.removeListener = (event, listener) => {\n return _emitter.removeListener(event, listener);\n };\n\n /**\n * Remove all listeners for event\n * @param {string} event\n * @returns\n */\n this.removeAllListeners = (event) => {\n return _emitter.removeAllListeners(event);\n };\n\n /**\n * Close connection\n */\n this.close = () => {\n autoReconnection = false;\n if (sock) sock.close();\n };\n\n try {\n // eslint-disable-next-line no-undef\n sock = new WebSocket(_uri);\n sock.onopen = onOpen;\n sock.onmessage = onMessage;\n sock.onclose = onClose;\n } catch (err) {\n console.error(\"Websocket Client :: \", err);\n }\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport WebsocketClient from \"@ekonsilio/websocket-client\";\nimport propTypes from \"prop-types\";\n\nimport { useWebmessenger } from \"./webmessenger\";\n\nconst WebSocketContext = createContext();\n\nfunction WebSocketProvider({ children }) {\n const websocket = useRef(null);\n const [connected, setConnected] = useState(false);\n const { token, conversation } = useWebmessenger();\n\n useEffect(() => {\n if (process.env.REACT_APP_WEBSOCKET && conversation !== null) {\n websocket.current = new WebsocketClient(\n process.env.REACT_APP_WEBSOCKET\n );\n\n websocket.current.on(\"open\", () => {\n setConnected(true);\n });\n\n websocket.current.on(\"close\", () => {\n setConnected(false);\n });\n }\n\n return () => {\n if (websocket && websocket.current) {\n websocket.current.close();\n websocket.current = null;\n }\n };\n }, [conversation]);\n\n useEffect(() => {\n if (websocket.current && connected && token) {\n websocket.current.emit(\"auth\", {\n token,\n });\n }\n }, [connected, token]);\n\n const value = useMemo(\n () => ({ websocket: websocket.current, connected }),\n [websocket.current, connected]\n );\n\n return (\n \n {children}\n \n );\n}\n\nfunction useWebSocket() {\n const context = useContext(WebSocketContext);\n\n if (context === undefined) {\n throw new Error(\"useWebSocket must be used within a WebSocketProvider\");\n }\n\n return context;\n}\n\nWebSocketProvider.propTypes = {\n uri: propTypes.string,\n children: propTypes.element.isRequired,\n};\n\nWebSocketProvider.defaultProps = {\n uri: \"\",\n};\n\nexport { WebSocketProvider, useWebSocket };\n","export class ApiErrorException extends Error {\n public status: number;\n public statusText: string;\n public data: object;\n\n constructor(err: any) {\n super();\n this.name = \"ApiError\";\n this.status = err.status;\n this.statusText = err.statusText;\n this.data = err.body;\n this.message = err.response.message;\n }\n}\n\nexport class NotImplementedException extends Error {\n public status: number;\n public statusText: string;\n public data: object;\n\n constructor(err: any) {\n super();\n this.name = \"NotImplemented\";\n this.status = err.status;\n this.statusText = err.statusText;\n this.data = err.body;\n this.message = err.response.message;\n }\n}\n","import { ApiErrorException } from \"./Errors\";\nimport axios from \"axios\";\n\naxios.interceptors.response.use(\n (res) => res,\n (err) => {\n throw new ApiErrorException({\n status: err?.response?.status,\n statusText: err?.response?.statusText,\n data: err?.response?.data,\n response: err?.toJSON(),\n });\n }\n);\n\nexport class Settings {\n private static _BaseURL: string;\n private static _Authorization: any;\n\n public static set BaseURL(baseURL: string) {\n this._BaseURL = baseURL;\n axios.defaults.baseURL = baseURL;\n }\n\n public static get BaseURL(): string {\n return this._BaseURL;\n }\n\n public static set Authorization(Authorization: any) {\n this._Authorization = Authorization;\n axios.defaults.headers.common[\"Authorization\"] = `Bearer ${Authorization.token}`;\n }\n\n public static get Authorization(): any {\n return this._Authorization;\n }\n}\n","import axios from \"axios\";\n\nexport class ApiClient {\n private _basePath: string = \"\";\n constructor(basePath: string) {\n this._basePath = basePath;\n }\n\n public async get(path: string, query: object = {}, opts: { basePath?: string } = {}) {\n const { data } = await axios.get(`${opts.basePath || this._basePath}${path}`, { params: query });\n return data;\n }\n\n public async post(path: string, body: any = {}, query: object = {}, opts: { basePath?: string } = {}) {\n const { data } = await axios.post(`${opts.basePath || this._basePath}${path}`, body, { params: query });\n return data;\n }\n\n public async put(path: string, body: any = {}, query: object = {}, opts: { basePath?: string } = {}) {\n const { data } = await axios.put(`${opts.basePath || this._basePath}${path}`, body, { params: query });\n return data;\n }\n\n public async delete(path: string, query: object = {}, opts: { basePath?: string } = {}) {\n const { data } = await axios.delete(`${opts.basePath || this._basePath}${path}`, { params: query });\n return data;\n }\n}\n","import auth from \"./Auth\";\n\nexport namespace Authentication {\n export const Auth = auth;\n}\n","import AuthModel from \"../../models/Auth\";\nimport { ApiClient } from \"../../utils/ApiClient\";\n\n/**\n * **Auth Endpoints**\n */\nexport default class Auth {\n /** @hidden */\n protected client: ApiClient;\n\n /**@hidden */\n constructor() {\n this.client = new ApiClient(\"/auth\");\n }\n\n public async register(\n body: object,\n params: object = {}\n ): Promise {\n return await this.client.post(\"/register\", body, params);\n }\n\n public async login(body: object, params: object = {}): Promise {\n return await this.client.post(\"/login\", body, params);\n }\n}\n","import Behavior from \"../../models/Behavior\";\nimport Conversation from \"../../models/Conversation\";\nimport Message from \"../../models/Message\";\nimport Operator from \"../../models/Operator\";\nimport { ApiClient } from \"../../utils/ApiClient\";\n\n/**\n * **Webmessenger Endpoints**\n */\nexport default class Webmessenger {\n /** @hidden */\n protected client: ApiClient;\n\n /**@hidden */\n constructor() {\n this.client = new ApiClient(\"\");\n }\n\n public async getConversation(_id?: string): Promise {\n if (_id) return await this.client.get(`/conversation/${_id}`);\n return await this.client.get(\"/conversation\");\n }\n\n public async getMessages(_id: string): Promise {\n return await this.client.get(`/conversation/${_id}/messages`);\n }\n\n public async sendMessage(body: object): Promise {\n return await this.client.post(\"/message\", body);\n }\n\n public async markMessageAsReceived(\n conversationId: string,\n messageId: string\n ): Promise {\n return await this.client.post(\n `/conversation/${conversationId}/received`,\n { message: messageId }\n );\n }\n\n public async markMessageAsRead(\n conversationId: string,\n messageId: string\n ): Promise {\n return await this.client.post(`/conversation/${conversationId}/read`, {\n message: messageId,\n });\n }\n\n public async getOperator(\n integrationId: string,\n userId: string,\n avatarId: string\n ): Promise {\n return await this.client.get(`/integration/${integrationId}/operator`, {\n user: userId,\n avatar: avatarId,\n });\n }\n\n public async getBehaviors(integrationId: string): Promise {\n return await this.client.get(`/integration/${integrationId}/behaviors`);\n }\n\n public async closeConversation(\n conversationId: string\n ): Promise {\n return await this.client.post(`/conversation/${conversationId}/close`);\n }\n}\n","import webmessenger from \"./Webmessenger\";\n\nexport namespace Messaging {\n export const Webmessenger = webmessenger;\n}\n"],"names":["TranslationContext","createContext","projectToken","process","REACT_APP_TRANSLATION_PROJECT","TranslationProvider","children","useState","messages","setMessages","translations","setTranslations","language","setLanguage","translationValue","useMemo","changeLanguage","locale","useEffect","fetch","then","data","json","t","window","eK","integration","l","Provider","value","onError","defaultProps","App","React","getFingerprint","fingerprint","entity","url","location","href","method","headers","Accept","body","JSON","stringify","console","error","init","uri","Suspense","fallback","ref","__ekwm","BehaviorsContext","webmessengerApi","API","BehaviorsProvider","intl","useIntl","timer","useRef","useWebmessenger","maximized","openWindow","hide","show","greeting","setGreeting","createNotification","closeNotification","conversation","online","isInit","setIsInit","hideChat","setHideChat","showChat","setShowChat","enabled","setEnabled","behaviors","setBehaviors","timeOnSite","getBehaviorsSessionStorage","DateTime","diff","website","date","as","timeOnPage","setData","refresh","useCallback","storage","previousState","page","exec","behavior","action","type","sessionStorage","setItem","title","formatMessage","id","defaultMessage","text","_id","subType","sentAt","triggered","message","prevMessage","sent","evaluate","forceBehaviors","updateStorage","updateTriggeredBehavior","key","set","behaviorsData","pageUrl","URL","deviceType","isMobile","path","pathname","search","queryString","slice","Vote","default","res","behaviorsHideChat","filter","actions","find","behaviorsShowChat","isEvaluatedHideChat","length","behaviorOpenWindow","isEvaluatedShowChat","behaviorData","active","notification","Object","entries","disable","enable","triggerOpenWindowBehaviors","openWindowBehaviors","reduce","store","getBehaviors","behaviorsElements","catch","err","current","setInterval","clearInterval","values","useBehaviors","context","useContext","undefined","Error","useAddHistoryMutation","options","useMutation","axios","useConversationMessagesQuery","conversationId","unreadOnly","useQuery","useRateConversationMutation","satisfactionRating","useGetIntegrationQuery","integrationId","SDKContext","SDKProvider","closeWindow","operator","events","setEvents","useImperativeHandle","maximize","minimize","isMaximized","status","name","picture","face","on","eventType","listener","prevEvents","off","indexOf","eventListener","emit","args","call","useSDK","sessionItem","getItem","parse","getChatButtonSessionStorage","sessionData","str","split","map","v","acc","decodeURIComponent","trim","authenticationApi","WebmessengerContext","WebmessengerProvider","useCookies","cookies","setCookie","removeCookie","setIntegration","visitorSatisfactionIntegration","setVisitorSatisfactionIntegration","setOperator","setNotification","setConversation","token","setToken","hidden","setHidden","setMaximized","typing","setTyping","setOnline","isLoading","setIsLoading","unreadMessagesCount","setUnreadMessagesCount","addHistory","mutate","setGlobalSessionStorage","obj","expires","Date","setHours","getHours","secure","sameSite","incrementUnreadMessagesCount","count","prevCount","resetUnreadMessagesCount","persist","notificationConversation","submitNotification","login","authToken","jwt_decode","exp","populateState","conv","participants","conversationSession","currentOperator","operators","o","lastOperator","storageEvent","event","storageArea","localStorage","newValue","tokenCookie","parseCookie","document","cookie","getConversation","onSuccess","visitorSatisfaction","addEventListener","removeEventListener","toString","timeout","setTimeout","clearTimeout","handleSetMessages","WebsocketJS","sock","autoPing","_uri","_emitter","EventEmitter","_callbacks","autoReconnection","sendAutoPing","send","onOpen","onMessage","rawMessage","_msg","hasOwnProperty","_msg$data","callback_id","room","this","callback","callbackId","uuidv4","removeListener","removeAllListeners","close","WebSocket","onopen","onmessage","onclose","onClose","WebSocketContext","WebSocketProvider","websocket","connected","setConnected","WebsocketClient","useWebSocket","ApiErrorException","_Error","_this","statusText","response","_err$response","_err$response2","toJSON","Settings","get","_BaseURL","baseURL","_Authorization","Authorization","n","writable","ApiClient","Authentication","basePath","_basePath","_proto","query","opts","params","post","put","_ref4","client","register","Auth","auth","Messaging","Webmessenger","_exit2","_this2","getMessages","sendMessage","markMessageAsReceived","messageId","markMessageAsRead","getOperator","userId","avatarId","user","avatar","closeConversation","webmessenger"],"sourceRoot":""}