@defra/flood-webchat 0.0.1-beta.1 → 0.0.1-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -1
- package/dist/client.js +1316 -214
- package/dist/client.js.map +1 -1
- package/dist/server.js +181 -240
- package/dist/server.js.map +1 -1
- package/main.scss +4 -3
- package/package.json +9 -3
- package/src/client/components/availability/availability.jsx +43 -46
- package/src/client/components/chat/chat.jsx +143 -0
- package/src/client/components/chat/chat.scss +134 -0
- package/src/client/components/message/message.jsx +20 -0
- package/src/client/components/panel/panel-footer.jsx +9 -0
- package/src/client/components/panel/panel-header.jsx +39 -0
- package/src/client/components/panel/panel.jsx +109 -0
- package/src/client/components/panel/panel.scss +72 -0
- package/src/client/components/screens/end-chat.jsx +17 -0
- package/src/client/components/screens/pre-chat.jsx +55 -0
- package/src/client/components/screens/request-chat.jsx +170 -0
- package/src/client/components/screens/unavailable.jsx +23 -0
- package/src/client/hooks/useFocusedElements.js +71 -0
- package/src/client/hooks/useTextareaAutosize.js +13 -0
- package/src/client/index.jsx +15 -1
- package/src/client/lib/check-availability.js +1 -0
- package/src/client/lib/transform-messages.js +14 -0
- package/src/client/store/AppProvider.jsx +114 -0
- package/src/client/store/actions-map.js +97 -0
- package/src/client/store/reducer.js +29 -0
- package/src/client/store/useApp.js +5 -0
- package/src/client/store/useChatSdk.js +37 -0
- package/src/server/index.js +15 -6
- package/src/server/lib/client.js +31 -35
- package/src/server/lib/utils.js +18 -9
- package/src/client/lib/external-stores.js +0 -4
- package/src/client/lib/external-sync-store.js +0 -42
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","mappings":"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","sources":["webpack://@defra/flood-webchat/./src/client/components/availability/availability.jsx","webpack://@defra/flood-webchat/./src/client/lib/check-availability.js","webpack://@defra/flood-webchat/./src/client/lib/classnames.js","webpack://@defra/flood-webchat/./src/client/lib/external-stores.js","webpack://@defra/flood-webchat/./src/client/lib/external-sync-store.js","webpack://@defra/flood-webchat/external commonjs \"react\"","webpack://@defra/flood-webchat/external commonjs \"react-dom/client\"","webpack://@defra/flood-webchat/webpack/bootstrap","webpack://@defra/flood-webchat/webpack/runtime/compat get default export","webpack://@defra/flood-webchat/webpack/runtime/define property getters","webpack://@defra/flood-webchat/webpack/runtime/hasOwnProperty shorthand","webpack://@defra/flood-webchat/webpack/runtime/make namespace object","webpack://@defra/flood-webchat/./src/client/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react'\nimport { classnames } from '../../lib/classnames'\nimport { useMessageThread, useWebchatOpenState } from '../../lib/external-stores'\n\nexport function Availability (props) {\n const [isOpen, setOpen] = useWebchatOpenState()\n const [isFixed, setFixed] = useState(false)\n const buttonRef = useRef()\n const onClick = () => {\n setOpen(!isOpen)\n }\n const onKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault()\n }\n }\n const onKeyUp = event => {\n if (event.key === ' ') {\n setOpen(!isOpen)\n }\n }\n\n const intersectionCallback = entries => {\n const [entry] = entries\n const isBelowFold = !entry.isIntersecting && entry.boundingClientRect.top > 0\n setFixed(!isOpen && isBelowFold)\n }\n\n useEffect(() => {\n const observer = new window.IntersectionObserver(intersectionCallback, {\n rootMargin: '35px'\n })\n const parentElement = buttonRef.current?.parentElement\n if (parentElement) {\n observer.observe(parentElement)\n }\n return () => {\n if (parentElement) {\n observer.unobserve(parentElement)\n }\n }\n }, [buttonRef, isOpen])\n\n useEffect(() => {\n document.documentElement.classList.toggle('wc-scroll-padding', isFixed)\n document.body.classList.toggle('wc-scroll-padding', isFixed)\n }, [isFixed])\n\n switch (props.availability) {\n case 'AVAILABLE':\n return (\n <div\n className={classnames('wc-availability', isFixed && 'wc-availability--fixed')}\n ref={buttonRef}\n >\n <div className='wc-availability__inner'>\n <a\n className='wc-availability__link'\n href='#webchat' role='button' draggable='false'\n onClick={onClick}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n >\n <AvailabilityContent />\n </a>\n </div>\n </div>\n )\n case 'EXISTING':\n case 'UNAVAILABLE':\n return (\n <p className='govuk-body'>When it is available, a 'start chat' link will appear.</p>\n )\n default:\n return (\n <p className='govuk-body'>Checking availability</p>\n )\n }\n}\n\nfunction AvailabilityContent () {\n const [thread] = useMessageThread()\n const unreadMessageCount = thread.filter(message => !message.read).length\n if (!thread.length) {\n return (\n <>\n Start Chat\n </>\n )\n }\n return (\n <>\n Show Chat {!!unreadMessageCount && (\n <>\n <span className='wc-availability__unseen'>{unreadMessageCount}</span>\n <span className='govuk-visually-hidden'> {unreadMessageCount === 1 ? 'new message' : 'new messages'}</span>\n </>\n )}\n </>\n )\n}\n","export async function checkAvailability (endpoint) {\n const response = await fetch(endpoint)\n const data = await response.json()\n return {\n availability: data.availability || 'UNAVAILABLE'\n }\n}\n","export const classnames = (...classes) => classes.filter(classname => classname && typeof classname === 'string').join(' ')\n","import ExternalSyncStore from './external-sync-store'\n\nexport const useWebchatOpenState = ExternalSyncStore.create(false)\nexport const useMessageThread = ExternalSyncStore.create([])\n","import { useSyncExternalStore } from 'react'\n\nexport default class ExternalSyncStore {\n constructor (initialValue) {\n this._value = initialValue\n this._listeners = []\n }\n\n update (value) {\n this._value = value\n this.emitChange()\n }\n\n subscribe (listener) {\n this._listeners = [...this._listeners, listener]\n return () => {\n this._listeners = this._listeners.filter(l => l !== listener)\n }\n }\n\n emitChange () {\n for (const listener of this._listeners) {\n listener()\n }\n }\n\n getSnapshot () {\n return this._value\n }\n\n static create (initialValue) {\n const store = new ExternalSyncStore(initialValue)\n const boundSubscribe = store.subscribe.bind(store)\n const boundGetSnapshot = store.getSnapshot.bind(store)\n const boundUpdate = store.update.bind(store)\n\n return () => [\n useSyncExternalStore(boundSubscribe, boundGetSnapshot),\n boundUpdate\n ]\n }\n}\n","module.exports = require(\"react\");","module.exports = require(\"react-dom/client\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { Availability } from './components/availability/availability.jsx'\nimport { checkAvailability } from './lib/check-availability'\n\nexport async function init (container, options) {\n const root = createRoot(container)\n let availability\n try {\n const result = await checkAvailability(options.availabilityEndpoint)\n availability = result.availability\n } catch (e) {\n availability = 'UNAVAILABLE'\n }\n root.render(<Availability availability={availability} />)\n}\n"],"names":["React","useEffect","useRef","useState","classnames","useMessageThread","useWebchatOpenState","Availability","props","_useWebchatOpenState","_useWebchatOpenState2","_slicedToArray","isOpen","setOpen","_useState","_useState2","isFixed","setFixed","buttonRef","onClick","onKeyDown","event","key","preventDefault","onKeyUp","intersectionCallback","entries","_entries","entry","isBelowFold","isIntersecting","boundingClientRect","top","_buttonRef$current","observer","window","IntersectionObserver","rootMargin","parentElement","current","observe","unobserve","document","documentElement","classList","toggle","body","availability","createElement","className","ref","href","role","draggable","AvailabilityContent","_useMessageThread","_useMessageThread2","thread","unreadMessageCount","filter","message","read","length","Fragment","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","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","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","checkAvailability","_x","_checkAvailability","_callee","endpoint","response","data","_callee$","_context","fetch","json","_len","classes","Array","_key","classname","join","ExternalSyncStore","useSyncExternalStore","initialValue","_classCallCheck","_value","_listeners","_createClass","update","emitChange","subscribe","listener","_this","concat","_toConsumableArray","l","_iterator","_createForOfIteratorHelper","_step","s","n","e","f","getSnapshot","store","boundSubscribe","bind","boundGetSnapshot","boundUpdate","default","createRoot","init","_x2","_init","container","options","root","availabilityEndpoint","t0","render"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"client.js","mappings":"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","sources":["webpack://@defra/flood-webchat/./src/client/components/availability/availability.jsx","webpack://@defra/flood-webchat/./src/client/components/chat/chat.jsx","webpack://@defra/flood-webchat/./src/client/components/message/message.jsx","webpack://@defra/flood-webchat/./src/client/components/panel/panel-footer.jsx","webpack://@defra/flood-webchat/./src/client/components/panel/panel-header.jsx","webpack://@defra/flood-webchat/./src/client/components/panel/panel.jsx","webpack://@defra/flood-webchat/./src/client/components/screens/end-chat.jsx","webpack://@defra/flood-webchat/./src/client/components/screens/pre-chat.jsx","webpack://@defra/flood-webchat/./src/client/components/screens/request-chat.jsx","webpack://@defra/flood-webchat/./src/client/components/screens/unavailable.jsx","webpack://@defra/flood-webchat/./src/client/hooks/useFocusedElements.js","webpack://@defra/flood-webchat/./src/client/hooks/useTextareaAutosize.js","webpack://@defra/flood-webchat/./src/client/lib/check-availability.js","webpack://@defra/flood-webchat/./src/client/lib/classnames.js","webpack://@defra/flood-webchat/./src/client/lib/transform-messages.js","webpack://@defra/flood-webchat/./src/client/store/AppProvider.jsx","webpack://@defra/flood-webchat/./src/client/store/actions-map.js","webpack://@defra/flood-webchat/./src/client/store/reducer.js","webpack://@defra/flood-webchat/./src/client/store/useApp.js","webpack://@defra/flood-webchat/./src/client/store/useChatSdk.js","webpack://@defra/flood-webchat/external commonjs \"@nice-devone/nice-cxone-chat-web-sdk\"","webpack://@defra/flood-webchat/external commonjs \"react\"","webpack://@defra/flood-webchat/external commonjs \"react-dom\"","webpack://@defra/flood-webchat/external commonjs \"react-dom/client\"","webpack://@defra/flood-webchat/external commonjs \"sanitize-html\"","webpack://@defra/flood-webchat/external commonjs \"uuid\"","webpack://@defra/flood-webchat/webpack/bootstrap","webpack://@defra/flood-webchat/webpack/runtime/compat get default export","webpack://@defra/flood-webchat/webpack/runtime/define property getters","webpack://@defra/flood-webchat/webpack/runtime/hasOwnProperty shorthand","webpack://@defra/flood-webchat/webpack/runtime/make namespace object","webpack://@defra/flood-webchat/./src/client/index.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react'\n\nimport { classnames } from '../../lib/classnames'\nimport { Panel } from '../panel/panel.jsx'\nimport { useApp } from '../../store/useApp'\n\nexport function Availability () {\n const { availability, messages, isChatOpen, setChatVisibility } = useApp()\n\n const [isFixed, setIsFixed] = useState(false)\n const buttonRef = useRef()\n\n const onClick = () => {\n setChatVisibility(!isChatOpen)\n }\n\n const onKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault()\n }\n }\n\n const onKeyUp = event => {\n if (event.key === ' ') {\n setChatVisibility(!isChatOpen)\n }\n }\n\n const intersectionCallback = entries => {\n const [entry] = entries\n const isBelowFold = !entry.isIntersecting && entry.boundingClientRect.top > 0\n setIsFixed(!isChatOpen && isBelowFold)\n }\n\n useEffect(() => {\n const observer = new window.IntersectionObserver(intersectionCallback, {\n rootMargin: '35px'\n })\n\n const parentElement = buttonRef.current?.parentElement\n\n if (parentElement) {\n observer.observe(parentElement)\n }\n\n return () => {\n if (parentElement) {\n observer.unobserve(parentElement)\n }\n }\n }, [buttonRef, isChatOpen])\n\n useEffect(() => {\n document.documentElement.classList.toggle('wc-scroll-padding', isFixed)\n document.body.classList.toggle('wc-scroll-padding', isFixed)\n }, [isFixed])\n\n let TextComponent = (<>Show Chat</>)\n\n if (!messages.length) {\n TextComponent = (<>Start Chat</>)\n }\n\n switch (availability) {\n case 'AVAILABLE':\n return (\n <>\n <div\n className={classnames('wc-availability', isFixed && 'wc-availability--fixed', isChatOpen && 'wc-open')}\n ref={buttonRef}\n >\n <div className='wc-availability__inner'>\n <a\n className='wc-availability__link'\n href='#webchat'\n draggable='false'\n onClick={onClick}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n >\n {TextComponent}\n </a>\n </div>\n </div>\n {isChatOpen && <Panel />}\n </>\n )\n case 'EXISTING':\n case 'UNAVAILABLE':\n return (\n <p className='govuk-body'>When it is available, a 'start chat' link will appear.</p>\n )\n default:\n return (\n <p className='govuk-body'>Checking availability</p>\n )\n }\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport sanitizeHtml from 'sanitize-html'\n\nimport { PanelHeader } from '../panel/panel-header.jsx'\nimport { PanelFooter } from '../panel/panel-footer.jsx'\nimport { Message } from '../message/message.jsx'\n\nimport { useApp } from '../../store/useApp.js'\nimport { useTextareaAutosize } from '../../hooks/useTextareaAutosize.js'\n\nexport function Chat ({ onEndChat }) {\n const { availability, thread, messages, agent, agentStatus, isAgentTyping } = useApp()\n\n const [userMessage, setUserMessage] = useState('')\n\n const messageRef = useRef()\n\n useTextareaAutosize(messageRef.current, userMessage)\n\n useEffect(() => {\n if (messages.length !== 0) {\n const chatBody = document.querySelector('.wc-body')\n chatBody.scrollTop = chatBody.scrollHeight\n }\n }, [messages, isAgentTyping])\n\n useEffect(() => {\n const label = document.querySelector('.wc-form__label')\n\n if (userMessage.length === 0) {\n label.classList.remove('govuk-visually-hidden')\n } else {\n label.classList.add('govuk-visually-hidden')\n }\n }, [userMessage])\n\n const onChange = e => {\n setUserMessage(e.target?.value)\n }\n\n const agentName = agent?.nickname || agent?.firstName\n\n let connectionHeadlineText = 'Connecting to Floodline'\n\n if (agentStatus === 'closed') {\n connectionHeadlineText = agentName ? `${agentName} ended the session` : 'Session ended by advisor'\n } else if (agentStatus) {\n if (agentName) {\n connectionHeadlineText = `You are speaking with ${agentName}`\n } else {\n connectionHeadlineText = 'No advisers currently available'\n }\n }\n\n if (availability === 'UNAVAILABLE') {\n connectionHeadlineText = 'Webchat is not currently available'\n }\n\n const sendMessage = e => {\n e.preventDefault()\n\n if (messageRef.current.value.length === 0) {\n return\n }\n\n try {\n thread.sendTextMessage(sanitizeHtml(messageRef.current.value.trim()))\n } catch (err) {\n console.log('[Chat Error] sendMessage', err)\n }\n\n setUserMessage('')\n }\n\n return (\n <>\n <PanelHeader />\n\n <div className='wc-status'>\n <p className='wc-status__availability govuk-body-s'>{connectionHeadlineText}</p>\n <a className='wc-status__link govuk-!-font-size-16' href='#' data-module='govuk-button' onClick={onEndChat}>End chat</a>\n </div>\n\n <div className='wc-body'>\n <div className='wc-chat__body'>\n <ul className='wc-chat__messages'>\n {messages.length\n ? messages.map((msg, index) => <Message key={msg.id} message={msg} previousMessage={messages[index - 1]} />)\n : null}\n {isAgentTyping\n ? (\n <li className='wc-chat__message govuk-body outbound'>\n <div className='wc-chat__from govuk-!-font-size-14'>{agentName} is typing</div>\n <div className='wc-chat__text outbound'>\n <svg width='28' height='16' x='0px' y='0px' viewBox='0 0 28 16'>\n <circle stroke='none' cx='3' cy='8' r='3' fill='currentColor' />\n <circle stroke='none' cx='14' cy='8' r='3' fill='currentColor' />\n <circle stroke='none' cx='25' cy='8' r='3' fill='currentColor' />\n </svg>\n </div>\n </li>\n )\n : null}\n </ul>\n </div>\n </div>\n\n <PanelFooter>\n <div className='wc-footer__input'>\n <form className='wc-form' noValidate>\n <label className='govuk-label wc-form__label govuk-!-font-size-16' htmlFor='wc-form-textarea'>\n Your message<span className='govuk-visually-hidden'> (enter key submits)</span>\n </label>\n\n <textarea\n ref={messageRef}\n rows='1'\n aria-required='true'\n className='wc-form__textarea govuk-textarea govuk-!-font-size-16'\n id='wc-form-textarea'\n name='message'\n onChange={onChange}\n value={userMessage}\n />\n\n <input\n type='submit'\n className='wc-form__button govuk-button govuk-!-font-size-16'\n value='Send'\n data-prevent-double-click='true'\n onClick={sendMessage}\n />\n </form>\n </div>\n\n <div className='wc-footer__settings'>\n <a href='#' className='wc-footer__settings-link' data-module='govuk-button'>Settings</a>\n <a href='#' className='wc-footer__settings-link' data-module='govuk-button' download='transcript.txt'>Save chat</a>\n </div>\n </PanelFooter>\n </>\n )\n}\n","import React from 'react'\nimport { classnames } from '../../lib/classnames'\n\nexport function Message ({ message, previousMessage }) {\n const outbound = message.direction === 'outbound'\n\n const messageOwnerSameAsPrevious = message?.direction === previousMessage?.direction\n\n return (\n <li className={classnames('wc-chat__message govuk-body', outbound ? 'outbound' : 'inbound')}>\n <div className='wc-chat__from govuk-!-font-size-14'>\n {messageOwnerSameAsPrevious ? null : <span>{outbound ? message.assignee : 'You'}</span>}\n <span className='govuk-visually-hidden'>:</span>\n </div>\n <p className={classnames('wc-chat__text', 'govuk-body-s', outbound ? 'outbound' : 'inbound')}>\n {message.text}\n </p>\n </li>\n )\n}\n","import React from 'react'\n\nexport function PanelFooter ({ children }) {\n return (\n <div className='wc-footer'>\n {children}\n </div>\n )\n}\n","import React from 'react'\nimport { useApp } from '../../store/useApp.js'\n\nexport function PanelHeader () {\n const { thread, setChatVisibility } = useApp()\n\n const onClose = e => {\n e.preventDefault()\n setChatVisibility(false)\n }\n\n let ButtonComponent = (\n <button className='wc-header__close' aria-label='Close the webchat' onClick={onClose}>\n <svg aria-hidden='true' focusable='false' width='20' height='20' viewBox='0 0 20 20'>\n <path d='M10,8.6L15.6,3L17,4.4L11.4,10L17,15.6L15.6,17L10,11.4L4.4,17L3,15.6L8.6,10L3,4.4L4.4,3L10,8.6Z' fill='currentColor' />\n </svg>\n </button>\n )\n\n if (thread) {\n ButtonComponent = (\n <button className='wc-header__hide' aria-label='Minimise the webchat' onClick={onClose}>\n <svg aria-hidden='true' focusable='false' width='20' height='20' viewBox='0 0 20 20'>\n <path d='M10 14.4l-7-7L4.4 6l5.6 5.6L15.6 6 17 7.4l-7 7z' fill='currentColor' />\n </svg>\n </button>\n )\n }\n\n return (\n <div className='wc-header'>\n <h2 id='wc-header-title' className='wc-header__title govuk-heading-s'>\n Floodline Webchat\n </h2>\n\n {ButtonComponent}\n </div>\n )\n}\n","import React, { useEffect, useState, useCallback } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { PreChat } from '../screens/pre-chat.jsx'\nimport { RequestChat } from '../screens/request-chat.jsx'\nimport { Chat } from '../chat/chat.jsx'\nimport { Unavailable } from '../screens/unavailable.jsx'\nimport { EndChat } from '../screens/end-chat.jsx'\n\nimport { useApp } from '../../store/useApp.js'\nimport { useChatSdk } from '../../store/useChatSdk.js'\nimport { useFocusedElements } from '../../hooks/useFocusedElements.js'\n\nexport function Panel () {\n const { sdk, availability, thread, threadId, setThread, setThreadId, setChatVisibility, setMessages } = useApp()\n const { fetchThread, fetchMessages } = useChatSdk(sdk)\n\n const [screen, setScreen] = useState(threadId ? 2 : 0)\n\n useFocusedElements(screen)\n\n /**\n * Initializes the eventListener for pressing the escape key\n */\n useEffect(() => {\n const escapeKeyEvent = document.addEventListener('keydown', onEscapeKey)\n\n return () => {\n document.removeEventListener('keydown', escapeKeyEvent)\n }\n }, [])\n\n /**\n * Recovers the thread if there is a threadId but no thread loaded in to state\n */\n useEffect(() => {\n const recover = async () => {\n try {\n const fetchedThread = await fetchThread(threadId)\n setThread(fetchedThread)\n\n const fetchedMessages = await fetchMessages(fetchedThread, threadId)\n setMessages(fetchedMessages)\n } catch (err) {\n console.log('[Chat Error] fetchThread', err)\n\n setThreadId()\n setThread()\n setScreen(0)\n }\n }\n\n if (threadId) {\n (thread) ? setScreen(2) : recover()\n }\n }, [thread, threadId])\n\n const onEscapeKey = useCallback(e => {\n if (e.key === 'Escape' || e.key === 'Esc') {\n setChatVisibility(false)\n }\n }, [])\n\n const handleScreenChange = newScreen => e => {\n e.preventDefault()\n setScreen(newScreen)\n }\n\n const onForward = handleScreenChange(screen + 1)\n const onBack = handleScreenChange(screen - 1)\n const onEndChat = handleScreenChange(3)\n const onResume = handleScreenChange(2)\n\n const onEndChatConfirm = e => {\n e.preventDefault()\n console.log('confirmed end chat')\n }\n\n let ScreenComponent\n\n switch (screen) {\n case 0:\n ScreenComponent = <PreChat onForward={onForward} />\n break\n case 1:\n ScreenComponent = <RequestChat onBack={onBack} />\n break\n case 2:\n ScreenComponent = <Chat setScreen={setScreen} onEndChat={onEndChat} />\n break\n case 3:\n ScreenComponent = <EndChat onResume={onResume} onEndChatConfirm={onEndChatConfirm} />\n break\n default:\n ScreenComponent = <PreChat onForward={onForward} />\n }\n\n if (availability === 'UNAVAILABLE') {\n ScreenComponent = <Unavailable />\n }\n\n const Component = (\n <div id='wc-panel' className='wc-panel' role='dialog' tabIndex='-1' aria-modal='true' aria-labelledby='wc-header-title'>\n {ScreenComponent}\n </div>\n )\n\n return createPortal(Component, document.body)\n}\n","import React from 'react'\nimport { PanelHeader } from '../panel/panel-header.jsx'\n\nexport function EndChat ({ onResume, onEndChatConfirm }) {\n return (\n <>\n <PanelHeader />\n <div className='wc-body'>\n <h3 className='govuk-heading-s' aria-live='polite'>Are you sure you want to end the chat?</h3>\n <div className='govuk-button-group'>\n <a href='#' className='govuk-button govuk-!-font-size-16' data-module='govuk-button' onClick={onEndChatConfirm}>Yes, end chat</a>\n <a href='#' className='govuk-link govuk-!-font-size-16' onClick={onResume}>No, resume chat</a>\n </div>\n </div>\n </>\n )\n}\n","import React from 'react'\nimport { PanelHeader } from '../panel/panel-header.jsx'\n\nexport function PreChat ({ onForward }) {\n return (\n <>\n <PanelHeader />\n\n <div className='wc-body'>\n <h3 className='govuk-heading-s' aria-live='polite'>What you can use webchat for</h3>\n <p className='govuk-body-s'>Webchat lets you talk directly to a Floodline adviser.</p>\n\n <p className='govuk-body-s'>You can use webchat to get:</p>\n <ul className='govuk-list govuk-list--bullet govuk-body-s'>\n <li>current flood warnings and alerts in your area</li>\n <li>information on the flood warning service</li>\n <li>advice on what to do before, during and after a flood</li>\n </ul>\n\n <p className='govuk-body-s'>\n {\n 'There are other ways to '\n }\n <a className='govuk-link' href='https://www.gov.uk/sign-up-for-flood-warnings'>\n sign up for flood warnings\n </a>\n {\n ' and '\n }\n <a className='govuk-link' href='https://www.fws.environment-agency.gov.uk/app/olr/login'>\n manage your flood warnings account\n </a>.\n </p>\n <p className='govuk-body-s'>Do not use webchat to <a className='govuk-link' href='https://www.gov.uk/report-flood-cause'>report a flood</a>.</p>\n\n <button className='govuk-button govuk-!-font-size-16' data-module='govuk-button' onClick={onForward}>Continue</button>\n\n <h3 className='govuk-heading-s'>Other flood information</h3>\n\n <p className='govuk-body-s'>Call Floodline for all other flood and flood warning information.</p>\n <p className='govuk-body-s'>\n <strong>Floodline helpline</strong>\n <br />\n Telephone: 0345 988 1188\n <br />\n Textphone: 0345 602 6340\n <br />\n Open 24 hours a day, 7 days a week\n <br />\n <a className='govuk-link' href='https://gov.uk/call-charges'>Find out more about call charges</a>\n </p>\n </div>\n </>\n )\n}\n","import React, { useRef, useState, useEffect } from 'react'\nimport * as uuid from 'uuid'\n\nimport { classnames } from '../../lib/classnames.js'\nimport { PanelHeader } from '../panel/panel-header.jsx'\nimport { useApp } from '../../store/useApp.js'\nimport { useChatSdk } from '../../store/useChatSdk.js'\n\nconst QUESTION_MAX_LENGTH = 500\n\nexport function RequestChat ({ onBack }) {\n const { sdk, setCustomerId, setThreadId, setThread } = useApp()\n const { fetchCustomerId, fetchThread } = useChatSdk(sdk)\n\n const [errors, setErrors] = useState({})\n const [questionLength, setQuestionLength] = useState(0)\n\n const nameRef = useRef()\n const questionRef = useRef()\n\n useEffect(() => {\n if (Object.keys(errors).length) {\n document.querySelector('.govuk-error-summary')?.focus()\n }\n }, [errors])\n\n const onQuestionChange = e => {\n setQuestionLength(e.target.value.length)\n }\n\n const onRequestChat = async e => {\n e.preventDefault()\n\n const errs = {}\n\n if (nameRef.current.value.length === 0) {\n errs.name = 'Enter your name'\n }\n\n if (questionRef.current.value.length === 0) {\n errs.question = 'Enter your question'\n }\n\n if (questionRef.current.value.length > QUESTION_MAX_LENGTH) {\n errs.question = 'Your question must be 500 characters or less'\n }\n\n if (Object.keys(errs).length === 0) {\n try {\n const threadId = uuid.v4()\n const customerId = await fetchCustomerId()\n const thread = await fetchThread(threadId)\n\n sdk.getCustomer().setName(nameRef.current.value)\n\n await thread.startChat(questionRef.current.value || 'Begin conversation')\n\n setCustomerId(customerId)\n setThreadId(threadId)\n setThread(thread)\n } catch (err) {\n console.log('[Request Chat Error]', err)\n }\n }\n\n setErrors(errs)\n }\n\n const isQuestionLengthValid = QUESTION_MAX_LENGTH >= questionLength\n const questionLengthRemaining = QUESTION_MAX_LENGTH - questionLength\n const questionLengthExceeded = questionLength - QUESTION_MAX_LENGTH\n\n let questionHint = `You have ${questionLengthRemaining} characters remaining`\n\n if (!isQuestionLengthValid) {\n questionHint = `You have ${questionLengthExceeded} characters too many`\n }\n\n return (\n <>\n <PanelHeader />\n\n <div className='wc-body'>\n <a href='#' className='wc-back-link govuk-back-link' onClick={onBack}>What you can use webchat for</a>\n\n {Object.keys(errors).length > 0\n ? (\n <div className='govuk-error-summary govuk-!-static-margin-bottom-7' data-module='govuk-error-summary' tabIndex='-1'>\n <div role='alert'>\n <h2 id='wc-error' className='govuk-error-summary__title'>\n There is a problem\n </h2>\n <div className='govuk-error-summary__body'>\n <ul className='govuk-list govuk-error-summary__list'>\n {Object.keys(errors).map(key => (\n <li key={key}>\n <a href={`#${key}`}>{errors[key]}</a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n )\n : null}\n\n <h3 className='govuk-heading-s' aria-live='polite'>Your name and question</h3>\n\n <form>\n <div className={classnames('govuk-form-group', errors.name && 'govuk-form-group--error')}>\n <label className='govuk-label' htmlFor='wc-name'>\n Your name\n </label>\n {errors.name && (\n <p className='govuk-error-message'>\n <span className='govuk-visually-hidden'>Error:</span> {errors.name}\n </p>\n )}\n <input\n ref={nameRef}\n className={classnames('govuk-input', errors.name && 'govuk-input--error')}\n id='wc-name'\n name='name'\n type='text'\n data-testid='request-chat-user-name'\n />\n </div>\n\n <div className='govuk-character-count' data-module='govuk-character-count' data-maxlength='500'>\n <div className={classnames('govuk-form-group', errors.question && 'govuk-form-group--error')}>\n <label className='govuk-label' htmlFor='wc-question'>\n Your question\n </label>\n {errors.question && (\n <p className='govuk-error-message'>\n <span className='govuk-visually-hidden'>Error:</span>\n {errors.question}\n </p>\n )}\n <textarea\n ref={questionRef}\n id='wc-question'\n name='question'\n rows='5'\n aria-describedby='wc-question-info'\n onChange={onQuestionChange}\n className={classnames('govuk-textarea', 'govuk-js-character-count', !isQuestionLengthValid || errors.question ? 'govuk-textarea--error' : '')}\n data-testid='request-chat-user-question'\n />\n <div id='wc-question-info' className='govuk-hint govuk-character-count__message' style={{ color: `${!isQuestionLengthValid ? '#d4351c' : ''}` }} aria-hidden='true'>\n {questionHint}\n </div>\n <div className='govuk-character-count__sr-status govuk-visually-hidden' aria-live='polite'>\n {questionHint}\n </div>\n </div>\n </div>\n\n <button\n className='govuk-button govuk-!-margin-top-1 govuk-!-font-size-16'\n data-module='govuk-button'\n onClick={onRequestChat}\n >\n Request chat\n </button>\n </form>\n </div>\n </>\n )\n}\n","import React from 'react'\nimport { PanelHeader } from '../panel/panel-header.jsx'\n\nexport function Unavailable () {\n return (\n <>\n <PanelHeader />\n\n <div className='wc-body'>\n <h3 id='wc-subtitle' className='govuk-heading-m'>Webchat is currently not available</h3>\n <p className='govuk-body-s'>Try again later, or call Floodline:</p>\n <p className='govuk-body-s'>\n <strong>Floodline helpline</strong>\n <br />Telephone: 0345 988 1188\n <br />Textphone: 0345 602 6340\n <br />Open 24 hours a day, 7 days a week\n <br /><a className='govuk-link' href='https://gov.uk/call-charges'>Find out more about call charges</a>\n </p>\n <p className='govuk-body-s'>We're running webchat as a trial, it will not always be available.</p>\n </div>\n </>\n )\n}\n","import { useState, useEffect, useCallback } from 'react'\n\nconst setAriaHidden = bool => {\n for (const node of document.body.children) {\n if (node.id !== 'wc-panel') {\n (bool) ? node.setAttribute('aria-hidden', 'true') : node.removeAttribute('aria-hidden')\n }\n }\n}\n\nexport const getFocusableElements = () => {\n const selectors = [\n '#wc-panel a:not([disabled])',\n '#wc-panel button:not([disabled])',\n '#wc-panel select:not([disabled])',\n '#wc-panel input:not([disabled])',\n '#wc-panel textarea:not([disabled])',\n '#wc-panel *[tabindex=\"0\"]:not([disabled])'\n ]\n\n const elements = document.body.querySelectorAll(selectors.join(','))\n return Array.from(elements).filter(e => !e.closest('[hidden]') && !e.closest('[aria-hidden=\"true\"]'))\n}\n\nconst useFocusedElements = screen => {\n const [panelElements, setPanelElements] = useState([])\n\n const onKeyDown = useCallback(e => {\n const webchatPanelElement = document.querySelector('#wc-panel')\n\n if (e.key === 'Tab') {\n if (webchatPanelElement && !document.activeElement.closest('#wc-panel')) {\n webchatPanelElement.focus()\n }\n\n if (e.shiftKey) {\n if (document.activeElement === panelElements[0]) {\n panelElements[panelElements.length - 1].focus()\n e.preventDefault()\n } else if (document.activeElement === document.querySelector('#wc-panel')) {\n panelElements[panelElements.length - 1]?.focus()\n e.preventDefault()\n }\n } else if (document.activeElement === panelElements[panelElements.length - 1]) {\n panelElements[0].focus()\n e.preventDefault()\n }\n }\n }, [panelElements])\n\n useEffect(() => {\n setPanelElements(getFocusableElements())\n }, [screen])\n\n useEffect(() => {\n setAriaHidden(true)\n\n const panelElement = document.querySelector('#wc-panel')\n panelElement.focus()\n\n document.addEventListener('keydown', onKeyDown)\n\n return () => {\n setAriaHidden()\n document.body.querySelector('.wc-availability__link')?.focus()\n document.removeEventListener('keydown', onKeyDown)\n }\n }, [panelElements])\n}\n\nexport { useFocusedElements }\n","import { useEffect } from 'react'\n\nexport const useTextareaAutosize = (textAreaRef, value) => {\n useEffect(() => {\n if (textAreaRef) {\n textAreaRef.style.height = '0px'\n\n const scrollHeight = textAreaRef.scrollHeight\n\n textAreaRef.style.height = `${scrollHeight}px`\n }\n }, [textAreaRef, value])\n}\n","export async function checkAvailability (endpoint) {\n const response = await fetch(endpoint)\n const data = await response.json()\n\n return {\n availability: data.availability || 'UNAVAILABLE'\n }\n}\n","export const classnames = (...classes) => classes.filter(classname => classname && typeof classname === 'string').join(' ')\n","import sanitizeHtml from 'sanitize-html'\n\nexport const transformMessage = message => {\n return {\n id: message.id,\n text: sanitizeHtml(message.messageContent?.text),\n createdAt: new Date(message.createdAt),\n user: message.authorEndUserIdentity?.fullName?.trim() || null,\n assignee: message.authorUser?.firstName || null,\n direction: message.direction\n }\n}\n\nexport const transformMessages = messages => messages.map(message => transformMessage(message))\n","import React, { createContext, useEffect, useReducer, useMemo } from 'react'\nimport { ChatEvent } from '@nice-devone/nice-cxone-chat-web-sdk'\n\nimport { initialState, reducer, CUSTOMER_ID_STORAGE_KEY, THREAD_ID_STORAGE_KEY } from './reducer.js'\n\nexport const AppContext = createContext(initialState)\n\nexport const AppProvider = ({ sdk, availability, children }) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n /**\n * SDK event handlers\n */\n const onLiveChatRecovered = e => {\n dispatch({ type: 'SET_AGENT', payload: e.detail.data.inboxAssignee })\n dispatch({ type: 'SET_AGENT_STATUS', payload: e.detail.data.contact.status })\n }\n\n const onAssignedAgentChanged = e => {\n dispatch({ type: 'SET_AGENT', payload: e.detail.data.inboxAssignee })\n dispatch({ type: 'SET_AGENT_STATUS', payload: e.detail.data.case.status })\n }\n\n const onAgentTypingStarted = () => {\n dispatch({ type: 'SET_AGENT_TYPING', payload: true })\n }\n\n const onAgentTypingEnded = () => {\n dispatch({ type: 'SET_AGENT_TYPING', payload: false })\n }\n\n const onMessageCreated = e => {\n setMessage(e.detail.data.message)\n dispatch({ type: 'SET_AGENT_STATUS', payload: e.detail.data.case.status })\n }\n\n const onContactStatusChanged = e => {\n dispatch({ type: 'SET_AGENT_STATUS', payload: e.detail.data.case.status })\n }\n\n useEffect(() => {\n sdk.onChatEvent(ChatEvent.LIVECHAT_RECOVERED, onLiveChatRecovered)\n sdk.onChatEvent(ChatEvent.MESSAGE_CREATED, onMessageCreated)\n sdk.onChatEvent(ChatEvent.AGENT_TYPING_STARTED, onAgentTypingStarted)\n sdk.onChatEvent(ChatEvent.AGENT_TYPING_ENDED, onAgentTypingEnded)\n sdk.onChatEvent(ChatEvent.ASSIGNED_AGENT_CHANGED, onAssignedAgentChanged)\n sdk.onChatEvent(ChatEvent.CONTACT_STATUS_CHANGED, onContactStatusChanged)\n }, [sdk])\n\n /**\n * Initialize customerId, threadId and whether the webchat should be open\n */\n useEffect(() => {\n dispatch({ type: 'SET_AVAILABILITY', payload: availability })\n\n setCustomerId(window.localStorage.getItem(CUSTOMER_ID_STORAGE_KEY))\n setThreadId(window.localStorage.getItem(THREAD_ID_STORAGE_KEY))\n\n if (window.location.hash === '#webchat') {\n setChatVisibility(true)\n }\n }, [])\n\n /**\n * State update functions\n */\n const setChatVisibility = payload => {\n if (!payload) {\n window.location.hash = ''\n }\n\n dispatch({ type: 'SET_CHAT_VISIBILITY', payload })\n }\n\n const setCustomerId = customerId => {\n dispatch({ type: 'SET_CUSTOMER_ID', payload: customerId })\n }\n\n const setThreadId = threadId => {\n dispatch({ type: 'SET_THREAD_ID', payload: threadId })\n }\n\n const setThread = thread => {\n dispatch({ type: 'SET_THREAD', payload: thread })\n }\n\n const setMessage = message => {\n dispatch({ type: 'SET_MESSAGE', payload: message })\n }\n\n const setMessages = messages => {\n dispatch({ type: 'SET_MESSAGES', payload: messages })\n }\n\n /**\n * Application-wide state and state functions\n */\n const store = useMemo(() => ({\n ...state,\n sdk,\n setCustomerId,\n setThreadId,\n setThread,\n setMessage,\n setMessages,\n setChatVisibility\n }))\n\n return (\n <AppContext.Provider value={store}>\n {children}\n </AppContext.Provider>\n )\n}\n","import { transformMessages, transformMessage } from '../lib/transform-messages'\nimport { CUSTOMER_ID_STORAGE_KEY, THREAD_ID_STORAGE_KEY } from './reducer'\n\nconst setCustomerId = (state, payload) => {\n if (payload) {\n window.localStorage.setItem(CUSTOMER_ID_STORAGE_KEY, payload)\n } else {\n window.localStorage.removeItem(CUSTOMER_ID_STORAGE_KEY)\n }\n\n return {\n ...state,\n customerId: payload\n }\n}\n\nconst setThreadId = (state, payload) => {\n if (payload) {\n window.localStorage.setItem(THREAD_ID_STORAGE_KEY, payload)\n } else {\n window.localStorage.removeItem(THREAD_ID_STORAGE_KEY)\n }\n\n return {\n ...state,\n threadId: payload\n }\n}\n\nconst setChatVisibility = (state, payload) => {\n return {\n ...state,\n isChatOpen: payload\n }\n}\n\nconst setAvailability = (state, payload) => {\n return {\n ...state,\n availability: payload\n }\n}\n\nconst setThread = (state, payload) => {\n return {\n ...state,\n thread: payload\n }\n}\n\nconst setMessage = (state, payload) => {\n return {\n ...state,\n messages: [...state.messages, transformMessage(payload)]\n }\n}\n\nconst setMessages = (state, payload) => {\n return {\n ...state,\n messages: transformMessages(payload).reverse()\n }\n}\n\nconst setAgent = (state, payload) => {\n return {\n ...state,\n agent: payload\n }\n}\n\nconst setAgentIsTyping = (state, payload) => {\n return {\n ...state,\n isAgentTyping: payload\n }\n}\n\nconst setAgentStatus = (state, payload) => {\n return {\n ...state,\n agentStatus: payload\n }\n}\n\nexport const actionsMap = {\n SET_CHAT_VISIBILITY: setChatVisibility,\n SET_AVAILABILITY: setAvailability,\n SET_CUSTOMER_ID: setCustomerId,\n SET_THREAD_ID: setThreadId,\n SET_THREAD: setThread,\n SET_MESSAGE: setMessage,\n SET_MESSAGES: setMessages,\n SET_AGENT: setAgent,\n SET_AGENT_TYPING: setAgentIsTyping,\n SET_AGENT_STATUS: setAgentStatus\n}\n","import { actionsMap } from './actions-map'\n\nexport const CUSTOMER_ID_STORAGE_KEY = 'webchat_customer_id'\nexport const THREAD_ID_STORAGE_KEY = 'webchat_thread_id'\n\nexport const initialState = {\n availability: null,\n customerId: null,\n threadId: null,\n thread: null,\n messages: [],\n agent: null,\n agentStatus: null,\n isAgentTyping: false,\n isChatOpen: false\n}\n\nexport const reducer = (state, action) => {\n const { type, payload } = action\n\n const fn = actionsMap[type]\n\n if (fn) {\n const actionFunction = fn.bind(this, state, payload)\n return actionFunction()\n }\n\n return state\n}\n","import { useContext } from 'react'\n\nimport { AppContext } from './AppProvider.jsx'\n\nexport const useApp = () => useContext(AppContext)\n","export const useChatSdk = sdk => {\n const connect = async () => sdk.authorize()\n\n const fetchCustomerId = async () => {\n const response = await connect()\n return response?.consumerIdentity.idOnExternalPlatform\n }\n\n const fetchThread = async threadId => {\n await connect()\n return sdk.getThread(threadId)\n }\n\n const fetchMessages = async (thread, threadId) => {\n await connect()\n\n const recovered = await thread.recover(threadId)\n\n const allMessages = []\n let fetchedMessages = recovered.messages\n\n while (fetchedMessages.length) {\n fetchedMessages.map(msg => allMessages.push(msg))\n\n try {\n const response = await thread.loadMoreMessages()\n fetchedMessages = response.data.messages\n } catch (err) {\n fetchedMessages = []\n }\n }\n\n return allMessages\n }\n\n return { connect, fetchCustomerId, fetchThread, fetchMessages }\n}\n","module.exports = require(\"@nice-devone/nice-cxone-chat-web-sdk\");","module.exports = require(\"react\");","module.exports = require(\"react-dom\");","module.exports = require(\"react-dom/client\");","module.exports = require(\"sanitize-html\");","module.exports = require(\"uuid\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { ChatSdk } from '@nice-devone/nice-cxone-chat-web-sdk'\nimport { Availability } from './components/availability/availability.jsx'\nimport { checkAvailability } from './lib/check-availability'\nimport { AppProvider } from './store/AppProvider.jsx'\nimport { CUSTOMER_ID_STORAGE_KEY } from './store/reducer.js'\n\nexport async function init (container, options) {\n const sdk = new ChatSdk({\n brandId: options.brandId,\n channelId: options.channelId,\n customerId: window.localStorage.getItem(CUSTOMER_ID_STORAGE_KEY) || '',\n environment: options.environment\n })\n\n const root = createRoot(container)\n let availability\n try {\n const result = await checkAvailability(options.availabilityEndpoint)\n availability = result.availability\n } catch (e) {\n availability = 'UNAVAILABLE'\n }\n root.render(\n <AppProvider sdk={sdk} availability={availability}>\n <Availability availability={availability} />\n </AppProvider>\n )\n}\n"],"names":["React","useEffect","useRef","useState","classnames","Panel","useApp","Availability","availability","messages","isChatOpen","setChatVisibility","isFixed","setIsFixed","buttonRef","onClick","onKeyDown","event","key","preventDefault","onKeyUp","intersectionCallback","entries","entry","isBelowFold","isIntersecting","boundingClientRect","top","observer","window","IntersectionObserver","rootMargin","parentElement","current","observe","unobserve","document","documentElement","classList","toggle","body","TextComponent","createElement","Fragment","length","className","ref","href","draggable","sanitizeHtml","PanelHeader","PanelFooter","Message","useTextareaAutosize","Chat","onEndChat","thread","agent","agentStatus","isAgentTyping","userMessage","setUserMessage","messageRef","chatBody","querySelector","scrollTop","scrollHeight","label","remove","add","onChange","e","target","value","agentName","nickname","firstName","connectionHeadlineText","sendMessage","sendTextMessage","trim","err","console","log","map","msg","index","id","message","previousMessage","width","height","x","y","viewBox","stroke","cx","cy","r","fill","noValidate","htmlFor","rows","name","type","download","outbound","direction","messageOwnerSameAsPrevious","assignee","text","children","onClose","ButtonComponent","focusable","d","useCallback","createPortal","PreChat","RequestChat","Unavailable","EndChat","useChatSdk","useFocusedElements","sdk","threadId","setThread","setThreadId","setMessages","fetchThread","fetchMessages","screen","setScreen","escapeKeyEvent","addEventListener","onEscapeKey","removeEventListener","recover","fetchedThread","fetchedMessages","handleScreenChange","newScreen","onForward","onBack","onResume","onEndChatConfirm","ScreenComponent","Component","role","tabIndex","uuid","QUESTION_MAX_LENGTH","setCustomerId","fetchCustomerId","errors","setErrors","questionLength","setQuestionLength","nameRef","questionRef","Object","keys","focus","onQuestionChange","onRequestChat","errs","question","v4","customerId","getCustomer","setName","startChat","isQuestionLengthValid","questionLengthRemaining","questionLengthExceeded","questionHint","style","color","setAriaHidden","bool","node","setAttribute","removeAttribute","getFocusableElements","selectors","elements","querySelectorAll","join","Array","from","filter","closest","panelElements","setPanelElements","webchatPanelElement","activeElement","shiftKey","panelElement","textAreaRef","checkAvailability","endpoint","response","fetch","data","json","classes","classname","transformMessage","messageContent","createdAt","Date","user","authorEndUserIdentity","fullName","authorUser","transformMessages","createContext","useReducer","useMemo","ChatEvent","initialState","reducer","CUSTOMER_ID_STORAGE_KEY","THREAD_ID_STORAGE_KEY","AppContext","AppProvider","state","dispatch","onLiveChatRecovered","payload","detail","inboxAssignee","contact","status","onAssignedAgentChanged","case","onAgentTypingStarted","onAgentTypingEnded","onMessageCreated","setMessage","onContactStatusChanged","onChatEvent","LIVECHAT_RECOVERED","MESSAGE_CREATED","AGENT_TYPING_STARTED","AGENT_TYPING_ENDED","ASSIGNED_AGENT_CHANGED","CONTACT_STATUS_CHANGED","localStorage","getItem","location","hash","store","Provider","setItem","removeItem","setAvailability","reverse","setAgent","setAgentIsTyping","setAgentStatus","actionsMap","SET_CHAT_VISIBILITY","SET_AVAILABILITY","SET_CUSTOMER_ID","SET_THREAD_ID","SET_THREAD","SET_MESSAGE","SET_MESSAGES","SET_AGENT","SET_AGENT_TYPING","SET_AGENT_STATUS","action","fn","actionFunction","bind","useContext","connect","authorize","consumerIdentity","idOnExternalPlatform","getThread","recovered","allMessages","push","loadMoreMessages","createRoot","ChatSdk","init","container","options","brandId","channelId","environment","root","result","availabilityEndpoint","render"],"sourceRoot":""}
|