{"version":3,"sources":["webpack:///delegated ./node_modules/react-markdown/lib/react-markdown.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-hotkeys-hook/dist/react-hotkeys-hook.esm.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/react-autosize-textarea/lib/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///delegated ./node_modules/email-validator/index.js from dll-reference vendor_2eea9c464ebf2b2afd65","webpack:///./ClientApp/hooks/useStayScrolled.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ModalTrigger.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatButtonLink.tsx","webpack:///./ClientApp/hooks/useChatAnimation.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ModalMessage.tsx","webpack:///./ClientApp/hooks/Form/useInputField.tsx","webpack:///./ClientApp/hooks/Form/useInputState.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatInputs/InputField.tsx","webpack:///./ClientApp/hooks/Form/useOptionsField.tsx","webpack:///./ClientApp/hooks/Form/useOptionsState.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatInputs/useHotkeyHints.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatInputs/useOptionsKeys.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatInputs/RadioButtons.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatInputs/Checkboxes.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatScript.tsx","webpack:///./ClientApp/components/InterfaceOverlay/ContactChatModal/ChatModal.tsx"],"names":["module","exports","__webpack_require__","maxScrollTop","dom","scrollHeight","clientHeight","useIsomorphicLayoutEffect","window","useStayScrolled","initialScroll","inaccuracy","runScroll","wasScrolled","domRef","elementDefined","current","isScrolled","Math","ceil","scrollTop","onScroll","addEventListener","removeEventListener","scroll","position","currentOffset","offset","min","defaultRunScroll","scrollBottom","Infinity","stayScrolled","returnValues","ModalTrigger","updateWindowDimensions","animateContentIn","navMenuOpen","active","open","chatStarted","notificationDot","dispatch","enterContactTriggerAction","leaveContactTriggerAction","openChatModalAction","closeChatModalAction","animateIn","setAnimateIn","hovering","setHovering","delay","setDelay","initialised","setInitialised","triggerTimeout","setTriggerTimeout","springConfig","tension","openHoverSpring","setOpenHoverSpring","config","triggerHeightSpring","setTriggerHeightSpring","x","triggerWidthSpring","setTriggerWidthSpring","closeHoverSpring","setCloseHoverSpring","windowSpring","setWindowSpring","notificationSpring","setNotificationSpring","chatIconSpring","setChatIconSpring","animateInSpring","setAnimateInSpring","latestInitialised","handleTriggerMouseLeave","showTrigger","handleTriggerMouseEnter","handleCloseTriggerMouseEnter","handleCloseTriggerMouseLeave","handleTriggerMouseClick","navSpringConfig","friction","clamp","navSpring","setNavSpring","wrapperStyles","opacity","transform","nx","wx","triggerStyles","width","ox","tx","cx","triggerWidth","height","to","labelStyles","closeModalStyles","notificationStyles","chatIconStyles","getTriggerText","Button","type","div","className","style","onMouseEnter","undefined","onMouseLeave","onClick","ChatButtonLink","href","props","useChatAnimation","triggerStayScrolled","inputVisibility","inputVisible","setInputVisible","elementRef","latestInputVisible","heightSpring","setHeightSpring","onRest","elementHeight","getBoundingClientRect","from","val","useChatInputAnimation","showInput","overflow","ModalMessage","allowHtml","positionSpring","setPositionSpring","messageContainerRef","messageStyles","markdownRenderer","link","lightBackgroundShade","ref","escapeHtml","renderers","children","useInputField","placeholder","autocomplete","input","form","id","initialValue","valueOnEnable","valueOnDisable","onTouched","setValue","setExternalValue","v","onChange","onSubmit","onKeyDown","e","customValidation","t","s","onEnable","onDisable","onBlur","setError","setExternalError","error","externalError","required","disabled","minLength","submitOnEnter","allowMultipleLines","value","touched","setTouched","submitted","setSubmitted","previousInitialValue","previousDisabled","handleOnDisable","handleOnEnable","setInputValue","newValue","validate","lTouched","lSubmitted","fieldError","trim","length","fieldValidationPassed","customValidationPassed","validationPassed","handleSubmit","isValidBeforeSubmit","previousSubmitFields","submitFields","updateInputState","handleOnChange","handleOnKeyDown","shiftKey","key","handleOnBlur","focusInput","focus","useInputState","commonElementProps","name","autoComplete","inputElement","el","InputField","inputWrapperRef","ButtonLink","arrow","animationReady","title","useOptionsField","options","initialOption","optionsOnEnable","optionsOnDisable","setOptions","setExternalOptions","o","minOptions","allowMultipleOptions","selectedOptions","setSelectedOptions","previousInitialOption","optionsRef","Array","map","latestError","latestSelectedOptions","newSelectedOptions","updateOptionsState","optionId","Object","assign","indexOf","splice","push","useOptionsState","getCommonElementProps","checked","index","optionElements","option","text","htmlFor","getOptionElement","els","useHotkeyHints","hotkeySpring","setHotkeySpring","hideHotkeyTimeout","setHideHotkeyTimeout","event","handler","preventDefault","useOptionsKeys","numberOfOptions","_","join","parseInt","replace","click","RadioButtons","hotkeyStyles","radioButtons","Checkboxes","checkboxes","scriptMessages","message","writingTime","scriptInputs","save","validation","scriptSteps","contentId","nextStepId","stepId","chatId","messages","previousMessages","formValues","latestFormValues","currentScriptStepId","nextScriptStepId","currentUserInputId","userInputVisible","setChatId","startChat","loadChatMessages","chatMessages","addChatMessage","loadFormValues","newFormValues","addFormValue","formValue","resetFormValues","updateCurrentScriptStepId","isCaller","updateNextScriptStepId","updateCurrentUserInputId","updateUserInputVisibility","visible","addChatNotificationDot","markChatAsActive","removeChatNotificationDot","windowWrapper","windowHeight","setWindowHeight","previousWindowHeight","latestWindowHeight","viewportWidth","getEmptyLocalChatStateObject","timeUpdated","Date","localChatState","setLocalChatState","updateLocalChatState","newChatSession","newChatId","expiryDate","setMinutes","getMinutes","cookieChatId","cookieMessages","cookieFormValues","cookieCurrentScriptStepId","cookieNextScriptsStepId","cookeCurrentUserInputId","chatState","windowWidthSpring","setWindowWidthSpring","setModalPosition","y","closeChatModal","modalYPosition","useInertialSpring","isBeingDragged","setIsBeingDragged","bounds","gestureOptions","initial","get","rubberband","lockDirection","axis","top","bottom","left","right","dragBarBind","onDrag","state","handleDragBarDrag","drag","filterTaps","chatContainerBind","handleChatContainerDrag","movement","my","delta","dy","first","cancel","currentScrollTop","messagesContainerRef","mx","vxvy","vx","vy","last","canceled","commonConfig","velocity","triggerCloseChatModal","inertia","immediate","decay","chatStayScrolled","setChatStayScrolled","messagesWrapperRef","messagesMeasureRef","messagesHeight","userInputMeasureRef","userInputHeight","updateScroll","reset","scrolledToBottom","setNewMessageNotification","newMessageNotification","newMessageSpring","setNewMessageSpring","removeNewMessageNotification","getStepById","filter","step","getNextStepId","userInputTimeout","setUserInputTimeout","userInputTimeoutInputId","setUserInputTimeoutInputId","latestUserInputTimeoutInputId","triggerNextScriptStep","triggerScriptStepFromId","nextStep","nextStepContent","triggerNewMessage","replaceMarkdownImages","time","setTriggerChatSubmission","newMessageTimeout","setNewMessageTimeout","newMessageTimeoutMessage","setNewMessageTimeoutMessage","newMessageTimeoutDelay","setNewMessageTimeoutDelay","newMessage","replacedMessage","inputProps","replaceMarkdownVariable","replacedMessageOptions","replacedSelectedOptions","newCurrentOption","currentOption","amountOfOptions","selectedOption","optionIndex","inputSubmitNextStepId","setInputSubmitNextStepId","latestInputSubmitNextStepId","inputSubmitClicked","setInputSubmitClicked","handleInputShortTextSubmit","handleInputCommonSubmit","handleInputLongTextSubmit","getDefaultInputNextStepId","stepOptions","stepOption","handleRadioButtonsChange","nextStepOptions","handleCheckboxesSubmit","submittedOptions","sort","inputContent","newFormValue","inputContainerTransitions","enter","leave","triggerChatSubmission","formDetails","details","api","post","then","response","data","chatSubmittedSuccessfully","catch","chatSubmitError","getModalHeightScale","overlayStyles","display","windowStyles","chatModalWindowWrapperStyles","marginRight","useDisabledScrollWidth","chatContainerStyles","newMessageNotificationStyles","values","item","commonProps","inputType","getUserInput","SimpleLink"],"mappings":"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","file":"ChatModal.880587028d23e40d5c60.chunk.js","sourcesContent":["module.exports = (__webpack_require__(8))(694);","module.exports = (__webpack_require__(8))(691);","module.exports = (__webpack_require__(8))(656);","module.exports = (__webpack_require__(8))(653);","import React, { useLayoutEffect, useEffect, useRef, useCallback, MutableRefObject } from 'react';\r\n\r\nimport invariant from 'tiny-invariant';\r\n\r\n// hook based on react-stay-scrolled@^7.0.0\r\n// https://github.com/perrin4869/react-stay-scrolled#readme\r\n// The original hook didn't check for a null ref so I modified it\r\n\r\nexport const currentScrollTop = dom => dom.scrollTop;\r\nexport const maxScrollTop = dom => dom.scrollHeight - dom.clientHeight;\r\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\r\n\r\nexport const useStayScrolled = (\r\n initialScroll = null,\r\n inaccuracy = 0,\r\n runScroll = null, // eslint-disable-line no-param-reassign\r\n) => {\r\n const wasScrolled = useRef(null);\r\n const domRef = useRef(null);\r\n\r\n const elementDefined = () => {\r\n return domRef.current !== null;\r\n };\r\n\r\n const isScrolled = useCallback(\r\n () => elementDefined() ? Math.ceil(domRef.current.scrollTop) >= maxScrollTop(domRef.current) - inaccuracy : false,\r\n [inaccuracy],\r\n );\r\n\r\n useEffect(() => {\r\n if (elementDefined()) {\r\n const onScroll = () => { wasScrolled.current = isScrolled(); };\r\n\r\n domRef.current.addEventListener('scroll', onScroll);\r\n return () => domRef.current.removeEventListener('scroll', onScroll);\r\n }\r\n }, [domRef.current]);\r\n\r\n const defaultRunScroll = offset => {\r\n if (elementDefined())\r\n domRef.current.scrollTop = offset;\r\n };\r\n\r\n const scroll = useCallback(position => {\r\n //invariant(elementDefined(), `Trying to scroll to the bottom, but no element was found.\r\n // Did you call this scrollBottom before the component with this hook finished mounting?`);\r\n\r\n //console.log('useStayScrolled --------------------------------------------------------------------');\r\n //console.log('useStayScrolled actually scrolling now');\r\n //console.log('useStayScrolled --------------------------------------------------------------------');\r\n\r\n if (elementDefined()) {\r\n const currentOffset = currentScrollTop(domRef.current);\r\n const offset = Math.min(maxScrollTop(domRef.current), position);\r\n if (currentOffset !== offset) {\r\n if (runScroll)\r\n runScroll(offset);\r\n else\r\n defaultRunScroll(offset);\r\n }\r\n }\r\n }, [runScroll]);\r\n\r\n const scrollBottom = useCallback(() => {\r\n scroll(Infinity);\r\n }, [scroll]);\r\n\r\n const stayScrolled = useCallback(() => {\r\n if (wasScrolled.current) scrollBottom();\r\n\r\n return wasScrolled.current;\r\n }, [scrollBottom]);\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n if (initialScroll !== null) {\r\n scroll(initialScroll);\r\n }\r\n\r\n wasScrolled.current = isScrolled();\r\n }, []);\r\n\r\n let returnValues: [\r\n MutableRefObject,\r\n (position: any) => void,\r\n () => any,\r\n () => void,\r\n () => boolean,\r\n ];\r\n returnValues = [\r\n domRef,\r\n scroll,\r\n stayScrolled,\r\n scrollBottom,\r\n isScrolled,\r\n ];\r\n\r\n return returnValues;\r\n};\r\n","import React, { useState, useEffect, useCallback, Fragment } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nimport classNames from \"classnames\";\r\n\r\nimport { useSpring, a, to, SpringConfig } from \"@react-spring/web\";\r\nimport { defaultSpringConfig } from \"components/Animations/SpringProperties/SpringProperties\";\r\n\r\nimport * as fromUserInterface from \"store/UserInterface\";\r\nimport * as fromInterfaceOverlay from \"store/InterfaceOverlay\";\r\nimport * as fromMainNavigation from \"store/MainNavigation\";\r\n\r\nimport { useTimeout, useLatest } from \"utils/Index\";\r\n\r\nexport interface IProps {\r\n updateWindowDimensions(): void;\r\n}\r\n\r\nconst ModalTriggerComponent: React.FC = ({\r\n updateWindowDimensions,\r\n}) => {\r\n const animateContentIn = useSelector(\r\n fromUserInterface.getPageContentAnimatedIn\r\n );\r\n const navMenuOpen = useSelector(fromMainNavigation.getNavMenuOpen);\r\n const active = useSelector(fromInterfaceOverlay.getChatModalTrigger);\r\n const open = useSelector(fromInterfaceOverlay.getChatModalWindow);\r\n const chatStarted = useSelector(fromInterfaceOverlay.getChatModalStarted);\r\n const notificationDot = useSelector(\r\n fromInterfaceOverlay.getChatModalNotificationDot\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n const enterContactTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromInterfaceOverlay.actionCreators.enterContactTriggerAction()),\r\n [dispatch]\r\n );\r\n\r\n const leaveContactTriggerAction = useCallback(\r\n () =>\r\n dispatch(fromInterfaceOverlay.actionCreators.leaveContactTriggerAction()),\r\n [dispatch]\r\n );\r\n\r\n const openChatModalAction = useCallback(\r\n () => dispatch(fromInterfaceOverlay.actionCreators.openChatModalAction()),\r\n [dispatch]\r\n );\r\n\r\n const closeChatModalAction = useCallback(\r\n () => dispatch(fromInterfaceOverlay.actionCreators.closeChatModalAction()),\r\n [dispatch]\r\n );\r\n\r\n const [animateIn, setAnimateIn] = useState(false);\r\n const [hovering, setHovering] = useState(false);\r\n\r\n const [delay, setDelay] = useState(2000);\r\n const [initialised, setInitialised] = useState(false);\r\n const [triggerTimeout, setTriggerTimeout] = useState(false);\r\n\r\n const springConfig: SpringConfig = {\r\n ...defaultSpringConfig,\r\n tension: 400,\r\n };\r\n\r\n const [openHoverSpring, setOpenHoverSpring] = useSpring(() => ({\r\n active: 0,\r\n config: springConfig,\r\n }));\r\n const [triggerHeightSpring, setTriggerHeightSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n const [triggerWidthSpring, setTriggerWidthSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n const [closeHoverSpring, setCloseHoverSpring] = useSpring(() => ({\r\n active: 0,\r\n config: springConfig,\r\n }));\r\n const [windowSpring, setWindowSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n const [notificationSpring, setNotificationSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n const [chatIconSpring, setChatIconSpring] = useSpring(() => ({\r\n x: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setWindowSpring({ x: open ? 1 : 0 });\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n setOpenHoverSpring({ active: active ? 1 : 0 });\r\n setTriggerHeightSpring({ x: active || (chatStarted && !open) ? 1 : 0 });\r\n setTriggerWidthSpring({ x: chatStarted ? 1 : 0 });\r\n }, [active, chatStarted, open]);\r\n\r\n useEffect(() => {\r\n setChatIconSpring({ x: chatStarted && !open && !active ? 1 : 0 });\r\n }, [chatStarted, open, active]);\r\n\r\n useEffect(() => {\r\n setNotificationSpring({\r\n x: chatStarted && notificationDot && !open ? 1 : 0,\r\n });\r\n }, [chatStarted, notificationDot, open]);\r\n\r\n const [animateInSpring, setAnimateInSpring] = useSpring(() => ({\r\n active: 0,\r\n config: springConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setAnimateInSpring({ active: animateIn ? 1 : 0 });\r\n }, [animateIn]);\r\n\r\n const latestInitialised = useLatest(initialised);\r\n\r\n useTimeout(\r\n () => {\r\n if (!latestInitialised.current) {\r\n handleTriggerMouseLeave();\r\n setInitialised(true);\r\n }\r\n setTriggerTimeout(false);\r\n },\r\n triggerTimeout ? delay : null\r\n );\r\n\r\n useEffect(() => {\r\n if (animateContentIn && !animateIn) {\r\n setAnimateIn(true);\r\n if (!initialised) {\r\n showTrigger();\r\n updateWindowDimensions();\r\n setTriggerTimeout(true);\r\n }\r\n } else if (!animateContentIn && animateIn && initialised) {\r\n // If we have already animated the trigger in, if we navigate to a new page, reset and animate in again\r\n setAnimateIn(false);\r\n setInitialised(false);\r\n }\r\n }, [animateContentIn, animateIn, initialised, hovering]);\r\n\r\n const showTrigger = () => {\r\n if (!active) enterContactTriggerAction();\r\n if (!hovering) setHovering(true);\r\n };\r\n\r\n const handleTriggerMouseEnter = () => {\r\n if (!open) {\r\n showTrigger();\r\n if (!initialised) {\r\n setInitialised(true);\r\n }\r\n }\r\n };\r\n\r\n const handleTriggerMouseLeave = () => {\r\n if (!open) {\r\n if (active) leaveContactTriggerAction();\r\n if (hovering) setHovering(false);\r\n }\r\n };\r\n\r\n const handleCloseTriggerMouseEnter = () => {\r\n if (open) {\r\n setCloseHoverSpring({ active: 1 });\r\n }\r\n };\r\n\r\n const handleCloseTriggerMouseLeave = () => {\r\n if (open) {\r\n setCloseHoverSpring({ active: 0 });\r\n }\r\n };\r\n\r\n const handleTriggerMouseClick = () => {\r\n if (open) closeChatModalAction();\r\n else openChatModalAction();\r\n\r\n setCloseHoverSpring({ active: 0 });\r\n };\r\n\r\n const navSpringConfig: SpringConfig = {\r\n ...springConfig,\r\n tension: 170,\r\n friction: 36,\r\n clamp: false,\r\n };\r\n const [navSpring, setNavSpring] = useSpring(() => ({\r\n x: 0,\r\n config: navSpringConfig,\r\n }));\r\n\r\n useEffect(() => {\r\n setNavSpring({ x: navMenuOpen ? 1 : 0 });\r\n }, [navMenuOpen]);\r\n\r\n const wrapperStyles = {\r\n opacity: animateInSpring.active,\r\n transform: to(\r\n [navSpring.x, windowSpring.x],\r\n (nx, wx) =>\r\n `translateY( calc( ${\r\n nx * 100\r\n }px + ( ${wx} * ( ( var(--triggerGap) - var(--chatWindowGap) - (1 * var(--chatWindowGap)) ) ) ) ) ) translateX( calc( ${wx} * ( ( var(--triggerGap) - var(--chatWindowGap) - (var(--chatWindowWidth) / 2) ) ) ) )`\r\n // `translateY(calc(${nx * 100}px + ${\r\n // wx * 10\r\n // }px)) translateX( calc( ${wx} * ( ( ( (var(--chatWindowWidth) / -2) ) - var(--chatWindowGap) + var(--triggerGap) ) ) )`\r\n // (nx, wx) => `translateY(${nx * 100}px)`\r\n ),\r\n //right: windowSpring.x.to(x => x > 0 ? `50%` : null)\r\n };\r\n\r\n const triggerStyles = {\r\n width: to(\r\n [\r\n openHoverSpring.active,\r\n triggerWidthSpring.x,\r\n closeHoverSpring.active,\r\n windowSpring.x,\r\n ],\r\n (ox, tx, cx, wx) => {\r\n const triggerWidth = `(((var(--chatTriggerWidth) - var(--chatTriggerNibWidth) ) * ${tx}) + var(--chatTriggerNibWidth))`;\r\n return `calc( (${wx} * (var(--chatTriggerWidth) - ${triggerWidth}) ) + (${cx} * 10px) + (${ox} * (100% - ${triggerWidth} - 2px) ) + ${triggerWidth})`;\r\n }\r\n ),\r\n height: to(\r\n [triggerHeightSpring.x, closeHoverSpring.active, windowSpring.x],\r\n (tx, cx, wx) =>\r\n `calc((${wx} * (var(--chatTriggerWidth) + (var(--chatTriggerNibWidth) * -1))) + (${cx} * 10px) + ( (100% + (var(--chatTriggerNibWidth) * -1) - 2px) * ${tx} ) + var(--chatTriggerNibWidth))`\r\n ),\r\n // `calc((${wx} * (var(--chatTriggerWidth) - var(--chatTriggerNibWidth))) + (${cx} * 10px) + (${tx} * (100% - var(--chatTriggerNibWidth) - 2px)) + var(--chatTriggerNibWidth))`\r\n transform: windowSpring.x.to(\r\n (wx) => `translateY(-50%) translateX(calc(${wx} * 50%))`\r\n ),\r\n // transform: to(\r\n // [windowSpring.x],\r\n // // (wx) => `translateY(-50%) translateX(-${wx * 50}%)`\r\n // (wx) => `translateY(-50%) translateX(calc(${wx} * 50%))`\r\n // // (wx) =>\r\n // // `translateY(-50%) translateX( calc( ( (var(--chatWindowWidth) / -2) - (${\r\n // // wx * 50\r\n // // }%) ) ) )`\r\n // ),\r\n // right: to(\r\n // [windowSpring.x],\r\n // (wx) => `translateX( calc( ( (var(--chatWindowWidth) / -2) ) ) )`\r\n // // (wx) =>\r\n // // `translateY(-50%) translateX( calc( ( (var(--chatWindowWidth) / -2) - (${\r\n // // wx * 50\r\n // // }%) ) ) )`\r\n // ),\r\n };\r\n\r\n const labelStyles = {\r\n opacity: openHoverSpring.active,\r\n };\r\n\r\n const closeModalStyles = {\r\n opacity: windowSpring.x.to((x) => (open ? x : 0)),\r\n };\r\n\r\n const notificationStyles = {\r\n opacity: notificationSpring.x.to((x) => x),\r\n transform: to(\r\n [notificationSpring.x],\r\n (nx) =>\r\n `translateX(50%) translateY(-50%) scale(${0.7 + nx * 0.3}, ${\r\n 0.7 + nx * 0.3\r\n })`\r\n ),\r\n };\r\n\r\n const chatIconStyles = {\r\n opacity: chatIconSpring.x,\r\n };\r\n\r\n const getTriggerText = () => {\r\n if (chatStarted) return \"Reopen conversation\";\r\n else return \"Get in touch\";\r\n };\r\n\r\n const Button = (type: \"content\" | \"border\" | \"overlay\" = \"content\") => (\r\n \r\n {getTriggerText()}\r\n \r\n {type === \"content\" && (\r\n \r\n {getTriggerText()}\r\n \r\n )}\r\n {type === \"border\" && (\r\n \r\n )}\r\n \r\n {type === \"content\" && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n {type === \"border\" &&
}\r\n \r\n {type === \"overlay\" && (\r\n \r\n )}\r\n \r\n );\r\n\r\n return (\r\n <>\r\n {Button()}\r\n {Button(\"border\")}\r\n {Button(\"overlay\")}\r\n \r\n );\r\n};\r\n\r\n// Wire up the React component to the Redux store\r\nexport const ModalTrigger = ModalTriggerComponent;\r\n","import React, { useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport * as fromInterfaceOverlay from 'store/InterfaceOverlay';\r\n\r\nimport { BlockLink, IButtonLinkProps } from 'components/Links/Index';\r\n\r\ninterface IOwnSpecificProps {\r\n href: string;\r\n}\r\n\r\ntype IOwnProps = IButtonLinkProps & IOwnSpecificProps;\r\n\r\ntype IProps = IOwnProps;\r\n\r\nexport const ChatButtonLink: React.FC = ({ href = null, ...props }) => {\r\n const open = useSelector(fromInterfaceOverlay.getChatModalWindow);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const closeChatModalAction = useCallback(\r\n () => dispatch(fromInterfaceOverlay.actionCreators.closeChatModalAction())\r\n , [dispatch]);\r\n\r\n const handleClick = () => {\r\n if (open)\r\n closeChatModalAction();\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import React, { useState, useEffect, useRef, MutableRefObject } from 'react';\r\nimport { useSpring, SpringValue } from '@react-spring/web';\r\nimport { defaultSpringConfig } from 'components/Animations/SpringProperties/SpringProperties';\r\n\r\nimport { useLatest } from 'utils/Index';\r\n\r\ninterface ISpringInterface {\r\n [x: string]: SpringValue;\r\n x: SpringValue;\r\n}\r\n\r\nexport const useChatAnimation = (\r\n triggerStayScrolled = () => null,\r\n inputVisibility = false,\r\n) => {\r\n const [inputVisible, setInputVisible] = useState(false);\r\n const [initialised, setInitialised] = useState(false);\r\n\r\n const elementRef = useRef(null);\r\n\r\n const latestInputVisible = useLatest(inputVisible);\r\n\r\n const heightAnimationRest = () => {\r\n if (latestInputVisible)\r\n setInitialised(true);\r\n\r\n triggerStayScrolled();\r\n };\r\n\r\n const [heightSpring, setHeightSpring] = useSpring(() => ({\r\n x: 0,\r\n config: defaultSpringConfig,\r\n onRest: () => { heightAnimationRest(); },\r\n }));\r\n\r\n useEffect(() => {\r\n const elementHeight = elementRef.current.getBoundingClientRect().height;\r\n if (inputVisible && !initialised) {\r\n if (elementHeight !== 0)\r\n setHeightSpring({ x: elementHeight });\r\n else\r\n setInitialised(true);\r\n } else if (!inputVisible && initialised) {\r\n setHeightSpring({ x: 0, from: { x: elementHeight } });\r\n setInitialised(false);\r\n }\r\n }, [inputVisible, initialised]);\r\n\r\n useEffect(() => {\r\n setInputVisible(inputVisibility);\r\n }, [inputVisibility]);\r\n\r\n const showInput = (val: boolean = false) => {\r\n setInputVisible(val);\r\n };\r\n\r\n let returnValues: [MutableRefObject, boolean, ISpringInterface, boolean, (val: boolean) => void];\r\n returnValues = [elementRef, initialised, heightSpring, inputVisible, showInput];\r\n\r\n return returnValues;\r\n};\r\n\r\nexport const useChatInputAnimation = (\r\n triggerStayScrolled = () => null,\r\n inputVisibility = false,\r\n) => {\r\n const [\r\n elementRef,\r\n initialised,\r\n heightSpring,\r\n inputVisible,\r\n showInput,\r\n ] = useChatAnimation(\r\n triggerStayScrolled,\r\n inputVisibility,\r\n );\r\n\r\n const inputWrapperStyles = {\r\n height: !initialised ? heightSpring.x.to(x => x) : null,\r\n overflow: 'hidden',\r\n };\r\n\r\n let returnValues: [MutableRefObject, object, boolean, (val: boolean) => void];\r\n returnValues = [elementRef, inputWrapperStyles, inputVisible, showInput];\r\n\r\n return returnValues;\r\n};\r\n\r\n","import React, { useEffect } from 'react';\r\nimport ReactMarkdown from 'react-markdown';\r\n\r\nimport { useSpring } from '@react-spring/web';\r\nimport { defaultSpringConfig } from 'components/Animations/SpringProperties/SpringProperties';\r\n\r\nimport { ChatButtonLink } from './ChatButtonLink';\r\nimport classNames from 'classnames';\r\n\r\nimport { a } from '@react-spring/web';\r\n\r\nimport { useChatAnimation } from 'hooks/useChatAnimation';\r\n\r\nexport type ISender = 'qore' | 'friend';\r\n\r\nexport interface IProps {\r\n from: ISender;\r\n allowHtml: boolean;\r\n triggerStayScrolled: () => void;\r\n}\r\n\r\nexport const ModalMessage: React.FC = ({\r\n from,\r\n allowHtml = false,\r\n triggerStayScrolled = () => null,\r\n ...props\r\n}) => {\r\n\r\n const [positionSpring, setPositionSpring] = useSpring(() => ({ x: 1, config: defaultSpringConfig }));\r\n\r\n const [\r\n messageContainerRef,\r\n initialised,\r\n heightSpring,\r\n inputVisible,\r\n ] = useChatAnimation(\r\n triggerStayScrolled,\r\n true,\r\n );\r\n\r\n useEffect(() => {\r\n if (inputVisible && !initialised)\r\n setPositionSpring({ x: 0 });\r\n }, [inputVisible, initialised]);\r\n\r\n const wrapperStyles = {\r\n height: !initialised ? heightSpring.x.to(x => x) : null,\r\n };\r\n\r\n const messageStyles = {\r\n transform: positionSpring.x.to(x => `translateY(calc((100% + 100px) * ${x}))`),\r\n };\r\n\r\n //const transformLinkUri = (uri: string) => {\r\n // const newUri = uri.toString();\r\n // //return '/services';\r\n // return newUri;\r\n //}\r\n\r\n // Based on https://github.com/robinweser/react-markdown-github-renderers/blob/master/src/index.js\r\n // This renders links as my own react link elements to prevent hard page rerenders like the default links were causing\r\n const markdownRenderer = {\r\n link: ChatButtonLink,\r\n //blockquote: BlockQuote,\r\n //list: List,\r\n //listItem: ListItem,\r\n //paragraph: Paragraph,\r\n //strong: Strong,\r\n //heading: Heading,\r\n //inlineCode: InlineCode,\r\n //code: Code,\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n {props.children}\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport * as classNames from 'classnames';\r\n\r\nimport { useInputState, IInputStateProps, IInputReturnValues } from './useInputState';\r\n\r\nimport TextareaAutosize from 'react-autosize-textarea';\r\n\r\nexport interface IInputProps {\r\n placeholder?: string;\r\n autocomplete?: boolean;\r\n}\r\n\r\nexport type IInputFieldProps = IInputProps & IInputStateProps;\r\n\r\nexport const useInputField = ({\r\n placeholder,\r\n autocomplete = true,\r\n ...props\r\n}: IInputFieldProps) => {\r\n\r\n const input = useInputState(props);\r\n\r\n const commonElementProps = {\r\n ref: input.ref,\r\n id: input.id,\r\n name: input.id,\r\n placeholder,\r\n value: input.value,\r\n onChange: input.handleOnChange,\r\n onKeyDown: input.handleOnKeyDown,\r\n onBlur: input.handleOnBlur,\r\n disabled: input.disabled,\r\n className: classNames(\r\n { error: input.error },\r\n ),\r\n autoComplete: autocomplete ? \"on\" : \"off\",\r\n };\r\n\r\n let inputElement: JSX.Element = null;\r\n if (input.type === 'longtext')\r\n inputElement = ;\r\n else\r\n inputElement = ;\r\n\r\n interface ISpecificReturnValues {\r\n el: JSX.Element;\r\n }\r\n\r\n type IReturnValues = IInputReturnValues & ISpecificReturnValues;\r\n\r\n const returnValues: IReturnValues = {\r\n ref: input.ref,\r\n type: input.type,\r\n el: inputElement,\r\n id: input.id,\r\n value: input.value,\r\n touched: input.touched,\r\n error: input.error,\r\n disabled: input.disabled,\r\n handleOnChange: input.handleOnChange,\r\n handleOnKeyDown: input.handleOnKeyDown,\r\n handleOnBlur: input.handleOnBlur,\r\n focusInput: input.focusInput,\r\n handleSubmit: input.handleSubmit,\r\n };\r\n\r\n return returnValues;\r\n};\r\n","import React, { useEffect, useState, useRef } from 'react';\r\n\r\nimport * as EmailValidator from 'email-validator';\r\n\r\nimport { usePrevious } from 'utils/Index';\r\nimport { IFormReturnValues } from './useFormState';\r\n\r\ntype IInputTypes = 'text' | 'password' | 'email' | 'search' | 'date' | 'tel' | 'url' | 'longtext';\r\n\r\nexport interface IInputStateProps {\r\n form?: IFormReturnValues;\r\n type?: IInputTypes;\r\n id: string;\r\n initialValue: string;\r\n valueOnEnable?: string;\r\n valueOnDisable?: string;\r\n onTouched?(): any;\r\n setValue?(value: string): any;\r\n onChange?(value: string): any;\r\n onSubmit?(value: string): any;\r\n onKeyDown?(e: any): boolean;\r\n customValidation?(value: string, touched: boolean, submitted: boolean): boolean;\r\n onEnable?(): any;\r\n onDisable?(): any;\r\n onBlur?(): any;\r\n setError?(error: boolean): any;\r\n error?: boolean;\r\n required?: boolean;\r\n disabled?: boolean;\r\n minLength?: number;\r\n submitOnEnter?: boolean;\r\n allowMultipleLines?: boolean;\r\n}\r\n\r\nexport interface IInputReturnValues {\r\n ref: React.MutableRefObject;\r\n type: IInputTypes;\r\n id: string;\r\n value: string;\r\n touched: boolean;\r\n error: boolean;\r\n disabled: boolean;\r\n handleOnChange(): void;\r\n handleOnKeyDown(e: any): void;\r\n handleOnBlur(): void;\r\n focusInput(): void;\r\n handleSubmit(): void;\r\n}\r\n\r\nexport const useInputState = ({\r\n form = null,\r\n type = 'text',\r\n id = null,\r\n initialValue = '',\r\n valueOnEnable = null,\r\n valueOnDisable = null,\r\n onTouched = () => null,\r\n setValue: setExternalValue = v => null,\r\n onChange = v => null,\r\n onSubmit = v => null,\r\n onKeyDown = e => true,\r\n customValidation = (v, t, s) => true,\r\n onEnable = () => null,\r\n onDisable = () => null,\r\n onBlur = () => null,\r\n setError: setExternalError = e => null,\r\n error: externalError = false,\r\n required = false,\r\n disabled = false,\r\n minLength = null,\r\n submitOnEnter = false,\r\n allowMultipleLines = type === 'longtext',\r\n}: IInputStateProps) => {\r\n\r\n const [value, setValue] = useState('');\r\n const [touched, setTouched] = useState(false);\r\n const [submitted, setSubmitted] = useState(false);\r\n const [error, setError] = useState(false);\r\n\r\n const previousInitialValue = usePrevious(initialValue);\r\n const previousDisabled = usePrevious(disabled);\r\n\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (initialValue !== previousInitialValue) setValue(initialValue);\r\n\r\n if (disabled && !previousDisabled) handleOnDisable();\r\n else if (!disabled && previousDisabled) handleOnEnable();\r\n }, [disabled, previousDisabled]);\r\n\r\n const handleOnDisable = () => {\r\n onDisable();\r\n\r\n if (valueOnDisable != null) setInputValue(valueOnDisable);\r\n };\r\n\r\n const handleOnEnable = () => {\r\n onEnable();\r\n\r\n if (valueOnEnable != null) setInputValue(valueOnEnable);\r\n };\r\n\r\n const setInputValue = (newValue: string = null) => {\r\n setValue(newValue);\r\n setError(false);\r\n\r\n setExternalValue(newValue);\r\n };\r\n\r\n const handleOnChange = () => {\r\n const newValue = ref.current.value;\r\n\r\n setValue(newValue);\r\n setTouched(true);\r\n\r\n const validationPassed = validate(newValue, true, submitted);\r\n\r\n const hasError = !validationPassed;\r\n setError(hasError);\r\n\r\n onChange(newValue);\r\n onTouched();\r\n };\r\n\r\n const handleOnKeyDown = e => {\r\n const continueExecution = onKeyDown ? onKeyDown(e) : true;\r\n if (!continueExecution) return;\r\n\r\n if (e.shiftKey && e.key === 'Enter' && allowMultipleLines && submitOnEnter) return false;\r\n else if (e.key === 'Enter' && submitOnEnter) handleSubmit();\r\n };\r\n\r\n const focusInput = () => ref.current.focus();\r\n\r\n const validate = (newValue: string, lTouched: boolean, lSubmitted: boolean) => {\r\n const fieldError: boolean = (((newValue === '' || newValue.trim() === '' || newValue == null || (minLength > 0 && newValue.length < minLength)) && (required && lSubmitted)) && lTouched);\r\n\r\n let fieldValidationPassed = true;\r\n if (type === 'email')\r\n fieldValidationPassed = lTouched && lSubmitted ? EmailValidator.validate(newValue) : true;\r\n\r\n const customValidationPassed: boolean = customValidation ? customValidation(newValue, lTouched, lSubmitted) : true; // if the customValidation returns true then we assume that we have passed validation\r\n\r\n const validationPassed = (!fieldError && fieldValidationPassed && customValidationPassed);\r\n\r\n setExternalError(!validationPassed);\r\n\r\n return validationPassed;\r\n };\r\n\r\n const handleOnBlur = () => onBlur();\r\n\r\n const handleSubmit = () => {\r\n const validationPassed = isValidBeforeSubmit();\r\n if (!error && validationPassed)\r\n onSubmit(value);\r\n };\r\n\r\n const previousSubmitFields = usePrevious(form?.submitFields);\r\n\r\n useEffect(() => {\r\n if (!form?.submitFields && !previousSubmitFields)\r\n form?.updateInputState(id, value, touched, error);\r\n }, [form?.submitFields, value, touched, error]);\r\n\r\n useEffect(() => {\r\n if (form?.submitFields) {\r\n // We only need to do final checks on fields that are either required or have been touched\r\n const validationPassed = isValidBeforeSubmit();\r\n\r\n if (required || touched)\r\n form?.updateInputState(id, value, true, !validationPassed); // The global effect will not run as it runs a frame later so it's been disabled for submissions where we need updates immediately\r\n }\r\n }, [form?.submitFields, required, touched, value]);\r\n\r\n const isValidBeforeSubmit = () => {\r\n if (required || touched) {\r\n setTouched(true);\r\n setSubmitted(true);\r\n\r\n const validationPassed = validate(value, true, true);\r\n setError(!validationPassed);\r\n\r\n return validationPassed;\r\n }\r\n return false;\r\n };\r\n\r\n const returnValues: IInputReturnValues = {\r\n ref,\r\n type,\r\n id,\r\n value,\r\n touched,\r\n error: error || (externalError && touched),\r\n disabled: disabled || form?.disabled,\r\n handleOnChange,\r\n handleOnKeyDown,\r\n handleOnBlur,\r\n focusInput,\r\n handleSubmit,\r\n };\r\n\r\n return returnValues;\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\r\n\r\nimport classNames from 'classnames';\r\n\r\nimport { IInputStateProps } from 'hooks/Form/useInputState';\r\n\r\nimport { a } from '@react-spring/web';\r\nimport { useChatInputAnimation } from 'hooks/useChatAnimation';\r\n\r\nimport { ButtonLink } from 'components/Links/Index';\r\n\r\nimport { useInputField, IInputProps } from 'hooks/Form/useInputField';\r\n\r\ninterface ISpecificProps {\r\n inputVisibility?: boolean;\r\n triggerStayScrolled(): void;\r\n}\r\n\r\nexport type IProps = IInputStateProps & IInputProps & ISpecificProps;\r\n\r\nexport const InputField: React.FC = ({\r\n type = 'text',\r\n id,\r\n placeholder,\r\n error,\r\n disabled,\r\n onSubmit = v => null,\r\n inputVisibility = false,\r\n autocomplete = false,\r\n submitOnEnter = true,\r\n triggerStayScrolled = () => null,\r\n ...props\r\n}) => {\r\n\r\n const [\r\n inputWrapperRef,\r\n wrapperStyles,\r\n inputVisible,\r\n showInput,\r\n ] = useChatInputAnimation(\r\n triggerStayScrolled,\r\n inputVisibility,\r\n );\r\n\r\n const handleSubmit = (value: string) => {\r\n showInput(false);\r\n onSubmit(value);\r\n };\r\n\r\n const input = useInputField({\r\n type,\r\n id,\r\n placeholder,\r\n onSubmit: handleSubmit,\r\n error,\r\n disabled,\r\n autocomplete,\r\n submitOnEnter,\r\n ...props,\r\n });\r\n\r\n useEffect(() => {\r\n input.focusInput();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n {input.el}\r\n
\r\n
\r\n \r\n Send\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import React, { Fragment } from 'react';\r\n\r\nimport * as classNames from 'classnames';\r\n\r\nimport { useOptionsState, IOptionsStateProps, IOptionsReturnValues } from './useOptionsState';\r\n\r\nexport type IOptionsFieldProps = IOptionsStateProps;\r\n\r\nexport const useOptionsField = (props: IOptionsFieldProps) => {\r\n const input = useOptionsState(props);\r\n\r\n const getCommonElementProps = (optionId: string, checked: boolean, index: number) => ({\r\n ref: input.ref.current[index],\r\n type: input.type,\r\n id: optionId,\r\n name: input.id,\r\n value: optionId,\r\n checked,\r\n onChange: () => input.handleOnChange(optionId),\r\n onClick: () => input.handleOnChange(optionId),\r\n onBlur: input.handleOnBlur,\r\n disabled: input.disabled,\r\n className: classNames(\r\n { error: input.error },\r\n ),\r\n });\r\n\r\n const getOptionElement = (optionId: string, checked: boolean, text: string, index: number) => {\r\n let el = null;\r\n const key = optionId;\r\n\r\n if (input.type === 'radio')\r\n el = (\r\n \r\n \r\n \r\n \r\n );\r\n else if (input.type === 'checkbox')\r\n el = (\r\n \r\n \r\n