{"version":3,"file":"720.bundle.js","mappings":"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","sources":["webpack:///./components/loaders/shimmerLoader.js","webpack:///./components/help-option/index.js","webpack:///./components/more-ways-of-help/index.js","webpack:///./constants/api.js","webpack:///./hooks/useAPI.js","webpack:///./hooks/useChatBot.js","webpack:///./hooks/useHelper.js","webpack:///./hooks/useMessage.js","webpack:///./components/complaints/after-response.js","webpack:///./components/complaints/submit-complaint.js","webpack:///./components/complaints/summary-sheet.js","webpack:///./components/complaints/complaints-summary.js","webpack:///./pages/complaints/index.js","webpack:///./utils/chatbot.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Card } from '@paypalcorp/pp-react'\n\nimport './shimmer-loader.less'\n\n// component to load different shimmers with different sizes based on the props.\nconst ShimmerLoader = (props) => {\n const { customLoaderStyle, rows } = props\n\n const getShimmer = () => {\n const defaultShimmerStyle = {\n height: '10rem',\n width: '100%',\n marginBottom: '1rem',\n }\n const customStyle = { ...defaultShimmerStyle, ...customLoaderStyle }\n\n const shimmers = Array.from({ length: rows }, (_, i) => {\n return (\n \n \n \n )\n })\n\n return <>{shimmers}\n }\n\n return getShimmer()\n}\n\nShimmerLoader.propTypes = {\n customLoaderStyle: PropTypes.shape({}),\n rows: PropTypes.number,\n}\n\nShimmerLoader.defaultProps = {\n rows: 1,\n}\nexport default ShimmerLoader\n","import {\n CaptionText,\n Card,\n Col,\n Icon,\n Link,\n} from '@paypalcorp/pp-react'\nimport React from 'react'\nimport { HELP_CHANNEL_DATA } from '../../utils/prop-type-shape'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\n\n// Hooks\nimport useTracking from '../../hooks/useTracking'\n\n// styles\nimport './help-option.less'\n\n// HelpOption Component to render individual help option card\nfunction HelpOption({ iconName, title, desc, target, url, id }) {\n const { trackClick } = useTracking()\n\n const handleOnClick = (event) => {\n event.preventDefault()\n\n // Track click event through FPTI\n trackClick({\n name: componentNames.MORE_WAYS_OF_HELP,\n type: fptiTypes.ON_CLICK,\n link: `help-option|${id}|clicked`,\n })\n\n window.open(url, target || '_blank')\n }\n\n return (\n \n handleOnClick(e)}\n className=\"hc_more-help-option__card\"\n data-testid=\"hc-help-option-card\"\n >\n
\n \n
\n
\n \n {title}\n \n \n {desc}\n \n
\n
\n \n )\n}\n\nHelpOption.propTypes = HELP_CHANNEL_DATA\n\nexport default HelpOption\n","import { Col, HeadingText, Row } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport React, { useEffect } from 'react'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\nimport { MORE_WAYS_OF_HELP_DATA } from '../../utils/prop-type-shape'\nimport HelpOption from '../help-option'\nimport useTracking from '../../hooks/useTracking'\nimport './more-ways-of-help.less'\n\n// MoreWaysOfHelp Component - To display help contact channels\nfunction MoreWaysOfHelp({ helpChannels }) {\n const { trackActivity } = useTracking()\n\n // On component mount\n useEffect(() => {\n trackActivity({\n name: componentNames.MORE_WAYS_OF_HELP,\n type: fptiTypes.SUCCESS,\n })\n }, [trackActivity])\n\n const isHelpChannelsExist = () => {\n return Array.isArray(helpChannels) && helpChannels.length\n }\n\n const renderHelpOptions = () => {\n return (\n isHelpChannelsExist() && (\n \n \n \n \n \n \n \n \n \n {helpChannels.map((helpChannel) => (\n \n ))}\n \n \n )\n )\n }\n\n return <>{renderHelpOptions()}\n}\n\nMoreWaysOfHelp.propTypes = MORE_WAYS_OF_HELP_DATA\n\nexport default MoreWaysOfHelp\n","export const CHECK_BOT_ELIGIBILITY_URL = '/api/check-bot-eligibility'\nexport const MMT_CONVERSATIONS_URL = '/api/mmt-conversations'\nexport const OCP_SET_CONTEXT_URL = '/api/ocp-set-context'\nexport const UPDATE_BNA_URL = '/api/update-bna'\nexport const FULL_SEARCH_URL = '/api/search'\nexport const AI_SEARCH_STREAM_URL = '/api/get-search-ai-answer'\nexport const SEARCH_SUGGESTIONS = '/api/search-auto-complete'\nexport const SEND_EMAIL = '/api/send-email'\nexport const TOPIC_TREE_URL = '/api/topic-tree'\nexport const STEPUP_AUTH_VALIDATION = '/api/stepup-login-validate'\nexport const STEP_UP_RISK_CHECK = '/api/stepup-riskcheck'\nexport const STEP_UP_AUTH_URL = '/api/stepup-anw'\nexport const SEND_WEBFORM = '/api/send-webform'\n\nexport const API_NAMES = {\n CHECK_BOT_ELIGIBILITY: 'CHECK_BOT_ELIGIBILITY',\n MMT_CONVERSATIONS: 'MMT_CONVERSATIONS',\n OCP_SET_CONTEXT: 'OCP_SET_CONTEXT',\n UPDATE_BNA: 'UPDATE_BNA',\n FULL_SEARCH: 'FULL_SEARCH',\n AI_SEARCH_STREAM: 'AI_SEARCH_STREAM',\n SEARCH_SUGGESTIONS: 'SEARCH_SUGGESTIONS',\n SEND_EMAIL: 'SEND_EMAIL',\n TOPIC_TREE: 'TOPIC_TREE',\n STEPUP_AUTH_VALIDATION: 'STEPUP_AUTH_VALIDATION',\n STEP_UP_RISK_CHECK: 'STEP_UP_RISK_CHECK',\n STEP_UP_AUTH: 'STEP_UP_AUTH',\n SEND_WEBFORM: 'SEND_WEBFORM',\n}\n\nexport const API_URLS = {\n [API_NAMES.CHECK_BOT_ELIGIBILITY]: CHECK_BOT_ELIGIBILITY_URL,\n [API_NAMES.MMT_CONVERSATIONS]: MMT_CONVERSATIONS_URL,\n [API_NAMES.OCP_SET_CONTEXT]: OCP_SET_CONTEXT_URL,\n [API_NAMES.UPDATE_BNA]: UPDATE_BNA_URL,\n [API_NAMES.FULL_SEARCH]: FULL_SEARCH_URL,\n [API_NAMES.AI_SEARCH_STREAM]: AI_SEARCH_STREAM_URL,\n [API_NAMES.SEARCH_SUGGESTIONS]: SEARCH_SUGGESTIONS,\n [API_NAMES.SEND_EMAIL]: SEND_EMAIL,\n [API_NAMES.TOPIC_TREE]: TOPIC_TREE_URL,\n [API_NAMES.STEPUP_AUTH_VALIDATION]: STEPUP_AUTH_VALIDATION,\n [API_NAMES.STEP_UP_RISK_CHECK]: STEP_UP_RISK_CHECK,\n [API_NAMES.STEP_UP_AUTH]: STEP_UP_AUTH_URL,\n [API_NAMES.SEND_WEBFORM]: SEND_WEBFORM,\n}\n","import axios from 'axios'\n\nimport { useCallback } from 'react'\nimport { API_URLS } from '../constants/api'\nimport { useAppContext } from '../contexts/app-context'\n\n/**\n * attach query params on api url\n * @param { string } url\n * @param { object } queryParams\n * @returns\n */\nconst attachQueryParams = (url, queryParams = {}) => {\n url += '?'\n for (const param in queryParams) {\n url += `${encodeURIComponent(param)}=${encodeURIComponent(\n queryParams[param],\n )}&`\n }\n url = url.slice(0, -1)\n return url\n}\n\n/**\n * For any api calls from UI\n */\nconst useAPI = () => {\n const {\n reqContextData: { _csrf },\n } = useAppContext()\n // const { trackActivity } = useTracking()\n\n /**\n * For any GET API call invocation from UI\n * @param { string } url\n * @param { object } query params\n * @returns { Promise } API response\n */\n const getAPI = useCallback(\n async (\n apiName,\n options = { body: {}, queryParams: {}, fptiParams: {} },\n ) => {\n // const hc_event_info = options?.fptiParams?.hc_event_info || null\n try {\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_INIT,\n // hc_event_info,\n // })\n const { queryParams = {} } = options\n let url = API_URLS[apiName]\n url = attachQueryParams(url, queryParams)\n const response = await axios.get(`/cshelp${url}`)\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_SUCCESS,\n // hc_event_info,\n // })\n return response\n } catch (error) {\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_ERROR,\n // hc_event_info,\n // })\n throw error\n }\n },\n [],\n )\n\n /**\n * For any POST API call invocation from UI\n * @param { string } url\n * @param { object } request body and query params\n * @returns { Promise } API response\n */\n const postAPI = useCallback(\n async (\n apiName,\n options = { body: {}, queryParams: {}, fptiParams: {} },\n ) => {\n // const hc_event_info = options?.fptiParams?.hc_event_info || null\n try {\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_INIT,\n // hc_event_info,\n // })\n const { body = {}, queryParams = {} } = options\n let url = API_URLS[apiName]\n url = attachQueryParams(url, queryParams)\n const response = await axios.post(`/cshelp${url}`, { ...body, _csrf })\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_SUCCESS,\n // hc_event_info,\n // })\n return response\n } catch (error) {\n // trackActivity({\n // name: apiName,\n // type: fptiTypes.SERVICE_ERROR,\n // hc_event_info,\n // })\n throw error\n }\n },\n [_csrf],\n )\n\n return { getAPI, postAPI }\n}\n\nexport default useAPI\n","import _isEmpty from 'lodash/isEmpty'\nimport { useCallback } from 'react'\nimport { chatBotMessageUsRefIdsMapping } from '../constants'\nimport { API_NAMES } from '../constants/api'\nimport { useAppContext } from '../contexts/app-context'\nimport { asyncChatValidator, nodeChatOnPageValidator } from '../utils/chatbot'\nimport poll from '../utils/poll'\nimport useAPI from './useAPI'\n\nconst pollRetries = 5\nconst pollDelay = 200\n\n// use this hook for openning chat bot\nconst useChatBot = () => {\n const { reqContextData, pageProps } = useAppContext()\n const { pageName } = pageProps\n const { getAPI } = useAPI()\n\n /**\n * Open Async Chat based on the MMT Response.\n * @param params\n * @param mmtResponse\n * If the service returns active conversation pass conversation id to Async chat else pass empty string.\n * If the service fails pass 'INVALID_CONVERSATION' as a parameter to async chat.\n */\n const openAsyncChat = useCallback(\n (params, mmtResponse) => {\n if (!params.entryPoint) {\n throw new Error('Missing entryPoint', 'entryPoint is required')\n }\n const { device_type } = reqContextData\n const asyncParams = {\n sessionType: 'conversation',\n hasReply: true,\n isExtended: false,\n conversationProfile: 'HELP_CENTER',\n entryPoint: params.entryPoint,\n }\n\n asyncParams.topicName =\n params.topicRefId || chatBotMessageUsRefIdsMapping.GENERIC\n asyncParams.deviceType = device_type\n asyncParams.page = pageName\n asyncParams.origin = params.origin || ''\n asyncParams.subject = params.subject || ''\n if (params.customerIntent) {\n asyncParams.customer_intent = params.customerIntent\n }\n if (params.intentCode) {\n asyncParams.intent_code = params.intentCode\n }\n if (mmtResponse && mmtResponse.protocol) {\n asyncParams.protocol = mmtResponse.protocol\n }\n\n let id = ''\n if (typeof mmtResponse === 'object' && !_isEmpty(mmtResponse)) {\n if (mmtResponse.isConversationActive && !mmtResponse.serviceError) {\n id = mmtResponse.id\n } else if (mmtResponse.serviceError) {\n id = 'INVALID_CONVERSATION'\n }\n }\n window.nodeChat.showAsync(id, asyncParams)\n },\n [reqContextData, pageName],\n )\n\n /**\n * Open chat bot\n * @param { string } topicRefId\n * @param { string } subject\n */\n const initiateChatBot = (params) => {\n if (!params.entryPoint) {\n throw new Error('Missing entryPoint - entryPoint is required')\n }\n const options = {\n sessionType: params.sessionType || 'chatBot',\n topicName: params.topicRefId,\n conversationProfile: 'HELP_CENTER',\n entryPoint: params.entryPoint,\n }\n return window.nodeChat.show(options)\n }\n\n const invokingAsyncChat = useCallback(\n async (params, mmtResponse) => {\n await poll(asyncChatValidator, pollRetries, pollDelay)\n openAsyncChat(params, mmtResponse)\n },\n [openAsyncChat],\n )\n\n /**\n * Calls MMT conversations api and formats response\n */\n const callMMTConversationsAPI = useCallback(async () => {\n try {\n const { data } = await getAPI(API_NAMES.MMT_CONVERSATIONS)\n const conversations = data && data.conversations\n if (Array.isArray(conversations) && conversations.length) {\n return {\n isConversationActive: true,\n id: conversations[0].id,\n serviceError: false,\n protocol: conversations[0].protocol,\n }\n }\n return { isConversationActive: false, serviceError: false }\n } catch (error) {\n // Don't throw an error, since we have to consume response only if success else proceed without it\n return { isConversationActive: false, serviceError: true }\n }\n }, [getAPI])\n\n /**\n * Initialises async chat bot and opens it\n */\n const initializeAsyncChat = useCallback(\n async (params) => {\n const mmtResponse = await callMMTConversationsAPI()\n invokingAsyncChat(params, mmtResponse)\n },\n [invokingAsyncChat, callMMTConversationsAPI],\n )\n\n /**\n * Initialises chat bot and opens it\n */\n const initializeChatBot = useCallback(async (params) => {\n await poll(nodeChatOnPageValidator, pollRetries, pollDelay)\n initiateChatBot(params)\n }, [])\n\n return {\n initializeAsyncChat,\n initializeChatBot,\n }\n}\n\nexport default useChatBot\n","import { useCallback } from 'react'\nimport { JP, PERSONAL, BUSINESS, TECHNICAL } from '../constants'\nimport { useAppContext } from '../contexts/app-context'\n\nexport const useHelper = () => {\n const { reqContextData, pageProps } = useAppContext()\n\n const generateLinkWithCoBrand = useCallback(\n (link) => {\n if (reqContextData.coBrand) {\n return `/${reqContextData.coBrand}${link}`\n }\n return link\n },\n [reqContextData],\n )\n\n const isLoggedIn = useCallback(() => {\n return reqContextData.isLoggedIn\n }, [reqContextData])\n\n const getPageName = useCallback(() => {\n return pageProps.pageName\n }, [pageProps])\n\n const getDisplayName = useCallback(() => {\n const { user, country } = reqContextData\n if (user && typeof user === 'object') {\n if (country === JP) {\n return user.lastName || ''\n }\n return user.firstName || ''\n }\n return ''\n }, [reqContextData])\n\n const getUserUiExp = useCallback(() => {\n return reqContextData.userUiExp\n }, [reqContextData])\n\n const getHomePathByExperience = useCallback(\n (exp) => {\n const experience = exp || reqContextData.userUiExp\n const experiencePathMapping = {\n [PERSONAL]: '/cshelp/personal',\n [BUSINESS]: '/cshelp/business',\n [TECHNICAL]: '/cshelp/technical',\n }\n\n return experiencePathMapping[experience] || '/cshelp/home'\n },\n [reqContextData],\n )\n\n return {\n generateLinkWithCoBrand,\n isLoggedIn,\n getDisplayName,\n getPageName,\n getUserUiExp,\n getHomePathByExperience,\n }\n}\n","import { MessageFormat } from '@paypalcorp/worldready'\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react'\nimport { useContext, useCallback } from 'react'\n\nexport const useMessage = () => {\n const worldReady = useContext(WorldReadyContext)\n\n const getMessage = useCallback(\n (messageId, data) => {\n if (data) {\n return new MessageFormat(worldReady, { id: messageId }).format(data)\n }\n return new MessageFormat(worldReady, { id: messageId }).format()\n },\n [worldReady],\n )\n\n return { getMessage }\n}\n","// styles\nimport './after-response.less'\n\nimport { BodyText, HeadingText, Link } from '@paypalcorp/pp-react'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\n\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport _get from 'lodash/get'\nimport useTracking from '../../hooks/useTracking'\n\nfunction AfterResponse(props) {\n const { complaintsData = {}, configs = {}, coBrand, getContentText, isUkMarket } = props\n const { trackClick } = useTracking()\n\n const numberOfExtraTextForLV = 3\n const numberOfExtraTextForES = 2\n const numberOfExtraTextForRO = 2\n const countriesExtraTextAdded = {\n LV: 'lv',\n CZ: 'cz',\n BE: 'be',\n ES: 'es',\n RO: 'ro',\n }\n\n // FPTI for link click\n const complaintsLinkClick = (e, urlClicked) => {\n e.stopPropagation()\n\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: `complaints-link|${urlClicked}|clicked`,\n })\n }\n\n const handleCssfComplaintUrl = () => {\n // French speaking countries -> return FR complaint url\n if (configs.cssfCustComplaintsFRMarkets.includes(coBrand)) {\n return configs.cssfComplaintMessageUrlFR\n }\n return configs.cssfComplaintMessageUrl\n }\n\n // Render the extra texts in Final Response List on complaints page\n const renderExtraTextsForCountry = (countryUpperCase, noOfextraTexts) => {\n return [...new Array(noOfextraTexts)].map((_, i) => (\n
  • \n \n {getContentText(\n `finalResponseDescriptionExtraTextFor${countryUpperCase}${i + 1}`,\n )}{' '}\n \n complaintsLinkClick(\n _get(\n configs,\n `finalResponseExtraUrlFor${countryUpperCase}${i + 1}`,\n ),\n )\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"hc-complaints-page-extra-text-after-final-resp-link\"\n >\n {_get(\n configs,\n `finalResponseExtraUrlFor${countryUpperCase}${i + 1}`,\n )}\n \n \n
    \n
  • \n ))\n }\n\n // Render the extra text in Final Response List on complaints page - One Extra Text for valid country\n const renderExtraTextForCountry = (countryUpperCase) => {\n return (\n
  • \n \n {getContentText(\n `finalResponseDescriptionExtraTextFor${countryUpperCase}`,\n )}\n \n
    \n
  • \n )\n }\n\n // Render the extra text in Final Response List on complaints page - Multiple Texts for valid country\n const renderExtraTextContentAfterFinalResponse = () => {\n switch (coBrand) {\n case countriesExtraTextAdded.LV:\n return renderExtraTextsForCountry(\n coBrand.toUpperCase(),\n numberOfExtraTextForLV,\n )\n case countriesExtraTextAdded.ES:\n return renderExtraTextsForCountry(\n coBrand.toUpperCase(),\n numberOfExtraTextForES,\n )\n case countriesExtraTextAdded.RO:\n return renderExtraTextsForCountry(\n coBrand.toUpperCase(),\n numberOfExtraTextForRO,\n )\n case countriesExtraTextAdded.CZ:\n return renderExtraTextForCountry(coBrand.toUpperCase())\n case countriesExtraTextAdded.BE:\n return renderExtraTextForCountry(coBrand.toUpperCase())\n default:\n return null\n }\n }\n\n // Render the extra link in Final Response List on complaints page for valid country\n const renderExtraHyperLinkContentAfterFinalResponse = () => {\n if (\n configs.countriesExtraHyperLinkContentAdded.find((ct) => ct === coBrand)\n ) {\n const countryUpperCase = coBrand.toUpperCase()\n return (\n
  • \n \n {getContentText('finalResponseDescriptionTextForUA')}{' '}\n \n complaintsLinkClick(\n _get(configs, `finalResponseUALinkFor${countryUpperCase}`),\n )\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {getContentText('finalResponseDescriptionLinkTextForUA')}\n \n \n
    \n
  • \n )\n }\n\n return null\n }\n\n // render \"After our response\" section for non-Uk markets\n const renderOtherMarketsBody = () => {\n return (\n \n {getContentText('finalResponseText')}\n
    \n
    \n
      \n
    • \n \n {getContentText('finalResponseDescription')}\n complaintsLinkClick(configs.cssfUrl)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {configs.cssfUrl}\n {' '}\n {getContentText('finalResponseDisputeText')}\n complaintsLinkClick(configs.euUrl)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {configs.euUrl}\n \n . {getContentText('finalResponseComplaintSpecificText')}\n complaintsLinkClick(handleCssfComplaintUrl())}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {handleCssfComplaintUrl()}\n \n .\n \n
    • \n
      \n
    • \n \n {getContentText('finalResponseDescriptionText')}\n \n complaintsLinkClick(configs.resolveComplaintsUrl)\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {configs.resolveComplaintsUrl}\n \n .\n \n
    • \n
      \n {renderExtraTextContentAfterFinalResponse()}\n {renderExtraHyperLinkContentAfterFinalResponse()}\n
    \n
    \n )\n }\n\n // render \"After our response\" section\n const renderAfterResponse = () => {\n return (\n <>\n \n {getContentText('finalResponseHeader')}\n \n {isUkMarket && complaintsData ? (\n \n {complaintsData.afterResponseText1BeforeLink}\n  \n \n complaintsLinkClick(e, complaintsData.afterResponseText1Link)\n }\n >\n {complaintsData.afterResponseText1Link}\n \n . \n {complaintsData.afterResponseText1AfterLink}\n
    \n
    \n {complaintsData.afterResponseText2}\n  \n \n complaintsLinkClick(e, complaintsData.afterResponseText2Link)\n }\n >\n {complaintsData.afterResponseText2Link}\n \n .\n
    \n ) : (\n renderOtherMarketsBody()\n )}\n \n )\n }\n\n return renderAfterResponse()\n}\n\nAfterResponse.propTypes = {\n complaintsData: PropTypes.object.isRequired,\n configs: PropTypes.object.isRequired,\n coBrand: PropTypes.string.isRequired,\n getContentText: PropTypes.func.isRequired,\n isUkMarket: PropTypes.bool.isRequired,\n}\n\nexport default AfterResponse\n","import {\n BodyText,\n Button,\n DropdownMenu,\n HeadingText,\n Link,\n Sheet,\n} from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport _get from 'lodash/get'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport {\n AUTHFLOW_PASSWORD_RECOVERY_URL,\n CHAT_ENTRY_POINTS,\n COMPLAINT_REASON_CODE,\n COMPLAINT_REASON_CODES,\n INTENT_TYPE_GENERIC,\n pageNames,\n signInUri,\n} from '../../constants'\nimport { API_NAMES } from '../../constants/api'\nimport { useAppContext } from '../../contexts/app-context'\nimport useChatBot from '../../hooks/useChatBot'\nimport { useMessage } from '../../hooks/useMessage'\nimport useTracking from '../../hooks/useTracking'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\nimport { isChatBotExists } from '../../utils/chatbot'\nimport { getComplaintsWebformUrl } from '../../utils/helper'\n\n// styles\nimport useAPI from '../../hooks/useAPI'\nimport './submit-complaint.less'\n\nfunction SubmitComplaint() {\n const { getMessage } = useMessage()\n const { trackClick, trackActivity } = useTracking()\n const appCtx = useAppContext()\n const { pageProps, reqContextData } = appCtx\n const { apiData, configs } = pageProps\n const { complaintsPageData } = apiData\n const { ukComplaintsPageData } = complaintsPageData\n const { locale, isLoggedIn, coBrand } = reqContextData\n\n const [errorText, setErrorText] = useState('')\n const [selectedValue, setSelectedValue] = useState('')\n const [isLoginSheetOpen, setIsLoginSheetOpen] = useState(false)\n const [isComplaintSheetOpen, setIsComplaintSheetOpen] = useState(false)\n\n const { initializeAsyncChat, initializeChatBot } = useChatBot()\n const { getAPI } = useAPI()\n\n const isUkMarket = coBrand === 'gb' || coBrand === 'uk'\n\n // complaint reasons - sheet dropdown menu options\n const complaintOptions = useMemo(() => {\n return [\n {\n primaryText: getMessage(\n 'complaints.complaintsPage.selection.dissatisfaction',\n ),\n value: COMPLAINT_REASON_CODES.FEEDCOMPLAIN011,\n },\n {\n primaryText: getMessage(\n 'complaints.complaintsPage.selection.communication',\n ),\n value: COMPLAINT_REASON_CODES.FEEDCOMPLAIN012,\n },\n {\n primaryText: getMessage(\n 'complaints.complaintsPage.selection.discrimination',\n ),\n value: COMPLAINT_REASON_CODES.FEEDCOMPLAIN013,\n },\n {\n primaryText: getMessage('complaints.complaintsPage.selection.privacy'),\n value: COMPLAINT_REASON_CODES.FEEDCOMPLAIN014,\n },\n {\n primaryText: getMessage(\n 'complaints.complaintsPage.selection.dontSeeReason',\n ),\n value: COMPLAINT_REASON_CODES.FEEDCOMPLAIN019,\n },\n ]\n }, [])\n\n // submit a complaint sheet shown FPTI\n useEffect(() => {\n if (isComplaintSheetOpen) {\n trackActivity({\n name: componentNames.SUBMIT_COMPLAINT,\n type: fptiTypes.SUCCESS,\n })\n }\n }, [isComplaintSheetOpen])\n\n // function to redirect to complaints webform\n const redirectToComplaintsWebform = () => {\n const complaintReason =\n selectedValue || COMPLAINT_REASON_CODES.FEEDCOMPLAIN019\n window.location.href = getComplaintsWebformUrl(complaintReason, locale)\n }\n\n // initiate chat on complaints page\n const initiateChatBot = async (chatEligibilityData) => {\n const chatBotParams = {\n topicRefId: COMPLAINT_REASON_CODES.FEEDCOMPLAIN019,\n entryPoint: CHAT_ENTRY_POINTS.COMPLAINTS_PAGE_MESSAGE_US,\n }\n // initiate the async chat when async chat is eligible\n if (chatEligibilityData && chatEligibilityData.async) {\n try {\n trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.SUCCESS,\n event_name: 'initializing_async_chat_in_complaints_page',\n hc_event_info: JSON.stringify(chatBotParams),\n })\n await initializeAsyncChat(chatBotParams)\n } catch (error) {\n trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.ERROR,\n error_description: error.toString(),\n hc_event_info: 'async-chat-error-during-initialization',\n })\n // redirect to complaints webform if error while launching chatbot\n return redirectToComplaintsWebform()\n }\n } else {\n // else initiate the chatbot\n try {\n trackClick({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.SUCCESS,\n event_name: 'initializing_chatbot_in_complaints_page',\n hc_event_info: JSON.stringify(chatBotParams),\n })\n await initializeChatBot(chatBotParams)\n } catch (error) {\n trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.ERROR,\n error_description: error.toString(),\n hc_event_info: 'chat-bot-error-during-initialization',\n })\n // redirect to complaints webform if error while launching chatbot\n return redirectToComplaintsWebform()\n }\n }\n\n // paypal-assitant shown FPTI\n return trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.SUCCESS,\n })\n }\n\n // function to do the chatbot eligibility check\n const checkChatBotEligibity = async () => {\n // remove the complaintReasonCode from sessionStorage\n sessionStorage.removeItem(COMPLAINT_REASON_CODE)\n\n // if chat already exists then redirect to complaints webform\n if (isChatBotExists()) {\n redirectToComplaintsWebform()\n return\n }\n\n // check for chatBot eligibility\n try {\n const queryParams = {\n page: pageNames.COMPLAINTS,\n intentId: COMPLAINT_REASON_CODES.FEEDCOMPLAIN019, // intentId for \"I don't see my complaint reason\"\n intentType: INTENT_TYPE_GENERIC,\n }\n const { data } = await getAPI(API_NAMES.CHECK_BOT_ELIGIBILITY, {\n queryParams,\n })\n\n if (data && data.result === 'ELIGIBLE' && data.async) {\n initiateChatBot(data)\n } else {\n // chatBot not eligible: fire fpti AND redirect to complaints webform\n trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.SUCCESS,\n event_name: 'chatbot_ineligible_in_complaints_page',\n })\n redirectToComplaintsWebform()\n }\n } catch (error) {\n // chatBot eligibility check error: fire fpti AND redirect to complaints webform\n trackActivity({\n name: componentNames.PAYPAL_ASSISTANT,\n type: fptiTypes.ERROR,\n })\n redirectToComplaintsWebform()\n }\n }\n\n // perform the chatbot eligibility check when user log-in from logged-out upon selecting complaint reason FEEDCOMPLAIN019\n useEffect(() => {\n if (\n isLoggedIn &&\n sessionStorage.getItem(COMPLAINT_REASON_CODE) ===\n COMPLAINT_REASON_CODES.FEEDCOMPLAIN019\n ) {\n checkChatBotEligibity()\n }\n }, [isLoggedIn])\n\n // submit a complaint sheet closed\n const closeComplaintSheet = () => {\n trackClick({\n name: componentNames.SUBMIT_COMPLAINT,\n type: fptiTypes.ON_CLICK,\n link: 'submit-complaint-sheet-close|clicked',\n })\n\n setIsComplaintSheetOpen(false)\n }\n\n // Login for faster service sheet closed\n const closeLoginSheet = () => {\n trackClick({\n name: componentNames.COMPLAINTS_LOGIN_SHEET,\n type: fptiTypes.ON_CLICK,\n link: 'close-login-sheet|clicked',\n })\n\n setIsLoginSheetOpen(false)\n }\n\n // complaint reason dropdown menu clicked\n const dropdownMenuClicked = (e) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.SUBMIT_COMPLAINT,\n type: fptiTypes.ON_CLICK,\n link: 'complaint-reason-menu|clicked',\n })\n }\n\n // complaint option changed from dropdown menu complaint options\n const dropdownOptionChanged = (e) => {\n setErrorText('')\n setSelectedValue(e.target.value)\n trackClick({\n name: componentNames.SUBMIT_COMPLAINT,\n type: fptiTypes.ON_CLICK,\n link: `complaint-reason-selected|${e.target.value}|clicked`,\n })\n }\n\n // FPTI for link click\n const complaintsLinkClick = (e, urlClicked) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: `submit-complaint-link|${urlClicked}|clicked`,\n })\n }\n\n /**\n * Submit complaint sheet click handler\n */\n const showSubmitComplaintsSheet = (e) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: 'submit-complaint-link|paypal|clicked',\n })\n\n setIsComplaintSheetOpen(true)\n setSelectedValue('')\n }\n\n // submit complaint without LogIn clicked: fire the link clicked fpti AND navigate to the complaints webform\n const complaintWithoutLogInClickHandler = (e) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.COMPLAINTS_LOGIN_SHEET,\n type: fptiTypes.ON_CLICK,\n link: 'submit-complaint-without-login-link|clicked',\n })\n redirectToComplaintsWebform()\n }\n\n // Login button clicked: fire the login button clicked fpti AND open the login prompt\n const loginBtnClickHandler = (e) => {\n e.stopPropagation()\n\n const currentUri = e.target.baseURI\n trackClick({\n name: componentNames.COMPLAINTS_LOGIN_SHEET,\n type: fptiTypes.ON_CLICK,\n link: 'login-button|clicked',\n })\n\n // when user logs in from log out upon selecting complaint reason FEEDCOMPLAIN019: set the complaintReasonCode in sessionStorage\n sessionStorage.setItem(COMPLAINT_REASON_CODE, selectedValue)\n window.open(`${signInUri}${currentUri}`, '_self')\n }\n\n // navigate to password recovery when user clicks trouble logging-in link\n const troubleLogInClickHandler = (e) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.COMPLAINTS_LOGIN_SHEET,\n type: fptiTypes.ON_CLICK,\n link: 'trouble-logging-in-link|password-recovery|clicked',\n })\n window.location.href = AUTHFLOW_PASSWORD_RECOVERY_URL\n }\n\n // Redirect to complaints page only when the drop down value is selected\n const redirectComplaintsPage = (e) => {\n e.stopPropagation()\n\n if (!selectedValue) {\n setErrorText('Required')\n } else {\n trackClick({\n name: componentNames.SUBMIT_COMPLAINT,\n type: fptiTypes.ON_CLICK,\n link: `submit-complaint-sheet-continue-btn|clicked`,\n })\n\n // for complaint reason other than \"I don't see my complaint reason\"\n if (selectedValue !== COMPLAINT_REASON_CODES.FEEDCOMPLAIN019) {\n redirectToComplaintsWebform()\n return\n }\n\n // if \"I don't see my complaint reason\" selected:\n // logged-out user: open the login sheet suggesting the user to login\n if (!isLoggedIn) {\n setIsLoginSheetOpen(true)\n trackActivity({\n name: componentNames.COMPLAINTS_LOGIN_SHEET,\n type: fptiTypes.SUCCESS,\n })\n } else {\n // logged-in user: redirect to complaints homepage AND do chatbot eligibility check AND start chat when eligible\n setIsComplaintSheetOpen(false)\n checkChatBotEligibity()\n }\n }\n }\n\n // render submit a complaint about PayPal link\n const renderPayPalComplaintLink = () => {\n return (\n
    \n showSubmitComplaintsSheet(e)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"hc-submit-complaint-link-paypal\"\n >\n \n \n
    \n )\n }\n\n /**\n * render complaints link based on the url and text passed\n */\n const renderComplaintsLink = (complaintsUrl, complaintsText, productName) => {\n if (complaintsUrl && complaintsText) {\n return (\n
    \n complaintsLinkClick(e, complaintsUrl)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid={`hc-submit-complaint-link-${productName}`}\n >\n {complaintsText}\n \n
    \n )\n }\n\n return
    \n }\n\n // render submit complaint section\n const renderSubmitComplaint = () => {\n let iZettleUrl = ''\n let iZettleText = ''\n // Do not add link/text to zettle disabled markets\n if (!configs.isZettleDisabled) {\n iZettleUrl =\n isUkMarket && ukComplaintsPageData\n ? ukComplaintsPageData.iZettleComplaintUrl\n : _get(configs, coBrand.toUpperCase() + '.iZettleComplaintUrl')\n iZettleText =\n isUkMarket && ukComplaintsPageData ? (\n ukComplaintsPageData.submitComplaintZettle\n ) : (\n \n )\n }\n\n const complaintText = (\n \n )\n\n const xoomUrl = _get(configs, 'xoomComplaintUrl')\n const xoomText = \n\n const hyperwalletUrl = _get(configs, 'hyperwalletUrl')\n const hyperwalletText = (\n \n )\n\n const braintreeUrl = _get(configs, 'brainTreeUrl')\n const braintreeText = (\n \n )\n\n if (complaintText) {\n return (\n
    \n \n {complaintText}\n \n {renderPayPalComplaintLink()}\n {renderComplaintsLink(xoomUrl, xoomText, 'xoom')}\n {renderComplaintsLink(iZettleUrl, iZettleText, 'zettle')}\n {renderComplaintsLink(hyperwalletUrl, hyperwalletText, 'hyperwallet')}\n {renderComplaintsLink(braintreeUrl, braintreeText, 'braintree')}\n
    \n )\n }\n\n return
    \n }\n\n // show the login sheet when user is logged out and selected \"I don't see my complaint reason\"\n const renderLoginSheet = () => {\n return (\n \n \n \n \n \n \n \n loginBtnClickHandler(e)}\n >\n \n \n \n troubleLogInClickHandler(e)}\n >\n \n \n
    \n
    \n complaintWithoutLogInClickHandler(e)}\n >\n \n \n \n \n \n \n )\n }\n\n // render the submit complaint sheet\n const renderSubmitComplaintSheet = () => {\n // \"Complaint Reason\" label text for the dropdownMenu\n const complaintReasonLabel = getMessage(\n 'complaints.complaintsPage.selection.default',\n )\n\n return (\n \n \n \n \n dropdownOptionChanged(e)}\n onClick={(e) => dropdownMenuClicked(e)}\n value={selectedValue}\n data-testid=\"hc-submit-complaint-dropdown-menu\"\n className=\"hc_submit-complaint__complaints-dropdown\"\n />\n redirectComplaintsPage(e)}\n >\n \n \n \n )\n }\n\n // Complaints Page content\n const renderComplaintsPage = () => {\n return (\n <>\n {renderSubmitComplaint()}\n {renderSubmitComplaintSheet()}\n {renderLoginSheet()}\n \n )\n }\n\n return renderComplaintsPage()\n}\n\nexport default SubmitComplaint\n","import _get from 'lodash/get'\nimport _sortBy from 'lodash/sortBy'\nimport React from 'react'\nimport { BodyText, Container, Sheet } from '@paypalcorp/pp-react'\nimport PropTypes from 'prop-types'\nimport useTracking from '../../hooks/useTracking'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\n\n// styles\nimport './summary-sheet.less'\n\nfunction SummarySheet(props) {\n const { isSummarySheetOpen, handleSheetClose, summarySheetData } = props\n const { trackActivity } = useTracking()\n\n // Complaint Summary Sheet Data\n const sheetHeaderData = _get(summarySheetData, 'sheetHeader', {})\n const tableHeaderData = _get(summarySheetData, 'tableHeaderData', {})\n const tableRowData = _get(summarySheetData, 'tableRowData', {})\n\n const renderSheetInfoHeaderItems = () => {\n // sort function -> sortBy header item rank\n const sortHeaderItemByRank = ([, item]) => item.rank\n // convert JSON object into map entries [[headerItemKey, headerItem], ...]\n const complaintsDataSheetHeaderItemsEntries =\n Object.entries(sheetHeaderData)\n // sort the header items by rank so we can control the sequence in the config\n const sortedComplaintsDataSheetHeaderItemsEntries = _sortBy(\n complaintsDataSheetHeaderItemsEntries,\n [sortHeaderItemByRank],\n )\n\n return sortedComplaintsDataSheetHeaderItemsEntries.map(([key, item]) => {\n return (\n \n {item.key}\n \n {item.value}\n \n \n )\n })\n }\n\n const renderSheetInfo = () => {\n return (\n \n {renderSheetInfoHeaderItems()}\n \n )\n }\n\n const renderSheetTable = () => {\n return (\n \n \n \n \n \n {tableHeaderData.noComplaintsByBusiness}\n \n \n \n {tableHeaderData.productService}\n {tableHeaderData.provision}\n {tableHeaderData.intermediation}\n {tableHeaderData.noComplaintsOpened}\n {tableHeaderData.noComplaintsClosed}\n {tableHeaderData.percentClosedWithin3Days}\n {tableHeaderData.percentClosedWithin8Weeks}\n {tableHeaderData.percentUpheld}\n {tableHeaderData.mainCause}\n \n \n\n \n \n {tableRowData.rowHeader}\n {tableRowData.provision}\n {tableRowData.intermediation}\n {tableRowData.noComplaintsOpened}\n {tableRowData.noComplaintsClosed}\n {tableRowData.percentClosedWithin3Days}\n {tableRowData.percentClosedWithin8Weeks}\n {tableRowData.percentUpheld}\n {tableRowData.mainCause}\n \n \n \n )\n }\n\n const renderSummarySheet = () => {\n // summary sheet shown FPTI\n if (isSummarySheetOpen) {\n trackActivity({\n name: componentNames.COMPLAINTS_SUMMARY_SHEET,\n type: fptiTypes.SUCCESS,\n })\n }\n\n return (\n \n \n {renderSheetInfo()}\n {renderSheetTable()}\n \n \n )\n }\n\n return renderSummarySheet()\n}\n\nSummarySheet.propTypes = {\n isSummarySheetOpen: PropTypes.bool.isRequired,\n handleSheetClose: PropTypes.func.isRequired,\n summarySheetData: PropTypes.object.isRequired,\n}\n\nexport default SummarySheet\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { BodyText, HeadingText, Link } from '@paypalcorp/pp-react'\nimport useTracking from '../../hooks/useTracking'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\n\n// component\nimport SummarySheet from './summary-sheet'\n\n// styles\nimport './complaints-summary.less'\n\nfunction ComplaintsSummary(props) {\n const { complaintsSummaryData: summaryData } = props\n const { trackClick } = useTracking()\n\n // Complaints summary sheet clicks / controls\n const [isSummarySheetOpen, setIsSummarySheetOpen] = useState(false)\n\n const openSummarySheet = () => {\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: 'open-summary-sheet|clicked',\n })\n setIsSummarySheetOpen(true)\n }\n\n const closeSummarySheet = () => {\n trackClick({\n name: componentNames.COMPLAINTS_SUMMARY_SHEET,\n type: fptiTypes.ON_CLICK,\n link: `close-summary-sheet|clicked`,\n })\n setIsSummarySheetOpen(false)\n }\n\n // render the complaints data summary sheet\n const renderSummarySheet = (summarySheetData) => {\n return (\n \n )\n }\n\n const renderComplaintsSummary = () => {\n return (\n <>\n \n {summaryData.headingTitle}\n \n \n {summaryData.disclaimer}\n \n \n {summaryData.summary}\n \n {summaryData.here}\n \n \n \n )\n }\n\n return (\n <>\n {renderComplaintsSummary()}\n {renderSummarySheet(summaryData.complaintsSummarySheetData)}\n \n )\n}\n\nComplaintsSummary.propTypes = {\n complaintsSummaryData: PropTypes.object.isRequired,\n}\n\nexport default ComplaintsSummary\n","import _get from 'lodash/get'\nimport _isEmpty from 'lodash/isEmpty'\nimport React, { Suspense } from 'react'\nimport {\n BodyText,\n Container,\n HeadingText,\n Link,\n Row,\n} from '@paypalcorp/pp-react'\nimport { useAppContext } from '../../contexts/app-context'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useHelper } from '../../hooks/useHelper'\nimport useTracking from '../../hooks/useTracking'\nimport { componentNames, fptiTypes } from '../../utils/analytics/fpti-constants'\n// Components\nimport ShimmerLoader from '../../components/loaders/shimmerLoader'\nimport MoreWaysOfHelp from '../../components/more-ways-of-help'\nimport AfterResponse from '../../components/complaints/after-response'\nimport SubmitComplaint from '../../components/complaints/submit-complaint'\nimport ComplaintsSummary from '../../components/complaints/complaints-summary'\nimport { useMessage } from '../../hooks/useMessage'\n// constants\nimport { COMPLAINTS_PROCESS_DOC_FOR_COUNTRY } from '../../constants'\n// styles\nimport '../../styles/pages/complaints.less'\n\n// Lazy load components\nconst Alerts = React.lazy(() =>\n import('../../components/alerts' /* webpackPrefetch: true */),\n)\n\n// Complaints page - This is the page/container for complaints page which will have the layout and components placement\nfunction Complaints() {\n const appCtx = useAppContext()\n const { pageProps, reqContextData } = appCtx\n const { apiData, pageName, configs } = pageProps\n const { helpChannels, complaintsPageData } = apiData\n const { ukComplaintsPageData } = complaintsPageData\n const { coBrand } = reqContextData\n const { getMessage } = useMessage()\n\n const { trackClick, trackActivity } = useTracking()\n const { generateLinkWithCoBrand } = useHelper()\n\n const isUkMarket = coBrand === 'gb' || coBrand === 'uk'\n\n // Function to get the localized text content for a given key\n const getContentText = (key) => {\n if (isUkMarket) {\n return _get(ukComplaintsPageData, key)\n }\n return getMessage('complaints.complaintsPage.' + key)\n }\n\n /**\n * Function to check for country/locale complaints RC\n * */\n const isComplaintsCountryLocaleEnabled = () => {\n return (\n configs.complaintsEnabledMarkets &&\n (configs.complaintsEnabledMarkets.isGlobalEnabled ||\n configs.complaintsEnabledMarkets.markets.includes(coBrand))\n )\n }\n\n // FPTI for external links clicked related to complaints\n const complaintsLinkClick = (e, urlClicked) => {\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: `complaints-link|${urlClicked}|clicked`,\n })\n }\n\n // Function to handle click for \"here\" link specific to SK, HU\n const handleHereClickEvent = (e, countryCode) => {\n e.preventDefault()\n if(countryCode in COMPLAINTS_PROCESS_DOC_FOR_COUNTRY) {\n const url = COMPLAINTS_PROCESS_DOC_FOR_COUNTRY[countryCode]\n complaintsLinkClick(url)\n window.open(url, '_blank')\n }\n }\n\n // additional text and link (link to complaints process code) on \"what happens next\" para for Slovakia, Hungary\n const renderComplaintsProcessInfo = () => {\n const countryKey = coBrand?.toUpperCase()\n if(countryKey in COMPLAINTS_PROCESS_DOC_FOR_COUNTRY) {\n return (\n \n {getContentText(`additionalTextFor${countryKey}`)} \n handleHereClickEvent(e, countryKey)}\n rel=\"noopener noreferrer\"\n data-testid=\"hc-complaints-page-complaints-process-code-link\"\n >\n {getContentText('hereText')}.\n \n \n )\n }\n return null\n }\n\n // FPTI for help center hero link clicked\n const hcLinkClickHandler = (e) => {\n e.stopPropagation()\n trackClick({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ON_CLICK,\n link: 'help-center-hero-link|clicked',\n })\n }\n\n // render the Complaints page background image\n const renderBackgroundImgage = () => {\n return (\n \n \n \n )\n }\n\n // render the page header and intro content\n const renderPageHeader = () => {\n return (\n <>\n \n {getContentText('pageHeader')}\n \n \n \n \n \n )\n }\n\n // render the \"Help Center\" link on complaints page header for navigating to helpcenter homepage\n const renderHeroLink = () => {\n return (\n \n \n hcLinkClickHandler(e)}\n >\n \n \n \n \n )\n }\n\n // render the Alerts component\n const renderAlerts = () => {\n return (\n \n \n }>\n \n \n \n \n )\n }\n\n // render \"What happens next\" section\n const renderWhatHappensNext = () => {\n return (\n <>\n \n \n \n \n {getContentText('nextHeaderText')}\n \n {renderComplaintsProcessInfo()}\n \n )\n }\n\n // render \"After our response\" section\n const renderAfterOurResponse = () => {\n return (\n \n )\n }\n\n // Special footer content for UK market - Complaints data and Standard footer content\n const renderUKFooter = () => {\n const complaintsSummaryData = _get(\n ukComplaintsPageData,\n 'complaintsSummaryData',\n {},\n )\n const complaintsSummarySheetData = _get(\n complaintsSummaryData,\n 'complaintsSummarySheetData',\n {},\n )\n // when complaints summary data is available\n if (\n !_isEmpty(complaintsSummaryData) &&\n !_isEmpty(complaintsSummarySheetData)\n ) {\n return (\n <>\n \n
    \n \n )\n }\n\n // Error FPTI: when UK complaints summary data not available\n trackActivity({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ERROR,\n })\n\n return null\n }\n\n // render the complaints footer content\n const renderFooter = () => {\n if (isUkMarket) {\n return renderUKFooter()\n }\n // for other markets render the standard footer data\n\n return (\n \n {getContentText('extendedHeadingBelowText')}\n complaintsLinkClick(e, configs.superviseDentitiesUrl)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"hc-complaints-footer-superviseDentitiesUrl-link\"\n >\n {configs.superviseDentitiesUrl}\n \n {getContentText('extendedHeadingFinalText')}\n \n )\n }\n\n // render the Complaints page\n if (isComplaintsCountryLocaleEnabled()) {\n return (\n \n {renderAlerts()}\n {renderBackgroundImgage()}\n {renderHeroLink()}\n {/* Complaints page content */}\n \n {renderPageHeader()}\n \n \n \n {renderWhatHappensNext()}\n {renderAfterOurResponse()}\n \n \n \n {renderFooter()}\n \n
    \n )\n }\n\n // error FPTI: Missing Complaints page data\n trackActivity({\n name: componentNames.COMPLAINTS,\n type: fptiTypes.ERROR,\n })\n\n return null\n}\n\nexport default Complaints\n","/**\n * checks if chat bot exists in environment or not\n */\nexport const nodeChatOnPageValidator = () => {\n const { nodeChat } = window\n if (!nodeChat || typeof nodeChat.show !== 'function') {\n return Promise.reject(new Error('nodeChat is not available on the window'))\n }\n return Promise.resolve(window.nodeChat)\n}\n\n/**\n * checks if chat bot already opened in the web page\n */\nexport const isChatBotExists = (targetNode = null) => {\n let nodeChatElement\n if (targetNode) {\n nodeChatElement = targetNode\n } else {\n nodeChatElement = document.getElementById('node-chat') || null\n }\n if (nodeChatElement) {\n // Old node-chat implementation check\n if (nodeChatElement.style.display) {\n return nodeChatElement.style.display === 'block'\n }\n\n // New node-chat implementation\n return (\n nodeChatElement.style.visibility &&\n nodeChatElement.style.visibility === 'visible'\n )\n }\n return false\n}\n\n/**\n * checks if async chat bot exists in environment or not\n */\nexport const asyncChatValidator = () => {\n const { nodeChat } = window\n if (!nodeChat || typeof nodeChat.showAsync !== 'function') {\n return Promise.reject(new Error('nodeChat is not available on the window'))\n }\n return Promise.resolve()\n}\n"],"names":["ShimmerLoader","props","customStyle","shimmers","customLoaderStyle","rows","height","width","marginBottom","Array","from","length","_","i","key","style","isLoading","propTypes","PropTypes","defaultProps","HelpOption","iconName","title","desc","target","url","id","trackClick","useTracking","sm","lg","className","onClick","e","preventDefault","name","componentNames","MORE_WAYS_OF_HELP","type","fptiTypes","ON_CLICK","link","window","open","size","color","secondary","href","HELP_CHANNEL_DATA","MoreWaysOfHelp","helpChannels","trackActivity","useEffect","SUCCESS","isArray","as","Message","map","helpChannel","MORE_WAYS_OF_HELP_DATA","AI_SEARCH_STREAM_URL","API_NAMES","CHECK_BOT_ELIGIBILITY","MMT_CONVERSATIONS","OCP_SET_CONTEXT","UPDATE_BNA","FULL_SEARCH","AI_SEARCH_STREAM","SEARCH_SUGGESTIONS","SEND_EMAIL","TOPIC_TREE","STEPUP_AUTH_VALIDATION","STEP_UP_RISK_CHECK","STEP_UP_AUTH","SEND_WEBFORM","API_URLS","attachQueryParams","queryParams","param","encodeURIComponent","slice","_csrf","useAppContext","reqContextData","getAPI","useCallback","apiName","options","body","fptiParams","axios","get","response","postAPI","post","pageName","pageProps","useAPI","openAsyncChat","params","mmtResponse","entryPoint","Error","device_type","asyncParams","sessionType","hasReply","isExtended","conversationProfile","topicName","topicRefId","chatBotMessageUsRefIdsMapping","GENERIC","deviceType","page","origin","subject","customerIntent","customer_intent","intentCode","intent_code","protocol","_isEmpty","isConversationActive","serviceError","nodeChat","showAsync","initiateChatBot","show","invokingAsyncChat","poll","asyncChatValidator","callMMTConversationsAPI","data","conversations","initializeAsyncChat","initializeChatBot","nodeChatOnPageValidator","useHelper","generateLinkWithCoBrand","coBrand","isLoggedIn","getPageName","getDisplayName","user","country","JP","lastName","firstName","getUserUiExp","userUiExp","getHomePathByExperience","exp","experience","PERSONAL","BUSINESS","TECHNICAL","useMessage","worldReady","useContext","WorldReadyContext","getMessage","messageId","MessageFormat","format","AfterResponse","complaintsData","configs","getContentText","isUkMarket","complaintsLinkClick","urlClicked","stopPropagation","COMPLAINTS","handleCssfComplaintUrl","cssfCustComplaintsFRMarkets","includes","cssfComplaintMessageUrlFR","cssfComplaintMessageUrl","renderExtraTextsForCountry","countryUpperCase","noOfextraTexts","toString","_get","rel","afterResponseText1BeforeLink","afterResponseText1Link","afterResponseText1AfterLink","afterResponseText2","afterResponseText2Link","cssfUrl","euUrl","resolveComplaintsUrl","toUpperCase","renderExtraTextContentAfterFinalResponse","countriesExtraHyperLinkContentAdded","find","ct","renderExtraHyperLinkContentAfterFinalResponse","isRequired","appCtx","apiData","ukComplaintsPageData","complaintsPageData","locale","useState","errorText","setErrorText","selectedValue","setSelectedValue","isLoginSheetOpen","setIsLoginSheetOpen","isComplaintSheetOpen","setIsComplaintSheetOpen","useChatBot","complaintOptions","useMemo","primaryText","value","COMPLAINT_REASON_CODES","FEEDCOMPLAIN011","FEEDCOMPLAIN012","FEEDCOMPLAIN013","FEEDCOMPLAIN014","FEEDCOMPLAIN019","SUBMIT_COMPLAINT","redirectToComplaintsWebform","complaintReason","location","getComplaintsWebformUrl","chatEligibilityData","chatBotParams","CHAT_ENTRY_POINTS","COMPLAINTS_PAGE_MESSAGE_US","async","PAYPAL_ASSISTANT","event_name","hc_event_info","JSON","stringify","ERROR","error_description","checkChatBotEligibity","sessionStorage","removeItem","COMPLAINT_REASON_CODE","isChatBotExists","pageNames","intentId","intentType","INTENT_TYPE_GENERIC","result","getItem","complaintReasonLabel","closeComplaintSheet","closeLoginSheet","COMPLAINTS_LOGIN_SHEET","renderComplaintsLink","complaintsUrl","complaintsText","productName","iZettleUrl","iZettleText","isZettleDisabled","iZettleComplaintUrl","submitComplaintZettle","complaintText","xoomUrl","xoomText","hyperwalletUrl","hyperwalletText","braintreeUrl","braintreeText","showSubmitComplaintsSheet","renderSubmitComplaint","isOpen","onCloseComplete","hideTitle","footerAlign","label","onChange","dropdownOptionChanged","dropdownMenuClicked","redirectComplaintsPage","currentUri","baseURI","setItem","signInUri","loginBtnClickHandler","AUTHFLOW_PASSWORD_RECOVERY_URL","troubleLogInClickHandler","strong","complaintWithoutLogInClickHandler","SummarySheet","complaintsDataSheetHeaderItemsEntries","isSummarySheetOpen","handleSheetClose","summarySheetData","sheetHeaderData","tableHeaderData","tableRowData","COMPLAINTS_SUMMARY_SHEET","containerClassName","noPadding","mobileFixedHeight","Object","entries","_sortBy","rank","item","align","colSpan","noComplaintsByBusiness","productService","provision","intermediation","noComplaintsOpened","noComplaintsClosed","percentClosedWithin3Days","percentClosedWithin8Weeks","percentUpheld","mainCause","rowHeader","ComplaintsSummary","summaryData","complaintsSummaryData","setIsSummarySheetOpen","headingTitle","disclaimer","summary","here","complaintsSummarySheetData","Alerts","React","countryKey","complaintsEnabledMarkets","isGlobalEnabled","markets","Suspense","fallback","hcLinkClickHandler","COMPLAINTS_PROCESS_DOC_FOR_COUNTRY","countryCode","handleHereClickEvent","superviseDentitiesUrl","Promise","resolve","reject","nodeChatElement","document","getElementById","display","visibility"],"sourceRoot":""}