{"version":3,"sources":["services/exceptions/track-service.ts","context/router/router-context.tsx","modules/app/generics/radio.tsx","services/exceptions/http-response-error.ts","services/exceptions/insured/insured-filename-error.ts","services/exceptions/insured/insured-modified-file-error copy.ts","services/exceptions/insured/invalid-insured-count-error.ts","modules/app/shared/translate.tsx","services/customer-service.ts","modules/app/generics/calendar.tsx","modules/app/generics/formik/calendar-field.tsx","modules/app/routes/routes-config.ts","assets/images/es.svg","services/sale-session-service.ts","modules/app/generics/spinner.tsx","services/http/http-reducer.ts","services/http/use-http.ts","modules/app/shared/notification.tsx","services/intermediary-service.ts","modules/app/generics/select.tsx","utils/select-helper.ts","modules/app/generics/dropdown-menu.tsx","utils/number-mask.ts","modules/app/generics/number-input.tsx","hooks/use-update-effect.ts","services/countries-service.ts","utils/formik-helper.ts","services/business-lines-service.ts","modules/app/generics/chip.tsx","services/models/products-comparative-model.ts","services/cms-service.ts","modules/app/travelnet/travelnet-launcher/travelnet-launcher-step.tsx","modules/app/travelnet/travelnet-launcher/travelnet-launcher-steps.tsx","modules/app/travelnet/travelnet-launcher/travellers-selector.tsx","modules/app/travelnet/travelnet-launcher.tsx","configuration/production.ts","configuration/index.ts","configuration/default.ts","utils/constants.ts","modules/app/funnel/funnel-personalization/requirement-data/country-option.tsx","modules/app/generics/select-multiple.tsx","assets/images/de.svg","assets/images/en.svg","assets/images/fr.svg","assets/images/it.svg","assets/images/pt.svg","assets/images/eu.svg","services/http/http-types.ts","utils/language-helper.ts","modules/app/generics/button.tsx","utils/dates-helper.ts","services/auth/auth-types.ts","services/auth/auth-service.ts","context/auth/auth-provider-reducer.tsx","context/auth/auth-context.tsx","modules/app/generics/icon.tsx","modules/app/routes/app-browser-router.tsx","services/auth/auth-configuration.ts","assets/images/logo.svg","hooks/use-scroll.ts","modules/app/shared/language-element/language-element.tsx","modules/app/shared/language-selector/language-list.tsx","modules/app/shared/private-header/user-menu.tsx","modules/app/shared/private-header/header-item.tsx","modules/app/shared/private-header.tsx","modules/app/shared/footer.tsx","modules/app/app-layout.tsx","i18n.ts","modules/app.tsx","index.tsx","context/user/user-provider-reducer.tsx","context/user/user-context.tsx","services/http/interceptors.ts","services/http/index.ts","utils/url-helper.ts","services/exceptions/index.ts","modules/app/generics/with-input-label.tsx","modules/app/app-context.tsx","hooks/use-onclick-outside.ts","services/exceptions/customer/policy-intermediary-error.ts","services/exceptions/customer/policy-not-found.ts","services/exceptions/customer/policy-user-exists-error.ts","services/exceptions/customer/user-already-exists-with-dni.ts","utils/number-helper.ts"],"names":["LogLevel","trackException","error","track","event","logLevel","Error","message","stack","withBaseHttpClient","httpClient","post","loadExceptionTracking","window","addEventListener","ev","obj","Object","prototype","toString","call","location","href","lineno","colno","RouterContext","React","createContext","RouterProvider","children","callbackRef","useRef","useState","showPrompt","setShowPrompt","handleNavigation","ok","current","Provider","value","cancelNavigation","continueNavigation","setUserConfirmationCallback","callback","useRouterContext","Consumer","useContext","Radio","memo","className","id","name","checked","label","onChange","classNames","type","HttpResponseError","constructor","status","data","super","this","InsuredFilenameError","InsuredModifiedFileError","InvalidInsuredCountError","Translate","i18nKey","options","t","useTranslation","createElement","Fragment","addPolicy","addPolicyRequest","a","withHttpClient","NOT_FOUND","PolicyNotFoundError","CONFLICT","PolicyUserExistsError","PolicyIntermediaryError","removePolicy","policyNumber","delete","getCustomerData","get","getHasCustomerData","updateCustomer","customer","put","UserAlreadyExistsWithDniError","createCustomer","getDocumentTypes","cache","HTTP_CACHE_MASTER_DATA","getFormAdresses","getRoadTypes","getCountryDiallingCodes","language","updateCustomerAddress","address","dateMask","Calendar","props","placeholderText","selected","hasError","disabled","showMonthDropdown","showYearDropdown","minDate","maxDate","currentDayIsMaxDate","yearDropdownItemNumber","startDate","endDate","autoComplete","dateToIsoDate","selectedDate","setSelectedDate","startDateUtc","useMemo","endDateUtc","minDateUtc","maxDateUtc","i18n","handleOnChange","useCallback","date","utcDate","dateFormat","isSpanishLang","isBasqueLang","useEffect","locale","es","dateFormatCalendar","dropdownMode","dayClassName","calendarClassName","toLowerCase","customInput","mask","guide","Date","preventOpenOnFocus","popperModifiers","preventOverflow","enabled","escapeWithReference","boundariesElement","CalendarField","onBlur","restProps","handleChange","form","setFieldTouched","setFieldValue","handleBlur","field","restField","undefined","CalendarFieldWithLabel","withInputLabel","size","routesConfig","oidc","signinCallback","silentRenew","login","logout","funnel","root","home","buy","buyWithParams","buyProductIntermediary","buyProductIntermediaryParams","comparative","payment","paymentConfirm","paymentSuccess","personalization","styleguide","customerArea","policies","policyDetail","personalData","travelnet","productsWithParams","products","policyDetails","economicData","agencies","landing","landingWithParams","module","exports","initSaleSessionRequirements","request","initSaleSessionProduct","putSaleSessionProduct","getProductsComparative","saleSessionId","postDiscountRate","deleteDiscountRate","getPaymentMethods","getAdditionalProductOptions","getAdditionalConditions","getAgents","processInsuredFile","bodyFormData","FormData","set","file","BAD_REQUEST","PRECONDITION_FAILED","InvalidInsuredCountException","sendInsuredsFile","postVehicles","postInsureds","postIntermediaryData","postPolicyHolder","postEasyRentData","postDataSubmit","postRequirements","responses","postPaymentDirectDebit","postPaymentPaypal","postPaymentPaypalConfirm","postPaymentCash","postPaymentTpv","postPaymentTpvConfirm","getProductDocuments","getProductInfo","getWellcomePackBundle","responseType","getDocumentsBundle","getGeneralCondition","productId","addPolicies","addCustomerData","getQuestionaryAdditionalRules","postSendBudgetEmail","getRecurrentTextPayment","Spinner","showFullScreen","viewBox","cx","cy","r","fill","strokeWidth","strokeMiterlimit","HttpReducer","state","action","REQUEST_START","CallStatus","Loading","REQUEST_ERROR","payload","REQUEST_END","Complete","dispatch","requestData","transformResponse","response","useHttp","throwExceptionOnError","useReducer","NotCall","useAxios","NotificationKind","structureClass","Notification","onDismiss","kind","msg","autoDismiss","autoDismissMs","dismissNotification","timeout","setTimeout","clearTimeout","onClick","round","icon","getIntermediaryPolicies","filters","getIntermediaryPolicy","numPolicy","getIntermediaryPoliciesExcelReport","getIntermediaryEconomicData","getIntermediaryEconomicDataExcelReport","getWinnersClubAccess","sendIntermediaryWelcomPackEmail","getUserLang","getIntermediaryWellcomePackBundle","policyId","getAgencyInfo","getValidateAgencyToken","getIntermediaryProducts","entityId","getAgencyAgent","getIntermediariesAffiliation","getIntermediariesLegal","MenuList","maxHeight","maxWidth","getValue","initialOffset","indexOf","itemCount","length","height","itemsHeight","isNaN","width","itemSize","initialScrollOffset","index","style","SelectInput","InputComponent","components","Input","WindowSelect","forwardRef","ref","placeholder","orderBy","getOptionLabel","getOptionValue","isDisabled","isLoading","disableAutoOpenMenu","isClearable","innerRef","isWindowed","groupedOptionsType","reduce","result","group","calcOptionsLength","orderedOptions","getOrderByValue","option","sort","b","aValue","bValue","DropdownIndicator","IndicatorSeparator","noOptionsMessage","placeholderValue","focusInput","select","blurInput","onValueChange","useImperativeHandle","focus","inputId","classNamePrefix","isSearchable","menuIsOpen","openMenuOnFocus","openMenuOnClick","WindowSelectInputLabel","DropdownMenu","renderToggle","classes","isOpen","isShow","setShow","menuRef","toggleMenuRef","toggleDropdownMenu","useOnClickOutside","toggleClassName","menuClassName","isFunction","minusRegExp","nonDigitsRegExp","digitRegExp","convertToMask","strNumber","split","map","char","test","typeConfig","number","allowDecimal","includeThousandsSeparator","allowNegative","integer","amount","decimalLimit","NumberInput","config","internalValue","setInternalValue","maskConfig","decimalSymbol","getDecimalSeparator","thousandsSeparatorSymbol","getThousandSeparator","prefix","suffix","getFormattedNumberBySeparators","numberMask","requireDecimal","allowLeadingZeroes","integerLimit","prefixLength","suffixLength","thousandsSeparatorSymbolLength","rawValue","rawValueLength","concat","isNegative","substr","indexOfLastDecimal","lastIndexOf","hasDecimal","fraction","slice","fractionValue","replace","thousandsSeparatorRegex","numberOfThousandSeparators","match","RegExp","n","addThousandsSeparator","push","createNumberMask","inputClassNames","handleNumericValueChange","previousValue","stringValue","target","numericValue","getNumber","getNumericValue","isDefaultPrevented","useUpdateEffect","effect","deps","firstUpdate","getCountries","getProvinces","countryId","hasMetaFieldError","formikMetaFieldProps","Boolean","touched","isValidForm","formikHelpers","showErrors","validateForm","isValid","keys","handleSubmit","submitForm","getBusinessLines","getProdutsByBusinessLine","code","Chip","onClose","ModalityTypes","getCancellationOptions","TravelnetLauncherStep","TravelnetLauncherStepsWithRef","isSubmitting","notificationErrorMessage","onNotificationErrorDismiss","onExpand","onStepChange","onSubmit","isExpanded","setExpanded","currentStepIndex","setCurrentStepIndex","maxStepIndex","steps","Children","c","isStepEnabled","stepIndex","isLastStep","nextStep","i","Math","max","expanded","handleStepClick","title","iconName","key","preventDefault","TravellersSelector","maxValue","autoFocus","count","setCount","newValue","initialFormValues","countries","travellersBelow74Years","travellersOver74Years","launcherModality","ASIS","TravelnetLauncher","onlyTitle","history","useHistory","formRef","cancellationOptions","fetchCancellationOptions","saleSessionRequirements","fetchInitSaleSessionRequirements","fetchCountries","idLang","showNotificationError","setShowNotificationError","cancellationOptionsDescription","setCancellationOptionsDescription","stepsRef","onLauncherExpand","validationSchema","yup","shape","min","required","departureDate","nullable","when","is","then","arrivalDate","isComplete","descriptions","description","numProducts","values","TagManager","dataLayer","category","agrupacion_paises","join","total_dias","abs","getTime","total_pasajeros","modalidad","sessionStorage","setItem","errors","setErrors","initialValues","numTravellers","numCountries","isInitializingOrLoading","isOptionDisabled","ist","alerta","formatOptionLabel","selectable","mensaje","place","clickable","delayHide","html","getFormattedDate","monthsShown","inline","selectsStart","addToCurrentDate","days","months","selectsEnd","addToDate","years","ASCA","dangerouslySetInnerHTML","__html","CANC","stsAuthority","REACT_APP_OIDC_STS_AUTHORITY","clientId","REACT_APP_OIDC_CLIENT_ID","clientRoot","REACT_APP_OIDC_CLIENT_ROOT","clientScope","REACT_APP_OIDC_CLIENT_SCOPE","languages","defaultLanguage","namespaces","defaultNamespace","server","serverUrl","REACT_APP_SERVER_URL","apiUrl","REACT_APP_SERVER_API_URL","CMS","REACT_APP_SERVER_CMS","gtm","REACT_APP_GTM_ID","debug","socialItems","REACT_APP_SOCIAL_FACEBOOK","iconTitle","REACT_APP_SOCIAL_TWITTER","REACT_APP_SOCIAL_YOUTUBE","REACT_APP_SOCIAL_INSTAGRAM","REACT_APP_SOCIAL_LINKEDIN","publicPortalItems","REACT_APP_PUBLIC_PORTAL_HELP_LINK","titleKey","section","REACT_APP_PUBLIC_PORTAL_ABOUT_US_LINK","REACT_APP_PUBLIC_PORTAL_PRODUCTS_LINK","REACT_APP_PUBLIC_PORTAL_CONTACT_LINK","REACT_APP_PUBLIC_PORTAL_BLOG_LINK","REACT_APP_PUBLIC_PORTAL_PRESS_LINK","REACT_APP_PUBLIC_PORTAL_LEGAL_INFO_LINK","REACT_APP_PUBLIC_PORTAL_TERMS_LINK","externalLinks","REACT_APP_EXTERNAL_LINK_TRAVELNET","eclaims","REACT_APP_EXTERNAL_LINK_ECLAIMS","productionConfig","environmentConfig","configuration","merge","VALIDATIONS","SPAIN","PORTUGAL","LANGUAGE","ES","EN","EU","INITIAL_PAGE","ITEMS_PER_PAGE","PAGINATION_OVERFLOW_VALUE","CUSTOMER_HEADER_ID","INTERMEDIARY_HEADER_ID","maxAge","AGENT_DATA_KEY","BUDGET_DOCUMENT_ID","getImages","lang","de","en","fr","it","pt","eu","replaceTextWithLink","text","searchText","url","part","CountryOption","ReactTooltip","rebuild","hide","data-tip","data-for","SelectMultipleWithRef","selectedOption","setSelectedOption","setValues","selectRef","onSelectChange","checkOptionDisabled","onRemoveOption","filter","v","isAddButtonDisabled","onAddSelectedOption","onKeyDown","e","keyCode","optionsToShow","o","some","backspaceRemovesValue","SelectMultipleInputLabel","isNotCall","isError","getLanguage","i18next","localStorage","i18nextLng","withTranslate","fieldName","row","getItem","setUserLang","changeLanguage","reload","setAllowedAgencyLang","json","JSON","stringify","getAllowedAgencyLang","id_idioma","permite_traduccion","parse","getLanguageDescriptive","ButtonKind","ButtonSize","kindStyle","primary","secondary","tertiary","quaternary","quinary","ghost","sizeStyle","default","l","m","s","xs","xxs","shapeStyle","iconPosition","ButtonRef","iconLeft","wide","toLocaleDateString","year","month","day","getTimezoneOffset","UTC","getFullYear","getUTCMonth","getUTCDate","isDate18orMoreYearsOld","getMonth","getDate","currentDate1MonthLess","compareDate1YearLess","from","to","params","getDaysBetweenDates","date1","date2","firstDate","secondDate","getAge","diff_ms","now","age_dt","getUTCFullYear","getAuthorizationHeaderValue","user","token_type","access_token","getUserRole","role","profile","mapUser","email","username","isCustomerArea","isIntermediary","intermediariesLegalList","initializeIntermediariesLegalList","isLegal","includes","Number","AuthServiceFactory","userManagerSettings","userManager","UserManager","Log","logger","console","level","INFO","ERROR","signInRedirect","showRegisterArea","loginHeaderId","redirectToRegisterPage","revokeAccessToken","clearStaleState","signinRedirect","extraQueryParams","signInSilent","signinSilent","signInSilentCallback","signinSilentCallback","authenticateUser","getUser","authenticateUserCallback","signinRedirectCallback","signOutUser","signoutRedirect","tryLoadUser","expired","events","load","freeze","registerEvents","onUserLoaded","onUserUnloaded","onError","onAccessTokenExpiring","onAccessTokenExpired","addUserLoaded","addSilentRenewError","addUserUnloaded","addUserSignedOut","addAccessTokenExpiring","addAccessTokenExpired","unregisterEvents","removeUserLoaded","removeSilentRenewError","removeUserUnloaded","removeUserSignedOut","removeAccessTokenExpiring","removeAccessTokenExpired","AuthProviderReducer","AuthContext","AuthContextActions","AuthProvider","authConfiguration","authService","redirect","removeItem","goLoginPage","showRegistryArea","previousPath","pathname","goLogoutPage","redirectUri","completeLogin","completeSilentRenewToken","setAuthToken","initialize","loadUser","register","actionsValue","useAuthContext","useAuthContextActions","IconSize","iconSize","xm","xxm","xl","xxl","xxxl","Icon","xlinkHref","AppBrowserRouter","getUserConfirmation","_","authority","client_id","redirect_uri","silent_redirect_uri","post_logout_redirect_uri","response_type","scope","automaticSilentRenew","userStore","WebStorageStateStore","store","_extends","assign","arguments","source","hasOwnProperty","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","d","_ref3","rx","ry","SvgLogo","_ref","svgRef","ForwardRef","getScroll","scrollX","scrollY","LanguageElement","data-testid","data-qa","handleSelectLanguage","LanguageList","displayControl","display","displayLanguage","setDisplayLanguage","setidLang","setidLanguage","dataLanguage","src","item","Language","LanguageSelected","getLetterLogin","charAt","toUpperCase","UserMenu","userData","useUserContext","fullName","surname","shortName","isMenuOpen","data-cy","intermediary","toggleDropdown","HeaderItem","link","external","openInNewTab","onClickDataLayer","sentence","normalize","rel","activeClassName","linkConfig","getExternalUrl","requireBusinessLines","customerarea","requireHasData","HeaderPrivateZone","showTravelnetLauncher","saleInProgress","secondaryIconPath","showUserMenu","showLinks","isMobileMenuShow","setMobileMenuShow","isLauncherExpanded","setLauncherExpanded","onlyOnScrollEnd","windowScroll","setWindowScroll","scrollId","handleScroll","capture","passive","removeEventListener","useWindowScroll","hasUserData","hasBusinessLines","getHomeUrl","useAppContextActions","useLocation","scrollAnimation","headerType","getHeaderType","homeUrl","objectElement","isExternal","Footer","showPublicPortalItems","formattedUrl","AppLayout","agentData","useAppContext","isTravelnetLauncherInHeader","productIconPath","iconPath","use","LanguageDetector","HttpApi","initReactI18next","init","backend","loadPath","allowMultiLoading","queryStringParams","detection","htmlTag","document","documentElement","whitelist","fallbackLng","ns","defaultNS","interpolation","escapeValue","formatSeparator","react","wait","SigninCallback","lazy","SilentRenew","Login","Logout","AppPage","gtmId","App","fallback","exact","path","component","render","ReactDOM","getElementById","UserProviderReducer","UserContext","UserContextActions","UserProvider","hasCustomerData","fetchHasCustomerData","userInfo","fetchUserInfo","businessLines","fetchBusinessLines","isAgent","loadAgentData","visible","firstSurname","dni","setUserHasData","setUserData","refreshUserData","setAgentData","useUserContextActions","errorResponse","responseURL","forageStore","localforage","createInstance","driver","INDEXEDDB","LOCALSTORAGE","httpClientCache","setupCache","authToken","userToken","createHttpClient","instance","axios","create","getAuthToken","interceptors","token","headers","Authorization","adapter","baseHttpClient","Pragma","baseURL","apiHttpClient","relativeUrl","host","sectionKey","find","getQueryParam","search","URLSearchParams","Component","defaultIcon","customClassName","labelPlacement","mandatoryLabel","readOnly","renderReadOnly","renderLabel","infoMessage","useField","meta","inputLabelIcon","getMandatoryLabel","containerClassNames","htmlFor","AppContextActions","AppContext","AppProvider","setProductIconPath","isSaleRoute","agencyName","encodeURIComponent","navigateToHome","open","isTargetInsideRef","eventTarget","contains","handler","menuToggleRef","isActive","handlerRef","listener","getFormattedCurrency","currency","formattedValue","toLocaleString","minimumFractionDigits","parts","integerPart","decimalPart","getFormattedNumber","maximumFractionDigits","decimalSeparator","thousandsSeparator","languageDecimalSeparator","languageThousandsSeparator","formattedNumber","endsWith","cleanNumberValue","numberValue","parseFloat"],"mappings":"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","file":"static/js/main.bbeb85d5.chunk.js","sourcesContent":["import { withBaseHttpClient } from '@services/http';\nimport { AxiosResponse } from 'axios';\n\nenum LogLevel {\n Critical = 5,\n Debug = 1,\n Error = 4,\n Information = 2,\n None = 6,\n Trace = 0,\n Warning = 3\n}\n\ntype LoggingEvent = {\n logLevel: LogLevel;\n message?: string;\n stack?: string;\n};\n\nconst track = (event: LoggingEvent): Promise> =>\n withBaseHttpClient(httpClient => httpClient.post('/track', event));\n\nconst trackException = (error: Error): Promise> =>\n track({\n logLevel: LogLevel.Error,\n message: error.message,\n stack: error.stack\n });\n\nconst isError = (obj: unknown): boolean => Object.prototype.toString.call(obj) === '[object Error]';\n\nconst loadExceptionTracking = () => {\n window.addEventListener('error', ev => {\n if (!isError(ev.error)) {\n const stack = `window.onerror@${location.href}:${ev.lineno}:${ev.colno || 0}`;\n const error = new Error(ev.error.message);\n error.stack = stack;\n\n trackException(error);\n } else {\n trackException(ev.error);\n }\n });\n};\n\nexport { trackException, loadExceptionTracking };\n","import React, { ReactNode, useRef, useState, useContext } from 'react';\n\nexport type UserConfirmationCallback = (ok: boolean) => void;\n\nexport type RouterContextProps = {\n showPrompt: boolean;\n cancelNavigation?: () => void;\n continueNavigation?: () => void;\n setUserConfirmationCallback?: (callback: UserConfirmationCallback) => void;\n};\n\nconst RouterContext = React.createContext>({}) as React.Context<\n RouterContextProps\n>;\n\ntype RouterProviderProps = {\n children: ReactNode;\n};\n\nconst RouterProvider: React.FC = ({ children }: RouterProviderProps) => {\n const callbackRef = useRef();\n const [showPrompt, setShowPrompt] = useState(false);\n\n const handleNavigation = (ok: boolean): void => {\n callbackRef.current?.(ok);\n setShowPrompt(false);\n };\n\n const setUserConfirmationCallback = (callback: UserConfirmationCallback): void => {\n callbackRef.current = callback;\n setShowPrompt(true);\n };\n\n return (\n handleNavigation(false),\n continueNavigation: () => handleNavigation(true),\n setUserConfirmationCallback\n }}>\n {children}\n \n );\n};\n\nconst RouterConsumer: React.ExoticComponent> =\n RouterContext.Consumer;\n\nconst useRouterContext = () => useContext(RouterContext);\n\nexport { RouterProvider, RouterConsumer, useRouterContext };\n","import React from 'react';\nimport classNames from 'classnames';\n\ntype RadioProps = {\n className?: string;\n id?: string;\n value: string;\n name: string;\n label: string;\n checked: boolean;\n onChange?: (event: React.ChangeEvent) => void;\n};\n\nexport const Radio: React.FC = React.memo(\n ({ className, id, value, name, checked, label, onChange }: RadioProps) => (\n \n )\n);\n","class HttpResponseError extends Error {\n constructor(public status: number, public data: T, public message: string, stack?: string) {\n super(message);\n this.stack = stack;\n }\n}\n\nexport { HttpResponseError };\n","class InsuredFilenameError extends Error {\n constructor() {\n super();\n }\n}\n\nexport { InsuredFilenameError };\n","class InsuredModifiedFileError extends Error {\n constructor() {\n super();\n }\n}\n\nexport { InsuredModifiedFileError };\n","class InvalidInsuredCountError extends Error {\n constructor() {\n super();\n }\n}\n\nexport { InvalidInsuredCountError };\n","import React, { Fragment } from 'react';\nimport { useTranslation } from 'react-i18next';\n\ntype TranslateProps = {\n i18nKey: string;\n options?: T;\n};\n\nconst Translate = ({ i18nKey, options }: TranslateProps) => {\n const { t } = useTranslation();\n return React.createElement(Fragment, null, t(i18nKey, options));\n};\n\nexport { Translate };\n","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from './http';\nimport { HttpResponseError } from './exceptions';\nimport {\n Customer,\n CustomerKeyValue,\n CountryDiallingCode,\n CustomerAddress\n} from '@services/models/customer-model';\nimport { PolicySummary } from '@services/models/policies-model';\nimport { NOT_FOUND, CONFLICT } from 'http-status-codes';\nimport {\n PolicyNotFoundError,\n PolicyUserExistsError,\n PolicyIntermediaryError,\n UserAlreadyExistsWithDniError\n} from '@services/exceptions/customer';\nimport { HTTP_CACHE_MASTER_DATA } from '@utils/constants';\n\nexport type AddPolicyRequest = {\n numPolicy?: number;\n numDocument: string;\n amount?: number;\n};\n\nconst addPolicy = async (\n addPolicyRequest?: AddPolicyRequest\n): Promise> => {\n try {\n return await withHttpClient(httpClient =>\n httpClient.post('/customers/policies', addPolicyRequest)\n );\n } catch (err) {\n if (err instanceof HttpResponseError) {\n if (err.status === NOT_FOUND) {\n throw new PolicyNotFoundError();\n } else if (err.status === CONFLICT) {\n if (err.data.type === 'policynotfound') {\n throw new PolicyUserExistsError();\n } else if (err.data.type === 'intermediarypolicyerror') {\n throw new PolicyIntermediaryError();\n } else {\n throw err;\n }\n }\n }\n throw err;\n }\n};\n\nconst removePolicy = (policyNumber?: number): Promise> =>\n withHttpClient(httpClient => httpClient.delete(`/customers/policies/${policyNumber}`));\n\nconst getCustomerData = (): Promise> =>\n withHttpClient(httpClient => httpClient.get('/customers'));\n\nconst getHasCustomerData = (): Promise> =>\n withHttpClient(httpClient => httpClient.get('/customers/hasdata'));\n\nconst updateCustomer = async (customer?: Customer): Promise> => {\n try {\n return await withHttpClient(httpClient => httpClient.put('/customers', customer));\n } catch (err) {\n if (err instanceof HttpResponseError) {\n if (err.status === CONFLICT) {\n throw new UserAlreadyExistsWithDniError();\n }\n }\n throw err;\n }\n};\n\nconst createCustomer = async (customer?: Customer): Promise> => {\n try {\n return await withHttpClient(httpClient =>\n httpClient.post('/customers', customer)\n );\n } catch (err) {\n if (err instanceof HttpResponseError) {\n if (err.status === CONFLICT) {\n throw new UserAlreadyExistsWithDniError();\n }\n }\n throw err;\n }\n};\n\nconst getDocumentTypes = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get('/customers/documentTypes', {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nconst getFormAdresses = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get('/customers/formAddresses', {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nconst getRoadTypes = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get('/customers/roadTypes', {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nconst getCountryDiallingCodes = (\n language?: string\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`/customers/countryDiallingCodes/${language}`, {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nconst updateCustomerAddress = (\n address?: CustomerAddress\n): Promise> =>\n withHttpClient(httpClient => httpClient.post('/customers/address', address));\n\nexport {\n getCustomerData,\n getHasCustomerData,\n updateCustomer,\n createCustomer,\n getDocumentTypes,\n getFormAdresses,\n getRoadTypes,\n getCountryDiallingCodes,\n updateCustomerAddress,\n addPolicy,\n removePolicy\n};\n","import React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport es from 'date-fns/locale/es';\nimport DatePicker, { ReactDatePickerProps } from 'react-datepicker';\nimport { isSpanishLang, isBasqueLang } from '@utils/language-helper';\nimport { dateToIsoDate } from '@utils/dates-helper';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport classNames from 'classnames';\nimport MaskedInput from 'react-text-mask';\n\nconst dateMask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\n\nexport type CalendarProps = {\n onChange?: (value: Date | null) => void;\n hasError?: boolean;\n currentDayIsMaxDate?: boolean;\n} & Omit;\n\nconst Calendar = (props: CalendarProps) => {\n const {\n placeholderText,\n onChange,\n selected,\n hasError,\n disabled,\n showMonthDropdown = false,\n showYearDropdown = true,\n name,\n minDate,\n maxDate,\n currentDayIsMaxDate = true,\n yearDropdownItemNumber,\n startDate,\n endDate,\n autoComplete = 'off'\n } = props;\n const [selectedDate, setSelectedDate] = useState(selected ? dateToIsoDate(selected) : null);\n const startDateUtc = useMemo(() => startDate && dateToIsoDate(startDate), [startDate]);\n const endDateUtc = useMemo(() => endDate && dateToIsoDate(endDate), [endDate]);\n const minDateUtc = useMemo(() => minDate && dateToIsoDate(minDate), [minDate]);\n const maxDateUtc = useMemo(() => maxDate && dateToIsoDate(maxDate), [maxDate]);\n const {\n i18n: { language }\n } = useTranslation();\n\n const handleOnChange = useCallback(\n (date: Date | null) => {\n const utcDate = date ? dateToIsoDate(date) : null;\n setSelectedDate(utcDate);\n onChange?.(utcDate ?? null);\n },\n [onChange]\n );\n\n const dateFormat =\n isSpanishLang(language) || isBasqueLang(language) ? 'dd/MM/yyyy' : 'MM/dd/yyyy';\n\n useEffect(() => {\n setSelectedDate(selected ? dateToIsoDate(selected) : null);\n }, [selected]);\n\n return (\n \n startDateUtc && endDateUtc && (date <= startDateUtc || date >= endDateUtc)\n ? 'react-datepicker__day--outside-range'\n : null\n }\n name={name}\n disabled={disabled}\n onChange={handleOnChange}\n calendarClassName=\"ea-calendar\"\n autoComplete={autoComplete}\n placeholderText={placeholderText || dateFormat?.toLowerCase()}\n customInput={}\n startDate={startDateUtc}\n endDate={endDateUtc}\n minDate={minDateUtc}\n maxDate={currentDayIsMaxDate ? new Date() : maxDateUtc}\n preventOpenOnFocus\n popperModifiers={{\n preventOverflow: {\n enabled: true,\n escapeWithReference: false,\n boundariesElement: 'viewport'\n }\n }}\n />\n );\n};\n\nexport { Calendar };\n","import React, { useCallback } from 'react';\nimport { CalendarProps, Calendar } from '@generics/calendar';\nimport { FieldProps, FieldInputProps, FormikProps, Field } from 'formik';\nimport { withInputLabel } from '@generics/with-input-label';\n\ntype CalendarFieldProps = { name: string } & Omit;\n\nconst CalendarField = ({ name, onChange, onBlur, ...restProps }: CalendarFieldProps) => {\n const handleChange = useCallback(\n (form: FormikProps) => (value: Date | null) => {\n form.setFieldTouched(name, true);\n form.setFieldValue(name, value, true);\n onChange?.(value);\n },\n [onChange, name]\n );\n\n const handleBlur = useCallback(\n (field: FieldInputProps) => (\n ev: React.FocusEvent\n ) => {\n field.onBlur(ev);\n onBlur?.(ev);\n },\n [onBlur]\n );\n\n return (\n \n {({ field, form }: FieldProps) => {\n const { value, ...restField } = field;\n return (\n \n );\n }}\n \n );\n};\n\nconst CalendarFieldWithLabel = withInputLabel(CalendarField, {\n name: 'calendar',\n size: 's'\n});\n\nexport { CalendarFieldWithLabel, CalendarField };\n","const routesConfig = {\n oidc: {\n signinCallback: '/signin-callback',\n silentRenew: '/silent-renew',\n login: '/login',\n logout: '/logout'\n },\n funnel: {\n root: '/funnel',\n home: '/funnel/home',\n buy: '/funnel/buy',\n buyWithParams: '/funnel/buy/:saleSessionId/:productId?',\n buyProductIntermediary: '/funnel/buy-product/:productId/:entityId/:agentId?',\n buyProductIntermediaryParams:\n '/funnel/buy-product-params/:productId/:entityId/:startDate?/:finishDate?',\n comparative: '/funnel/comparative',\n data: '/funnel/data',\n payment: '/funnel/payment',\n paymentConfirm: '/funnel/payment/:paymentMethod/:saleSessionId/:status',\n paymentSuccess: '/funnel/success',\n personalization: '/funnel/personalization',\n styleguide: '/style-guide'\n },\n customerArea: {\n root: '/dashboard',\n policies: '/dashboard/policies',\n policyDetail: '/dashboard/policies/details/:policyNumber',\n personalData: '/dashboard/me'\n },\n travelnet: {\n root: '/travelnet',\n home: '/travelnet/home',\n productsWithParams: '/travelnet/products/:businessLine?',\n products: '/travelnet/products',\n policies: '/travelnet/policies',\n policyDetails: '/travelnet/policies/details/:policyNumber',\n economicData: '/travelnet/economic-data'\n },\n agencies: {\n root: '/agencies',\n landing: '/agencies/landing',\n landingWithParams: '/agencies/landing/:entityId/:agencyName?/:token?',\n home: '/agencies/home'\n }\n};\n\nexport { routesConfig };\n","module.exports = __webpack_public_path__ + \"static/media/es.d0a7948c.svg\";","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from '@services/http';\nimport { ModalityTypes, ProductsComparative } from '@services/models/products-comparative-model';\nimport { PaymentMethod, AdditionalOption, ProductDocument } from '@services/models/product-model';\nimport { Condition } from '@services/models/additional-conditions-model';\nimport { Agent } from '@services/models/agents-model';\nimport { BAD_REQUEST, PRECONDITION_FAILED } from 'http-status-codes';\nimport { HttpResponseError } from '@services/exceptions/http-response-error';\nimport {\n InvalidInsuredCountException,\n InsuredFilenameError,\n InsuredModifiedFileError\n} from '@services/exceptions/insured';\nimport { Insured } from '@services/models/insured-model';\nimport { QuestionBase } from '@services/models/questionary-model';\nimport {\n ProductCode,\n ProductInfo,\n VehicleData,\n AdditionalQuestionRule,\n Address\n} from '@services/models/sale-session-model';\nimport { GetProductGeneralConditionResponse, GetDescriptionRequest } from './product-service';\n\ntype SaleSessionBaseRequest = {\n saleSessionId?: string;\n language?: string;\n};\n\nexport type InitSaleSessionRequirementsRequest = {\n countries: string[];\n departureDate: Date;\n arrivalDate: Date;\n travellersOver74Years: number;\n travellersBelow74Years: number;\n launcherModality: ModalityTypes;\n intermediary?: number;\n};\n\nexport type InitSaleSessionRequirementsResponse = {\n saleSessionId: string;\n numProducts: number;\n};\n\nexport type InitSaleSessionProductRequest = {\n productId: string;\n entityId?: string;\n agentId?: number;\n};\n\nexport type InitSaleSessionProductResponse = {\n saleSessionId: string;\n productId: string;\n};\n\nexport type SetSaleSessionProductRequest = {\n saleSessionId: string;\n productId: string;\n orderId?: number;\n toShowId?: number;\n optionId?: string;\n};\n\nexport type SetDiscountRequest = {\n discountCode: string;\n} & SaleSessionBaseRequest;\n\nexport type SetDiscountRateResponse = {\n discountRate: number;\n productPrice: number;\n discountAmount: number;\n};\nexport type GetPaymentMethodsResponse = {\n paymentMethodsCollection: PaymentMethod[];\n};\n\nexport type GetAdditionalProductOptionsResponse = {\n additionalOptions: AdditionalOption[];\n};\n\nexport type GetAdditionalConditionsResponse = {\n conditions: Condition[];\n};\n\nexport type GetAgentsResponse = {\n agents: Agent[];\n};\n\nexport type ProcessInsuredFileRequest = {\n file?: File;\n} & SaleSessionBaseRequest;\n\nexport type ProcessInsuredsFileResponse = {\n insuredCollection: Insured[];\n};\n\nexport type PostVehiclesRequest = {\n vehicles?: VehicleData[];\n} & SaleSessionBaseRequest;\n\nexport type PostInsuredsRequest = {\n insureds?: InsuredDataDto[];\n} & SaleSessionBaseRequest;\n\nexport type InsuredDataDto = {\n name?: string;\n firstSurname?: string;\n secondSurname?: string;\n dateOfBirth?: Date | null;\n documentNumber?: string;\n documentType?: number | string;\n documentTypeId?: number;\n};\n\nexport type AddIntermediaryDataRequest = {\n externalReferenceId?: string;\n agentId?: number;\n} & SaleSessionBaseRequest;\n\nexport type PostPolicyHolderRequest = {\n companyName?: string;\n\n name?: string;\n firstSurname?: string;\n secondSurname?: string;\n dateOfBirth?: Date | null;\n\n documentType?: number;\n documentNumber?: string;\n address?: Address;\n countryDiallingCode?: number;\n phoneNumber?: string;\n email?: string;\n sms?: boolean;\n iberiaPlusCardNumber?: string;\n} & SaleSessionBaseRequest;\n\nexport type AddEasyRentDataRequest = {\n address?: Address;\n} & SaleSessionBaseRequest;\n\nexport type PostSubmitDataRequest = {\n acceptCommercialInfo?: boolean;\n} & SaleSessionBaseRequest;\n\nexport type SetRequirementsRequest = {\n responses: QuestionBase[];\n} & SaleSessionBaseRequest;\n\nexport type SetRequirementsResponse = {\n saleId?: number;\n countryGroup?: string;\n entityId?: string;\n} & ProductCode;\n\nexport type DirectDebitRequest = {\n name?: string;\n surnames?: string;\n ibanCode?: string;\n authorization?: boolean;\n} & SaleSessionBaseRequest;\n\nexport type DirectDebitResponse = {\n policyId: number;\n};\n\nexport type PaypalPaymentRequest = {\n confirmUrl?: string;\n cancelUrl?: string;\n} & SaleSessionBaseRequest;\n\nexport type PaypalPaymentResponse = {\n paymentUrl: string;\n};\n\nexport type PaypalConfirmRequest = {\n token: string;\n} & SaleSessionBaseRequest;\n\nexport type PaypalConfirmResponse = {\n policyId: number;\n};\n\nexport type CashPaypmentResponse = {\n policyId: number;\n};\n\nexport type TpvPaymentRequest = {\n confirmUrl?: string;\n cancelUrl?: string;\n} & SaleSessionBaseRequest;\n\nexport type TpvPaymentResponse = {\n tpvUrl: string;\n ds_SignatureVersion: string;\n ds_MerchantParameters: string;\n ds_Signature: string;\n};\n\nexport type TpvConfirmRequest = {\n dsSignature: string;\n dsMerchantParameters: string;\n dsSignatureVersion: string;\n} & SaleSessionBaseRequest;\n\nexport type TpvConfirmResponse = {\n policyId: number;\n};\n\nexport type GetProductInfoResponse = {\n productInfo: ProductInfo;\n};\n\nexport type SendBudgetEmailRequest = {\n email?: string;\n} & SaleSessionBaseRequest;\n\nexport type OnlyLanguageRequest = {\n language?: string;\n};\n\nconst initSaleSessionRequirements = async (\n request?: InitSaleSessionRequirementsRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.post(\n '/salesession/initialize/requirements',\n request\n )\n );\n\nconst initSaleSessionProduct = async (\n request?: InitSaleSessionProductRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.post('/salesession/initialize/product', request)\n );\n\nconst putSaleSessionProduct = async (\n request?: SetSaleSessionProductRequest\n): Promise> =>\n await withHttpClient(httpClient => httpClient.post('/salesession/product', request));\n\nconst getProductsComparative = async (\n request?: SaleSessionBaseRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/productsComparative/${request?.language}`\n )\n );\n\nconst postDiscountRate = async (\n request?: SetDiscountRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.post('salesession/discounts', request)\n );\n\nconst deleteDiscountRate = async (request?: SaleSessionBaseRequest): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.delete('salesession/discounts', {\n data: request\n })\n );\n\nconst getPaymentMethods = async (\n request?: SaleSessionBaseRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/paymentMethods/${request?.language}`\n )\n );\n\nconst getAdditionalProductOptions = async (\n request?: SaleSessionBaseRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/additionalOptions/${request?.language}`\n )\n );\n\nconst getAdditionalConditions = (\n request?: SaleSessionBaseRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/additionalConditions/${request?.language}`\n )\n );\n\nconst getAgents = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`salesession/${request?.saleSessionId}/agents`)\n );\n\nconst processInsuredFile = async (\n request?: ProcessInsuredFileRequest\n): Promise> => {\n try {\n return await withHttpClient(async httpClient => {\n const bodyFormData = new FormData();\n bodyFormData.set('uploadedFile', request?.file!);\n return await httpClient.post(\n `salesession/${request?.saleSessionId}/insureds/processFile`,\n bodyFormData\n );\n });\n } catch (err) {\n if (err instanceof HttpResponseError) {\n if (err.status === BAD_REQUEST) {\n if (err.data.type === 'FileFormatException') {\n throw new InsuredModifiedFileError();\n } else {\n throw new InsuredFilenameError();\n }\n } else if (err.status === PRECONDITION_FAILED) {\n throw new InvalidInsuredCountException();\n }\n }\n throw err;\n }\n};\n\nconst sendInsuredsFile = async (request?: ProcessInsuredFileRequest): Promise => {\n return await withHttpClient(async httpClient => {\n const bodyFormData = new FormData();\n bodyFormData.set('uploadedFile', request?.file!);\n return await httpClient.post(\n `salesession/${request?.saleSessionId}/insureds/sendEmail`,\n bodyFormData\n );\n });\n};\n\nconst postVehicles = async (request?: PostVehiclesRequest): Promise =>\n await withHttpClient(httpClient => httpClient.post('salesession/data/vehicles', request));\n\nconst postInsureds = async (request?: PostInsuredsRequest): Promise =>\n await withHttpClient(httpClient => httpClient.post('salesession/data/insureds', request));\n\nconst postIntermediaryData = async (request?: AddIntermediaryDataRequest): Promise =>\n await withHttpClient(httpClient =>\n httpClient.post('salesession/data/intermediaryData', request)\n );\n\nconst postPolicyHolder = async (request?: PostPolicyHolderRequest): Promise =>\n await withHttpClient(httpClient => httpClient.post('salesession/data/policyholder', request));\n\nconst postEasyRentData = async (request?: AddEasyRentDataRequest): Promise =>\n await withHttpClient(httpClient => httpClient.post('salesession/data/easyRent', request));\n\nconst postDataSubmit = async (request?: PostSubmitDataRequest): Promise =>\n await withHttpClient(httpClient =>\n httpClient.post(`salesession/${request?.saleSessionId}/data/submit`, request)\n );\n\nconst postRequirements = (\n request?: SetRequirementsRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/requirements`,\n request?.responses\n )\n );\n\nconst postPaymentDirectDebit = (\n request?: DirectDebitRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/directdebit`,\n request\n )\n );\n\nconst postPaymentPaypal = (\n request?: PaypalPaymentRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/paypal`,\n request\n )\n );\n\nconst postPaymentPaypalConfirm = (\n request?: PaypalConfirmRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/paypal/confirm/${request?.language}`,\n request\n )\n );\n\nconst postPaymentCash = (request?: {\n saleSessionId?: string;\n language?: string;\n}): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/cash/${request?.language}`,\n request\n )\n );\n\nconst postPaymentTpv = (request?: TpvPaymentRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/tpv/${request?.language}`,\n request\n )\n );\n\nconst postPaymentTpvConfirm = (\n request?: TpvConfirmRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/payment/tpv/confirm/${request?.language}`,\n request\n )\n );\n\nconst getProductDocuments = (\n request?: SaleSessionBaseRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/product/documents/${request?.language}`\n )\n );\n\nconst getProductInfo = (\n request?: SaleSessionBaseRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/product/info/${request?.language}`\n )\n );\n\nconst getWellcomePackBundle = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/documents/wellcomepack/${request?.language}`,\n {\n responseType: 'blob'\n }\n )\n );\n\nconst getDocumentsBundle = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/product/documents/bundle/${request?.language}`,\n {\n responseType: 'blob'\n }\n )\n );\n\nconst getDocumentCaratula = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/product/documents/caratula/${request?.language}`,\n {\n responseType: 'blob'\n }\n )\n );\n\nconst getGeneralCondition = (\n request?: GetDescriptionRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `products/${request?.productId}/generalCondition`\n )\n );\n\nconst addPolicies = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(`salesession/${request?.saleSessionId}/addPolicies`)\n );\n\nconst addCustomerData = (request?: SaleSessionBaseRequest): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(`salesession/${request?.saleSessionId}/addCustomerInfo`)\n );\n\nconst getQuestionaryAdditionalRules = async (\n request?: SaleSessionBaseRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.get(\n `salesession/${request?.saleSessionId}/questionary/additionalRules`\n )\n );\n\nconst postSendBudgetEmail = (request?: SendBudgetEmailRequest): Promise =>\n withHttpClient(httpClient =>\n httpClient.post(\n `salesession/${request?.saleSessionId}/documents/budget/sendEmail/${request?.language}`,\n request\n )\n );\n\nconst getRecurrentTextPayment = async (request?: OnlyLanguageRequest): Promise =>\n withHttpClient(httpClient =>\n httpClient.get(`salesession/recurrentTextPayment/${request?.language}`)\n );\n\nexport {\n initSaleSessionProduct,\n initSaleSessionRequirements,\n getProductsComparative,\n putSaleSessionProduct,\n postDiscountRate,\n deleteDiscountRate,\n getPaymentMethods,\n getAdditionalProductOptions,\n getAdditionalConditions,\n getAgents,\n processInsuredFile,\n postIntermediaryData,\n postPolicyHolder,\n postEasyRentData,\n postInsureds,\n postVehicles,\n postDataSubmit,\n postRequirements,\n postPaymentDirectDebit,\n postPaymentPaypal,\n postPaymentPaypalConfirm,\n postPaymentCash,\n sendInsuredsFile,\n postPaymentTpv,\n postPaymentTpvConfirm,\n getProductDocuments,\n getProductInfo,\n getWellcomePackBundle,\n getDocumentsBundle,\n getDocumentCaratula,\n getGeneralCondition,\n addPolicies,\n addCustomerData,\n getQuestionaryAdditionalRules,\n postSendBudgetEmail,\n getRecurrentTextPayment\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport './spinner.scss';\n\ntype SpinnerProps = {\n showFullScreen?: boolean;\n};\n\nconst Spinner = ({ showFullScreen = false }: SpinnerProps) => (\n
\n \n \n \n
\n);\n\nexport { Spinner };\n","import { CallStatus, HttpState, HttpAction } from './http-types';\n\ntype IReducerSwitchType = {\n [key: string]: () => HttpState;\n};\n\nconst HttpReducer = (state: HttpState, action: HttpAction): HttpState => {\n const reducerSwitch: IReducerSwitchType = {\n REQUEST_START: () => ({ ...state, status: CallStatus.Loading }),\n REQUEST_ERROR: () => ({\n ...state,\n status: CallStatus.Error,\n error: action.error,\n data: action.payload\n }),\n REQUEST_END: () => ({\n ...state,\n status: CallStatus.Complete,\n error: action.error,\n data: action.payload\n })\n };\n return reducerSwitch[action.type]();\n};\n\nexport { HttpReducer };\n","import { AxiosResponse } from 'axios';\nimport React, { useReducer, useCallback, useEffect } from 'react';\nimport { HttpReducer } from './http-reducer';\nimport {\n CallStatus,\n HttpAction,\n HttpState,\n REQUEST_END,\n REQUEST_ERROR,\n REQUEST_START\n} from './http-types';\nimport { HttpResponseError } from '@services/exceptions';\n\nconst request = async >(\n callback: (requestData?: P) => Promise>,\n dispatch: React.Dispatch>,\n requestData?: P,\n transformResponse?: (response: AxiosResponse) => R\n): Promise => {\n try {\n dispatch({ type: REQUEST_START });\n const response = await callback(requestData);\n dispatch({ type: REQUEST_END, payload: (transformResponse?.(response) ?? response) as R });\n return CallStatus.Complete;\n } catch (err) {\n dispatch({ type: REQUEST_ERROR, error: err });\n return CallStatus.Error;\n }\n};\n\nconst useHttp = (\n callback: (requestData?: P) => Promise>,\n throwExceptionOnError: boolean = true\n): [HttpState, (requestData?: P) => Promise] => {\n const [state, dispatch] = useReducer, HttpAction>>(HttpReducer, {\n status: CallStatus.NotCall\n });\n\n const action = useCallback(\n (data?: P) => request(callback, dispatch, data, response => response.data),\n [callback]\n );\n\n useEffect(() => {\n if (throwExceptionOnError && state?.error instanceof HttpResponseError) {\n throw state.error;\n }\n }, [state.error, throwExceptionOnError]);\n\n return [state, action];\n};\n\nconst useAxios = (\n callback: (requestData?: P) => Promise>\n): [HttpState>, (requestData?: P) => Promise] => {\n const [state, dispatch] = useReducer<\n React.Reducer>, HttpAction>>\n >(HttpReducer, { status: CallStatus.NotCall });\n\n const action = useCallback((data?: P) => request(callback, dispatch, data), [callback]);\n\n return [state, action];\n};\n\nexport { useHttp, useAxios };\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport { Button } from '@generics/button';\nimport './notification.scss';\n\nenum NotificationKind {\n default,\n error,\n success\n}\n\nconst structureClass = {\n notificationClass: 'ea-recovery-policy-notification-component'\n};\n\ntype NotificationProps = {\n className?: string;\n kind?: 'default' | 'error' | 'success';\n msg: string;\n autoDismiss?: boolean;\n autoDismissMs?: number;\n onDismiss: () => void;\n};\n\nconst Notification: React.FC = ({\n onDismiss,\n kind,\n msg,\n className,\n autoDismiss = false,\n autoDismissMs = 3000\n}: NotificationProps) => {\n const dismissNotification = () => {\n onDismiss();\n };\n\n useEffect(() => {\n if (autoDismiss && autoDismissMs) {\n const timeout = setTimeout(() => {\n dismissNotification();\n }, autoDismissMs);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [autoDismiss, autoDismissMs]);\n\n return (\n \n

{msg}

\n dismissNotification()}\n type=\"button\"\n value=\"close\"\n round\n icon=\"close\"\n size=\"xs\"\n />\n \n );\n};\n\nexport { Notification, NotificationKind };\n","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from './http';\nimport {\n IntermediaryEconomicDataCollection,\n IntermediaryPolicySummaryCollection\n} from '@services/models/intermediary-model';\nimport { PolicyDetail } from '@services/models/policies-model';\nimport { Product } from '@services/business-lines-service';\nimport { AllowedLanguages } from '@services/models/language-model';\nimport { getUserLang } from '@utils/language-helper';\n\nexport type PagedRequest = {\n page: number;\n itemsPerPage: number;\n};\n\nexport type IntermediaryPoliciesFilterRequest = {\n dateFrom?: Date;\n dateTo?: Date;\n policyNumber?: number;\n language: string;\n};\n\nexport type IntermediaryEconomicDataFilterRequest = {\n dateFrom?: Date;\n dateTo?: Date;\n policyNumber?: number;\n contractId?: number;\n language: string;\n};\n\nexport type IntermediaryPoliciesRequest = IntermediaryPoliciesFilterRequest & PagedRequest;\nexport type IntermediaryEconomicDataRequest = IntermediaryEconomicDataFilterRequest & PagedRequest;\n\nexport type GetWinnersClubAccessResponse = {\n winnersClubAccess: boolean;\n};\n\nexport type SendWelcomePackEmailRequest = {\n policyId: string;\n email: string;\n};\n\nexport type GetIntermediaryWellcomePackBundleRequest = {\n policyId: string;\n language?: string;\n};\n\nexport type GetAgencyInfoRequest = {\n entityId: string;\n agencyName?: string;\n language?: string;\n};\n\nexport type GetAgencyInfoResponse = {\n agentId: number;\n iconPath?: string;\n isManualAgency?: boolean;\n allowedLanguages: AllowedLanguages[];\n salesType?: string;\n validateToken?: string;\n};\n\nexport type GetAgencyTokenRequest = {\n entityId: string;\n token: string;\n};\n\nexport type GetIntermediaryProductsRequest = {\n entityId?: string;\n language?: string;\n};\n\nexport type GetIntermediaryProductsResponse = {\n products: Product[];\n};\n\nexport type GetAgencyAgentRequest = {\n entityId: string;\n agencyName: string;\n};\n\nexport type GetAgencyAgentResponse = {\n agentId: number;\n agentName: string;\n};\n\nexport type GetIntermediariesAffiliationResponse = {\n statusCode: number;\n value: string[];\n};\n\nexport type GetIntermediariesLegalResponse = {\n statusCode: number;\n value: string[];\n};\n\nconst getIntermediaryPolicies = (\n filters?: IntermediaryPoliciesRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post('/intermediaries/policies', filters)\n );\n\nconst getIntermediaryPolicy = (request?: {\n numPolicy: number;\n language: string;\n}): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `/intermediaries/policies/${request?.numPolicy}/${request?.language}`\n )\n );\n\nconst getIntermediaryPoliciesExcelReport = (\n filters?: IntermediaryPoliciesFilterRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post('/intermediaries/policies/report', filters, { responseType: 'blob' })\n );\n\nconst getIntermediaryEconomicData = (\n filters?: IntermediaryEconomicDataRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post(\n '/intermediaries/policies/economicData',\n filters\n )\n );\n\nconst getIntermediaryEconomicDataExcelReport = (\n filters?: IntermediaryEconomicDataFilterRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.post('/intermediaries/policies/economicData/report', filters, {\n responseType: 'blob'\n })\n );\n\nconst getWinnersClubAccess = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get('/intermediaries/winnersClub')\n );\n\nconst sendIntermediaryWelcomPackEmail = (\n request?: SendWelcomePackEmailRequest\n): Promise =>\n withHttpClient(httpClient =>\n httpClient.post(`/intermediaries/wellcomepack/sendEmail/${getUserLang()}`, request)\n );\n\nconst getIntermediaryWellcomePackBundle = (\n request?: GetIntermediaryWellcomePackBundleRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n `intermediaries/policy/${request?.policyId}/wellcomepack/${request?.language}`,\n {\n responseType: 'blob'\n }\n )\n );\n\nconst getAgencyInfo = (\n request?: GetAgencyInfoRequest\n): Promise> =>\n withHttpClient(httpClient => httpClient.post('/intermediaries/agency/info', request));\n\nconst getValidateAgencyToken = (request?: GetAgencyTokenRequest): Promise =>\n withHttpClient(httpClient => httpClient.post('/intermediaries/agency/token', request));\n\nconst getIntermediaryProducts = (\n request?: GetIntermediaryProductsRequest\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`/intermediaries/${request?.entityId}/products/${request?.language}`)\n );\n\nconst getAgencyAgent = (\n request?: GetAgencyAgentRequest\n): Promise> =>\n withHttpClient(httpClient => httpClient.post('/intermediaries/agency/agent', request));\n\nconst getIntermediariesAffiliation = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(\n '/intermediaries/intermediariesAffiliation'\n )\n );\n\nconst getIntermediariesLegal = (): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get('/intermediaries/intermediariesLegal')\n );\n\nexport {\n getIntermediaryPolicies,\n getIntermediaryPolicy,\n getIntermediaryPoliciesExcelReport,\n getIntermediaryEconomicData,\n getIntermediaryEconomicDataExcelReport,\n getWinnersClubAccess,\n sendIntermediaryWelcomPackEmail,\n getIntermediaryWellcomePackBundle,\n getAgencyInfo,\n getValidateAgencyToken,\n getIntermediaryProducts,\n getAgencyAgent,\n getIntermediariesAffiliation,\n getIntermediariesLegal\n};\n","import React, {\n forwardRef,\n useMemo,\n Ref,\n useCallback,\n useImperativeHandle,\n useRef,\n ComponentType\n} from 'react';\nimport Select, { MenuListComponentProps, ValueType, components, InputProps } from 'react-select';\nimport { FixedSizeList as List, ListChildComponentProps } from 'react-window';\nimport { calcOptionsLength } from '@utils/select-helper';\nimport { Props } from 'react-select/src/Select';\nimport { withInputLabel, InputLabelProps } from '@generics/with-input-label';\nimport StateManager from 'react-select';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\nconst HEIGHT = 56;\nconst WINDOW_THRESHOLD = 100;\n\nexport type SelectRef = {\n focus: () => void;\n};\n\ntype SelectProps = {\n id?: string;\n hasError?: boolean;\n disableAutoOpenMenu?: boolean;\n getOptionValue?: (option: T) => R;\n onChange?: (value: T) => void;\n orderBy?: keyof T | ((value: T) => string);\n options?: T[];\n} & Omit, 'onChange' | 'inputId'>;\n\ntype SelectMenuListComponentProps = {\n children?: React.ReactChild[];\n maxWidth: number;\n} & MenuListComponentProps;\n\ntype SelectInputProps = {\n autoComplete?: string;\n} & InputProps;\n\nconst MenuList = ({\n options,\n children,\n maxHeight,\n maxWidth,\n getValue\n}: SelectMenuListComponentProps) => {\n const value = getValue() as T;\n\n const initialOffset = useMemo(() => options.indexOf(value) * HEIGHT, [options, value]);\n const itemCount = useMemo(() => (children as React.ReactChild[])?.length || 0, [children]);\n\n const height = useMemo(() => {\n const itemsHeight = itemCount * HEIGHT;\n if (maxHeight && !isNaN(maxHeight) && itemsHeight > maxHeight) {\n return maxHeight;\n } else {\n return itemsHeight;\n }\n }, [maxHeight, itemCount]);\n\n return (\n \n {({ index, style }: ListChildComponentProps) => (\n
{children?.[index]}
\n )}\n \n );\n};\n\nconst SelectInput = (props: SelectInputProps) => {\n const InputComponent = components.Input as ComponentType;\n // HACK to prevent Chrome from allowing autofill\n return ;\n};\n\nconst WindowedSelect = (props: SelectProps, ref: Ref) => {\n const { t } = useTranslation();\n const {\n id,\n placeholder,\n orderBy,\n options,\n hasError,\n getOptionLabel,\n getOptionValue,\n isDisabled = false,\n isLoading,\n disableAutoOpenMenu = false,\n isClearable = true,\n onChange,\n ...restProps\n } = props;\n const innerRef = useRef>(null);\n const isWindowed = useMemo(() => calcOptionsLength(options) >= WINDOW_THRESHOLD, [options]);\n\n const orderedOptions = useMemo(() => {\n const getOrderByValue = (option: T): string | T | T[keyof T] => {\n if (typeof orderBy === 'string') {\n return option[orderBy];\n } else if (typeof orderBy === 'function') {\n return orderBy(option);\n } else {\n return option;\n }\n };\n\n const compareOptions = (a: T, b: T): number => {\n const aValue = getOrderByValue(a);\n const bValue = getOrderByValue(b);\n\n return aValue > bValue ? 1 : aValue < bValue ? -1 : 0;\n };\n\n return orderBy ? options?.sort(compareOptions) : options;\n }, [options, orderBy]);\n\n const components = useMemo(\n () => ({\n ...(isWindowed ? { MenuList: MenuList as React.FC> } : {}),\n ...(isDisabled\n ? {\n DropdownIndicator: null,\n IndicatorSeparator: null\n }\n : {}),\n ...(disableAutoOpenMenu\n ? {\n DropdownIndicator: null\n }\n : {}),\n Input: SelectInput\n }),\n [isWindowed, isDisabled, disableAutoOpenMenu]\n );\n\n const noOptionsMessage = useCallback(() => t('generics.no-options'), []);\n\n const placeholderValue = useMemo(() => placeholder || t('generics.select'), [placeholder]);\n\n const focusInput = () => {\n // HACK Select input isn't focused if we don't blur the input before\n innerRef.current?.select.blurInput();\n innerRef.current?.select.focusInput();\n };\n\n const onValueChange = useCallback(\n (value: ValueType) => {\n focusInput();\n onChange?.(value as T);\n },\n [onChange]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n focus: focusInput\n }),\n []\n );\n\n return (\n )}\n options={orderedOptions}\n components={components}\n noOptionsMessage={noOptionsMessage}\n placeholder={placeholderValue}\n className={classNames('ea-selector-component', {\n 'ea-validate-msg--error': hasError\n })}\n inputId={id}\n classNamePrefix=\"ea-selector\"\n isDisabled={isDisabled}\n isLoading={isLoading}\n getOptionLabel={getOptionLabel}\n getOptionValue={(getOptionValue as unknown) as (option: T) => string}\n isClearable={isClearable && !isDisabled}\n isSearchable={!isDisabled}\n menuIsOpen={isDisabled ? false : undefined}\n openMenuOnFocus={false}\n openMenuOnClick={!disableAutoOpenMenu}\n onChange={onValueChange}\n />\n );\n};\n\nconst WindowSelect = React.memo(forwardRef(WindowedSelect));\n\nconst WindowSelectInputLabel = withInputLabel(WindowSelect) as (\n props: SelectProps & InputLabelProps\n) => React.ReactElement & InputLabelProps>;\n\nexport { WindowSelectInputLabel as Select, WindowSelect as SelectField };\n","import { GroupedOptionsType, OptionsType, GroupType } from 'react-select';\n\nexport const calcOptionsLength = (options?: GroupedOptionsType | OptionsType): number => {\n const groupedOptionsType = options as GroupedOptionsType;\n const isGrouped = groupedOptionsType?.[0]?.options !== undefined;\n\n if (isGrouped) {\n return groupedOptionsType.reduce(\n (result: number, group: GroupType) => result + group.options.length,\n 0\n );\n }\n return options?.length ?? 0;\n};\n","import React, { useState, useRef, PropsWithChildren } from 'react';\nimport { useOnClickOutside } from '@hooks/use-onclick-outside';\nimport { isFunction } from 'util';\nimport classNames from 'classnames';\n\nimport './dropdown-menu.scss';\n\ntype DropdownMenuStyles = {\n toggleClassName?: string;\n menuClassName?: string;\n};\n\ntype DropdownMenuProps = {\n renderToggle: (isMenuOpen: boolean) => React.ReactNode;\n classes?: DropdownMenuStyles;\n isOpen?: boolean;\n children: ((toggleDropdownMenu: () => void) => React.ReactNode) | React.ReactNode;\n};\n\nconst DropdownMenu = ({\n children,\n renderToggle,\n classes,\n isOpen = false\n}: PropsWithChildren) => {\n const [isShow, setShow] = useState(isOpen);\n const menuRef = useRef(null);\n const toggleMenuRef = useRef(null);\n const toggleDropdownMenu = () => setShow(!isShow);\n useOnClickOutside(() => setShow(false), menuRef, toggleMenuRef, isShow);\n\n return (\n <>\n \n {renderToggle(isShow)}\n \n {isShow && (\n \n {isFunction(children) ? (children as Function)(toggleDropdownMenu) : children}\n \n )}\n \n );\n};\n\nexport { DropdownMenu };\n","const comma = ',';\nconst period = '.';\nconst minus = '-';\nconst minusRegExp = /-/;\nconst nonDigitsRegExp = /\\D+/g;\nconst digitRegExp = /\\d/;\nconst caretTrap = '[]';\n\nexport type CreateNumberMaskParams = {\n prefix?: string;\n suffix?: string;\n includeThousandsSeparator?: boolean;\n thousandsSeparatorSymbol?: string;\n allowDecimal?: boolean;\n decimalSymbol?: string;\n decimalLimit?: number;\n requireDecimal?: boolean;\n allowNegative?: boolean;\n allowLeadingZeroes?: boolean;\n integerLimit?: number;\n};\n\nconst convertToMask = (strNumber: string): (RegExp | string)[] => {\n return strNumber.split('').map(char => (digitRegExp.test(char) ? digitRegExp : char));\n};\n\nconst addThousandsSeparator = (n: string, thousandsSeparatorSymbol: string): string => {\n return n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n};\n\nconst createNumberMask = ({\n prefix = '',\n suffix = '',\n includeThousandsSeparator = false,\n thousandsSeparatorSymbol = comma,\n allowDecimal = false,\n decimalSymbol = period,\n decimalLimit = undefined,\n requireDecimal = false,\n allowNegative = false,\n allowLeadingZeroes = false,\n integerLimit = undefined\n}: CreateNumberMaskParams) => {\n const prefixLength = (prefix && prefix.length) || 0;\n const suffixLength = (suffix && suffix.length) || 0;\n const thousandsSeparatorSymbolLength =\n (thousandsSeparatorSymbol && thousandsSeparatorSymbol.length) || 0;\n\n const numberMask = (rawValue = ''): (RegExp | string)[] => {\n const rawValueLength = rawValue.length;\n\n if (rawValue === '' || (rawValue[0] === prefix[0] && rawValueLength === 1)) {\n return (prefix.split('') as (RegExp | string)[])\n .concat([digitRegExp])\n .concat(suffix.split(''));\n } else if (rawValue === decimalSymbol && allowDecimal) {\n return (prefix.split('') as (RegExp | string)[])\n .concat(['0', decimalSymbol, digitRegExp])\n .concat(suffix.split(''));\n }\n\n const isNegative = rawValue[0] === minus && allowNegative;\n if (isNegative) {\n rawValue = rawValue.toString().substr(1);\n }\n\n const indexOfLastDecimal = rawValue.lastIndexOf(decimalSymbol);\n const hasDecimal = indexOfLastDecimal !== -1;\n\n let integer: string;\n let fraction: (RegExp | string)[] | undefined = undefined;\n let mask: (RegExp | string)[];\n\n if (rawValue.slice(suffixLength * -1) === suffix) {\n rawValue = rawValue.slice(0, suffixLength * -1);\n }\n\n if (hasDecimal && (allowDecimal || requireDecimal)) {\n integer = rawValue.slice(\n rawValue.slice(0, prefixLength) === prefix ? prefixLength : 0,\n indexOfLastDecimal\n );\n\n const fractionValue = rawValue.slice(indexOfLastDecimal + 1, rawValueLength);\n fraction = convertToMask(fractionValue.replace(nonDigitsRegExp, ''));\n } else {\n if (rawValue.slice(0, prefixLength) === prefix) {\n integer = rawValue.slice(prefixLength);\n } else {\n integer = rawValue;\n }\n }\n\n if (integerLimit && typeof integerLimit === 'number') {\n const thousandsSeparatorRegex =\n thousandsSeparatorSymbol === '.' ? '[.]' : `${thousandsSeparatorSymbol}`;\n const numberOfThousandSeparators = (\n integer.match(new RegExp(thousandsSeparatorRegex, 'g')) || []\n ).length;\n\n integer = integer.slice(\n 0,\n integerLimit + numberOfThousandSeparators * thousandsSeparatorSymbolLength\n );\n }\n\n integer = integer.replace(nonDigitsRegExp, '');\n\n if (!allowLeadingZeroes) {\n integer = integer.replace(/^0+(0$|[^0])/, '$1');\n }\n\n integer = includeThousandsSeparator\n ? addThousandsSeparator(integer, thousandsSeparatorSymbol)\n : integer;\n\n mask = convertToMask(integer);\n\n if ((hasDecimal && allowDecimal) || requireDecimal === true) {\n if (rawValue[indexOfLastDecimal - 1] !== decimalSymbol) {\n mask.push(caretTrap);\n }\n\n mask.push(decimalSymbol, caretTrap);\n\n if (fraction) {\n if (typeof decimalLimit === 'number') {\n fraction = fraction.slice(0, decimalLimit);\n }\n\n mask = mask.concat(fraction);\n }\n\n if (requireDecimal === true && rawValue[indexOfLastDecimal - 1] === decimalSymbol) {\n mask.push(digitRegExp);\n }\n }\n\n if (prefixLength > 0) {\n mask = (prefix.split('') as (RegExp | string)[]).concat(mask);\n }\n\n if (isNegative) {\n if (mask.length === prefixLength) {\n mask.push(digitRegExp);\n }\n\n mask = ([minusRegExp] as (RegExp | string)[]).concat(mask);\n }\n\n if (suffix.length > 0) {\n mask = mask.concat(suffix.split(''));\n }\n\n return mask;\n };\n return numberMask;\n};\n\nexport { createNumberMask };\n","import React, { useMemo, useState, useEffect, ChangeEvent, useCallback } from 'react';\nimport MaskedInput from 'react-text-mask';\nimport { createNumberMask, CreateNumberMaskParams } from '@utils/number-mask';\nimport { useTranslation } from 'react-i18next';\nimport {\n getNumber,\n getFormattedNumberBySeparators,\n getDecimalSeparator,\n getThousandSeparator\n} from '@utils/number-helper';\nimport classNames from 'classnames';\n\ntype Config = {\n allowDecimal?: boolean;\n decimalLimit?: number;\n allowNegative?: boolean;\n includeThousandsSeparator?: boolean;\n decimalSymbol?: string;\n integerLimit?: number;\n};\n\ntype Type = 'number' | 'integer' | 'amount';\n\nconst typeConfig: { [type: string]: Config } = {\n number: {\n allowDecimal: true,\n includeThousandsSeparator: false,\n allowNegative: true\n },\n integer: { allowDecimal: false, includeThousandsSeparator: false },\n amount: { allowDecimal: true, decimalLimit: 2, includeThousandsSeparator: true }\n};\n\nexport type NumberInputProps = {\n value?: number | null;\n hasError?: boolean;\n type?: Type;\n config?: Config;\n onChange?: (ev: ChangeEvent, value: number | null) => void;\n} & Omit;\n\nconst NumberInput = ({\n hasError,\n type = 'number',\n config,\n value,\n onBlur,\n onChange,\n ...restProps\n}: NumberInputProps) => {\n const {\n i18n: { language }\n } = useTranslation();\n const [internalValue, setInternalValue] = useState();\n\n const maskConfig: CreateNumberMaskParams = useMemo(\n () => ({\n ...typeConfig[type],\n decimalSymbol: getDecimalSeparator(language),\n thousandsSeparatorSymbol: getThousandSeparator(language),\n prefix: '',\n suffix: '',\n ...config\n }),\n [language, type, config]\n );\n\n useEffect(() => {\n setInternalValue(\n getFormattedNumberBySeparators(\n value as number,\n maskConfig.decimalSymbol!,\n maskConfig.includeThousandsSeparator ? maskConfig.thousandsSeparatorSymbol : ''\n )\n );\n }, [value, maskConfig]);\n\n const numberMask = useMemo(() => createNumberMask(maskConfig), [maskConfig]);\n\n const inputClassNames = classNames(\n {\n 'ea-textfield': true,\n 'ea-validate-msg--error': hasError\n },\n restProps.className\n );\n\n const getNumericValue = (stringValue: string): number | null => {\n const numericValue = getNumber(\n stringValue,\n language,\n maskConfig.decimalSymbol,\n maskConfig.thousandsSeparatorSymbol\n );\n return numericValue ?? null;\n };\n\n const handleNumericValueChange = useCallback(\n (ev: ChangeEvent) => {\n const previousValue = internalValue;\n const stringValue = ev.target.value;\n setInternalValue(stringValue);\n const numericValue = getNumericValue(stringValue);\n if ((!stringValue || numericValue !== undefined) && value !== numericValue) {\n onChange?.(ev, numericValue ?? null);\n\n if (ev.isDefaultPrevented()) {\n setInternalValue(previousValue);\n ev.target.value = previousValue!;\n }\n }\n },\n [internalValue, onChange]\n );\n\n const handleBlur = useCallback(\n (ev: React.FocusEvent) => {\n handleNumericValueChange(ev);\n onBlur?.(ev);\n },\n [onBlur, handleNumericValueChange]\n );\n\n const handleChange = useCallback(\n (ev: React.ChangeEvent) => {\n handleNumericValueChange(ev);\n },\n [handleNumericValueChange]\n );\n\n return (\n \n );\n};\n\nexport { NumberInput };\n","import { useRef, useEffect, DependencyList, EffectCallback } from 'react';\n\nconst useUpdateEffect = (effect: EffectCallback, deps: DependencyList = []) => {\n const firstUpdate = useRef(true);\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n return effect();\n }, deps);\n};\n\nexport { useUpdateEffect };\n","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from './http';\nimport { Country, Province } from '@services/models/countries-model';\nimport { HTTP_CACHE_MASTER_DATA } from '@utils/constants';\n\nconst getCountries = (language?: string): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`/countries/${language}`, {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nconst getProvinces = (countryId?: string): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`/countries/${countryId}/provinces`, {\n cache: HTTP_CACHE_MASTER_DATA\n })\n );\n\nexport { getCountries, getProvinces };\n","import { FieldMetaProps, FormikHelpers, FormikHandlers } from 'formik';\n\nconst hasMetaFieldError = (formikMetaFieldProps: FieldMetaProps): boolean => {\n return Boolean(formikMetaFieldProps.touched && Boolean(formikMetaFieldProps.error));\n};\n\nconst isValidForm = async (\n formikHelpers: FormikHelpers & FormikHandlers,\n showErrors: boolean = false\n): Promise => {\n const result = await formikHelpers.validateForm();\n const isValid = Boolean(result && Object.keys(result).length === 0);\n if (!isValid && showErrors) {\n formikHelpers.handleSubmit();\n }\n return isValid;\n};\n\nconst submitForm = async (formikHelpers: FormikHelpers): Promise => {\n try {\n await formikHelpers.submitForm();\n return true;\n } catch (e) {\n return false;\n }\n};\n\nexport { hasMetaFieldError, isValidForm, submitForm };\n","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from './http';\n\nexport type GetBusinessLinesResponse = {\n businessLines: BusinessLine[];\n};\n\nexport type BusinessLine = {\n code: string;\n description: string;\n icon: string;\n order: number;\n fixedPosition?: boolean;\n visible?: boolean;\n};\n\nexport type GetProductsByBusinessLineRequest = {\n code: string;\n language: string;\n};\n\nexport type GetProductsByBusinessLineResponse = {\n products: Product[];\n groups?: ProductGroup[];\n};\n\nexport type Product = {\n detailsUrl: string;\n coverages: string[];\n percentDiscount: number;\n discountCode: string;\n priceFrom: number;\n content: string;\n productId: string;\n shortDescription: string;\n longDescription: string;\n businessLine: string;\n groupId?: string;\n};\n\nexport type ProductGroup = {\n id: string;\n description: string;\n};\n\nconst getBusinessLines = async (): Promise> =>\n await withHttpClient(httpClient => httpClient.get('businessLines'));\n\nconst getProdutsByBusinessLine = async (\n request?: GetProductsByBusinessLineRequest\n): Promise> =>\n await withHttpClient(httpClient =>\n httpClient.get(\n `businessLines/${request?.code}/products/${request?.language}`\n )\n );\n\nexport { getBusinessLines, getProdutsByBusinessLine };\n","import React, { ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Button } from './button';\n\nexport type ChipProps = {\n className?: string;\n value: string | ReactNode;\n onClose: () => void;\n};\n\nconst Chip: React.FC = ({ className, value, onClose }: ChipProps) => (\n
\n {value}\n \n
\n);\n\nexport { Chip };\n","export enum ModalityTypes {\n EMPTY = 0,\n ASIS = 1,\n CANC = 2,\n ASCA = 3\n}\n\nexport type ProductsComparative = {\n saleId: string;\n products: ProductInfo[];\n coverages: CoverageProductsInfo[];\n};\n\nexport type ProductInfo = {\n code: string;\n description?: string;\n amount?: number;\n dateStart?: Date;\n dateFinish?: Date;\n};\n\nexport type CoverageProductsInfo = {\n code: string;\n description: string;\n values: CoverageProductsValue[];\n};\n\nexport type CoverageProductsValue = {\n productCode: string;\n value: string;\n};\n","import { AxiosResponse } from 'axios';\nimport { withHttpClient } from '@services/http';\nimport { CancellationOption } from '@services/models/cms-model';\n\ntype GetCancellationOptionsResponse = {\n cancellationOptions: CancellationOption[];\n};\n\n//https://https://cms-dev.europ20.es/api/europasistance-sf/cancellations\nconst getCancellationOptions = (\n language?: string\n): Promise> =>\n withHttpClient(httpClient =>\n httpClient.get(`/cms/cancellationOptions/${language}`)\n );\n\nexport { getCancellationOptions };\n","import React, { ReactNode, memo } from 'react';\nimport { StepDefinition } from '@modules/app/travelnet/travelnet-launcher/travelnet-launcher-steps';\n\nexport type TravelnetLauncherStepProps = {\n children: ReactNode;\n} & StepDefinition;\n\nconst TravelnetLauncherStep = memo(({ label, children }: TravelnetLauncherStepProps) => (\n
\n
\n {label &&

{label}

}\n
{children}
\n
\n
\n));\n\nexport { TravelnetLauncherStep };\n","import React, {\n useState,\n useRef,\n useEffect,\n ReactNode,\n Ref,\n useImperativeHandle,\n forwardRef,\n ReactNodeArray,\n memo\n} from 'react';\nimport { useOnClickOutside } from '@hooks/use-onclick-outside';\nimport classNames from 'classnames';\nimport { Icon } from '@generics/icon';\nimport { TravelnetLauncherStepProps } from '@modules/app/travelnet/travelnet-launcher/travelnet-launcher-step';\nimport { Button } from '@generics/button';\nimport { useTranslation } from 'react-i18next';\nimport { Notification } from '@shared/notification';\n\nexport type StepDefinition = {\n title: string;\n label?: string;\n iconName: string;\n value: ReactNode;\n};\n\ntype TravelnetLauncherStepsProps = {\n isValid: boolean;\n isSubmitting: boolean;\n disabled?: boolean;\n nextButtonDisabled?: boolean;\n notificationErrorMessage?: string;\n onNotificationErrorDismiss: () => void;\n onExpand?: (isExpanded: boolean) => void;\n onSubmit: () => void;\n onStepChange?: () => void;\n children: ReactNode;\n};\n\nexport type TravelnetLauncherStepsRef = {\n currentStepIndex: number;\n isLastStep: boolean;\n nextStep: () => void;\n setExpanded: (expanded: boolean) => void;\n};\n\nconst TravelnetLauncherSteps = (\n {\n isValid,\n isSubmitting,\n disabled = false,\n notificationErrorMessage,\n onNotificationErrorDismiss,\n onExpand,\n onStepChange,\n onSubmit,\n children\n }: TravelnetLauncherStepsProps,\n ref: Ref\n) => {\n const { t } = useTranslation();\n const [isExpanded, setExpanded] = useState(false);\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n\n const maxStepIndex = useRef(0);\n const toggleMenuRef = useRef(null);\n const menuRef = useRef(null);\n\n useOnClickOutside(() => setExpanded(false), menuRef, toggleMenuRef, isExpanded);\n\n useEffect(() => {\n onExpand?.(isExpanded);\n }, [isExpanded]);\n\n const steps = React.Children.map(children, c => {\n const component = c as React.ReactElement;\n return component.props;\n });\n\n const isStepEnabled = (stepIndex: number): boolean =>\n stepIndex <= currentStepIndex ||\n (stepIndex === currentStepIndex + 1 && isValid) ||\n stepIndex <= maxStepIndex.current;\n\n const isLastStep = Boolean(steps && currentStepIndex === steps.length - 1);\n\n const nextStep = () => {\n if (isLastStep) {\n onSubmit?.();\n } else {\n setCurrentStepIndex(i => i + 1);\n }\n };\n\n useEffect(() => {\n maxStepIndex.current = Math.max(currentStepIndex, maxStepIndex.current);\n onStepChange?.();\n }, [currentStepIndex]);\n\n const handleNextStep = (ev: React.MouseEvent) => {\n ev.preventDefault();\n nextStep();\n };\n\n useImperativeHandle(\n ref,\n () => ({\n currentStepIndex: currentStepIndex,\n isLastStep,\n nextStep,\n setExpanded: expanded => setExpanded(expanded)\n }),\n [currentStepIndex, isLastStep, nextStep]\n );\n\n const handleStepClick = (index: number) => () => {\n if (isStepEnabled(index)) {\n setCurrentStepIndex(index);\n }\n };\n\n return (\n <>\n
\n setExpanded(!disabled)}>\n {steps?.map(({ title, iconName, value }, index) => (\n \n
\n {title}\n
\n
\n \n {value}\n
\n
\n ))}\n
\n \n
\n \n {notificationErrorMessage && (\n \n )}\n \n
\n {isExpanded && (children as ReactNodeArray)?.[currentStepIndex]}\n
\n \n );\n};\n\nconst TravelnetLauncherStepsWithRef = memo(forwardRef(TravelnetLauncherSteps));\n\nexport { TravelnetLauncherStepsWithRef as TravelnetLauncherSteps };\n","import React, { useState, ChangeEvent, useEffect } from 'react';\nimport { Button } from '@generics/button';\nimport { NumberInput } from '@generics/number-input';\nimport './travellers-selector.scss';\n\ntype TravellersSelectorProps = {\n value: number;\n maxValue: number;\n onChange?: (value: number | undefined) => void;\n autoFocus?: boolean;\n};\n\nconst TravellersSelector = ({\n value,\n maxValue,\n onChange,\n autoFocus = false\n}: TravellersSelectorProps) => {\n const [count, setCount] = useState(value);\n\n useEffect(() => {\n setCount(value);\n }, [value]);\n\n const handleChange = (ev: ChangeEvent, newValue: number | null): void => {\n if (newValue && newValue > maxValue) {\n ev.preventDefault();\n } else {\n setCount(newValue);\n }\n };\n\n useEffect(() => {\n if (count == null) {\n setCount(0);\n } else {\n onChange?.(count);\n }\n }, [count]);\n\n return (\n
\n maxValue}\n onClick={() => setCount((count ?? 0) - 1)}\n />\n \n = maxValue}\n onClick={() => setCount((count ?? 0) + 1)}\n />\n
\n );\n};\n\nexport { TravellersSelector };\n","import React, { useEffect, useState, useRef } from 'react';\nimport * as yup from 'yup';\nimport { useTranslation } from 'react-i18next';\nimport { initSaleSessionRequirements } from '@services/sale-session-service';\nimport { useHttp, isComplete, isInitializingOrLoading } from '@services/http';\nimport { ModalityTypes } from '@services/models/products-comparative-model';\nimport { useHistory } from 'react-router-dom';\nimport { routesConfig } from '@routes/routes-config';\nimport { Translate } from '@shared/translate';\nimport { getCountries } from '@services/countries-service';\nimport { Country } from '@services/models/countries-model';\nimport { Formik, FormikContextType } from 'formik';\nimport { CountryOption } from '@modules/app/funnel/funnel-personalization/requirement-data/country-option';\nimport { SelectMultiple } from '@generics/select-multiple';\nimport classNames from 'classnames';\nimport { getCancellationOptions } from '@services/cms-service';\nimport { TravelnetLauncherStep } from '@modules/app/travelnet/travelnet-launcher/travelnet-launcher-step';\nimport {\n TravelnetLauncherSteps,\n TravelnetLauncherStepsRef\n} from '@modules/app/travelnet/travelnet-launcher/travelnet-launcher-steps';\nimport ReactTooltip from 'react-tooltip';\nimport { getFormattedDate, addToCurrentDate, addToDate } from '@utils/dates-helper';\nimport { CalendarField } from '@generics/formik/calendar-field';\nimport { TravellersSelector } from '@modules/app/travelnet/travelnet-launcher/travellers-selector';\nimport { Radio } from '@generics/radio';\nimport { getUserLang } from '@utils/language-helper';\nimport './travelnet-launcher.scss';\nimport TagManager from 'react-gtm-module';\n\ntype TravelnetLauncherForm = {\n countries: Country[];\n departureDate?: Date;\n arrivalDate?: Date;\n travellersOver74Years: number;\n travellersBelow74Years: number;\n launcherModality?: ModalityTypes;\n};\n\nconst initialFormValues: TravelnetLauncherForm = {\n countries: [],\n travellersBelow74Years: 0,\n travellersOver74Years: 0,\n launcherModality: ModalityTypes.ASIS\n};\n\ntype TravelnetLauncherProps = {\n className?: string;\n disabled?: boolean;\n onExpand?: (isExpanded: boolean) => void;\n onlyTitle?: boolean;\n};\n\nconst maxTravellers = 9999;\n\nconst TravelnetLauncher = ({\n className,\n onExpand,\n disabled = false,\n onlyTitle = false\n}: TravelnetLauncherProps) => {\n const { t } = useTranslation();\n const history = useHistory();\n const formRef = useRef>();\n const [cancellationOptions, fetchCancellationOptions] = useHttp(getCancellationOptions, false);\n const [saleSessionRequirements, fetchInitSaleSessionRequirements] = useHttp(\n initSaleSessionRequirements\n );\n const [countries, fetchCountries] = useHttp(getCountries);\n const [idLang] = useState(getUserLang());\n const [isExpanded, setExpanded] = useState(false);\n const [showNotificationError, setShowNotificationError] = useState(false);\n const [cancellationOptionsDescription, setCancellationOptionsDescription] = useState<\n { [key: number]: string | undefined } | undefined\n >();\n const stepsRef = useRef(null);\n\n const onLauncherExpand = (expanded: boolean) => {\n setExpanded(expanded);\n onExpand?.(expanded);\n };\n\n const validationSchema = yup.object().shape(\n {\n countries: yup\n .array()\n .min(1)\n .required(),\n departureDate: yup\n .date()\n .nullable()\n .when('currentStep', {\n is: () => stepsRef.current?.currentStepIndex === 1,\n then: yup\n .date()\n .nullable()\n .required()\n }),\n arrivalDate: yup\n .date()\n .nullable()\n .when('currentStep', {\n is: () => stepsRef.current?.currentStepIndex === 2,\n then: yup\n .date()\n .nullable()\n .required()\n }),\n travellersBelow74Years: yup.number().when('travellersOver74Years', {\n is: (value: number) => value === 0 && stepsRef.current?.currentStepIndex === 3,\n then: yup.number().min(1)\n }),\n travellersOver74Years: yup.number().when('travellersBelow74Years', {\n is: (value: number) => value === 0 && stepsRef.current?.currentStepIndex === 3,\n then: yup.number().min(1)\n }),\n launcherModality: yup.number().when('currentStep', {\n is: () => stepsRef.current?.currentStepIndex === 4,\n then: yup.number().required()\n })\n },\n [['travellersOver74Years', 'travellersBelow74Years']]\n );\n\n useEffect(() => {\n fetchCountries(idLang);\n fetchCancellationOptions(idLang);\n }, []);\n\n useEffect(() => {\n if (isComplete(cancellationOptions)) {\n const descriptions: { [key: number]: string | undefined } | undefined = {\n ...cancellationOptions.data?.cancellationOptions?.reduce(\n (value, { option, description }) => ({\n ...value,\n [option!]: description\n }),\n {}\n )\n };\n setCancellationOptionsDescription(descriptions);\n }\n }, [cancellationOptions]);\n\n useEffect(() => {\n if (isComplete(saleSessionRequirements) && saleSessionRequirements.data) {\n if (saleSessionRequirements.data.numProducts > 0) {\n history.push(\n `${routesConfig.funnel.buy}/${saleSessionRequirements.data.saleSessionId}`\n );\n } else if (saleSessionRequirements.data.numProducts === 0) {\n setShowNotificationError(true);\n stepsRef.current?.setExpanded(false);\n } else {\n throw new Error('Invalid requirements numProducts response');\n }\n }\n }, [saleSessionRequirements]);\n\n const onSubmit = async (values: TravelnetLauncherForm): Promise => {\n TagManager.dataLayer({\n dataLayer: {\n category: 'Interaccion',\n action: 'Buscador-viajes',\n label: 'Calcular',\n agrupacion_paises: values.countries.map(c => c.id).join(','),\n total_dias: Math.round(\n Math.abs(\n (new Date(values.arrivalDate!).getTime() +\n 8.64e7 -\n new Date(values.departureDate!).getTime()) /\n 8.64e7\n )\n ),\n total_pasajeros: values.travellersOver74Years + values.travellersBelow74Years,\n modalidad: values.launcherModality!,\n event: 'eventga'\n }\n });\n await fetchInitSaleSessionRequirements({\n countries: values.countries.map(c => c.id),\n departureDate: values.departureDate!,\n arrivalDate: values.arrivalDate!,\n travellersOver74Years: values.travellersOver74Years,\n travellersBelow74Years: values.travellersBelow74Years,\n launcherModality: values.launcherModality!\n });\n\n if (values.launcherModality) {\n sessionStorage.setItem('modalidad', values.launcherModality?.toString());\n }\n };\n\n const onStepChange = async (): Promise => {\n const errors = await formRef.current?.validateForm();\n if (errors) {\n formRef.current?.setErrors(errors);\n }\n };\n\n if (onlyTitle) {\n return (\n \n

\n \n

\n \n );\n }\n\n return (\n \n

\n \n

\n
\n void}\n initialValues={initialFormValues}\n validationSchema={validationSchema}\n onSubmit={onSubmit}>\n {({\n values,\n setFieldValue,\n setFieldTouched,\n isValid,\n isSubmitting,\n handleSubmit\n }) => {\n const numTravellers =\n values.travellersBelow74Years + values.travellersOver74Years;\n return (\n
\n \n setShowNotificationError(false)\n }\n onExpand={onLauncherExpand}\n onStepChange={onStepChange}\n onSubmit={handleSubmit}\n ref={stepsRef}>\n \n ) : values.countries.length === 1 ? (\n \n ) : (\n \n )\n }>\n value.description}\n getOptionValue={value => value.id}\n onChange={(value?: Country[]) => {\n setFieldTouched('countries');\n setFieldValue('countries', value);\n }}\n isOptionDisabled={value => value.ist || value.alerta}\n formatOptionLabel={option => (\n \n )}\n autoFocus\n />\n \n \n \n\n \n ) : (\n getFormattedDate(values.departureDate)\n )\n }>\n {\n setFieldValue('arrivalDate', null);\n stepsRef.current?.nextStep();\n }}\n monthsShown={3}\n inline\n selectsStart\n startDate={values.departureDate}\n endDate={values.arrivalDate}\n minDate={addToCurrentDate({ days: 1 })}\n maxDate={addToCurrentDate({\n months: 15,\n days: -1\n })}\n currentDayIsMaxDate={false}\n autoFocus\n />\n \n\n \n ) : (\n getFormattedDate(values.arrivalDate)\n )\n }>\n \n \n\n \n ) : numTravellers === 1 ? (\n \n ) : (\n \n )\n }>\n
\n
\n

\n \n

\n

\n \n

\n
\n {\n setFieldValue(\n 'travellersBelow74Years',\n value ?? 0,\n true\n );\n }}\n autoFocus\n />\n
\n
\n
\n

\n \n

\n

\n \n

\n
\n {\n setFieldValue(\n 'travellersOver74Years',\n value ?? 0,\n true\n );\n }}\n />\n
\n \n \n ) : values.launcherModality === ModalityTypes.ASIS ? (\n \n ) : values.launcherModality === ModalityTypes.ASCA ? (\n \n ) : (\n \n )\n }>\n
\n \n \n setFieldValue(\n 'launcherModality',\n ModalityTypes.ASIS\n )\n }\n />\n {cancellationOptionsDescription?.[\n ModalityTypes.ASIS\n ] && (\n \n )}\n
\n \n \n setFieldValue(\n 'launcherModality',\n ModalityTypes.ASCA\n )\n }\n />\n {cancellationOptionsDescription?.[\n ModalityTypes.ASCA\n ] && (\n \n )}\n
\n \n \n setFieldValue(\n 'launcherModality',\n ModalityTypes.CANC,\n true\n )\n }\n />\n {cancellationOptionsDescription?.[\n ModalityTypes.CANC\n ] && (\n \n )}\n \n \n \n \n \n );\n }}\n \n \n \n );\n};\n\nexport default TravelnetLauncher;\n","declare global {\n interface Window {\n REACT_APP_OIDC_STS_AUTHORITY: string;\n REACT_APP_OIDC_CLIENT_ID: string;\n REACT_APP_OIDC_CLIENT_ROOT: string;\n REACT_APP_OIDC_CLIENT_SCOPE: string;\n REACT_APP_SERVER_URL: string;\n REACT_APP_SERVER_API_URL: string;\n REACT_APP_SERVER_CMS: string;\n REACT_APP_GTM_ID: string;\n REACT_APP_SOCIAL_FACEBOOK: string;\n REACT_APP_SOCIAL_TWITTER: string;\n REACT_APP_SOCIAL_YOUTUBE: string;\n REACT_APP_SOCIAL_INSTAGRAM: string;\n REACT_APP_SOCIAL_LINKEDIN: string;\n REACT_APP_PUBLIC_PORTAL_HELP_LINK: string;\n REACT_APP_PUBLIC_PORTAL_ABOUT_US_LINK: string;\n REACT_APP_PUBLIC_PORTAL_PRODUCTS_LINK: string;\n REACT_APP_PUBLIC_PORTAL_CONTACT_LINK: string;\n REACT_APP_PUBLIC_PORTAL_BLOG_LINK: string;\n REACT_APP_PUBLIC_PORTAL_PRESS_LINK: string;\n REACT_APP_PUBLIC_PORTAL_LEGAL_INFO_LINK: string;\n REACT_APP_PUBLIC_PORTAL_TERMS_LINK: string;\n REACT_APP_EXTERNAL_LINK_TRAVELNET: string;\n REACT_APP_EXTERNAL_LINK_ECLAIMS: string;\n }\n}\n\nexport default {\n oidc: {\n stsAuthority: window.REACT_APP_OIDC_STS_AUTHORITY,\n clientId: window.REACT_APP_OIDC_CLIENT_ID,\n clientRoot: window.REACT_APP_OIDC_CLIENT_ROOT,\n clientScope: window.REACT_APP_OIDC_CLIENT_SCOPE\n },\n i18n: {\n languages: ['EN', 'ES'],\n defaultLanguage: 'ES',\n namespaces: [''],\n defaultNamespace: ''\n },\n server: {\n serverUrl: window.REACT_APP_SERVER_URL,\n apiUrl: window.REACT_APP_SERVER_API_URL,\n CMS: window.REACT_APP_SERVER_CMS\n },\n gtm: {\n id: window.REACT_APP_GTM_ID\n },\n debug: false,\n socialItems: [\n {\n href: `https://www.facebook.com/${window.REACT_APP_SOCIAL_FACEBOOK}`,\n iconName: 'facebook',\n iconTitle: 'Facebook'\n },\n {\n href: `https://twitter.com/${window.REACT_APP_SOCIAL_TWITTER}`,\n iconName: 'twitter',\n iconTitle: 'Twitter'\n },\n {\n href: `https://www.youtube.com/user/${window.REACT_APP_SOCIAL_YOUTUBE}`,\n iconName: 'youtube',\n iconTitle: 'YouTube'\n },\n {\n href: `https://www.instagram.com/${window.REACT_APP_SOCIAL_INSTAGRAM}`,\n iconName: 'instagram',\n iconTitle: 'Instagram'\n },\n {\n href: `https://www.linkedin.com/company/${window.REACT_APP_SOCIAL_LINKEDIN}`,\n iconName: 'linkedin',\n iconTitle: 'LinkedIn'\n }\n ],\n publicPortalItems: [\n {\n href: window.REACT_APP_PUBLIC_PORTAL_HELP_LINK,\n titleKey: 'private-header.funnel.help',\n section: 'header'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_ABOUT_US_LINK,\n titleKey: 'private-header.funnel.about_us',\n section: 'header'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_PRODUCTS_LINK,\n titleKey: 'private-header.funnel.products',\n section: 'header'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_CONTACT_LINK,\n titleKey: 'private-header.travelnet.contact',\n section: 'header'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_HELP_LINK,\n titleKey: 'policy-card.help',\n section: 'help'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_BLOG_LINK,\n titleKey: 'footer.blog',\n section: 'footer'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_CONTACT_LINK,\n titleKey: 'footer.contact',\n section: 'footer'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_PRESS_LINK,\n titleKey: 'footer.press',\n section: 'footer'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_LEGAL_INFO_LINK,\n titleKey: 'footer.legal-info',\n section: 'footer'\n },\n {\n href: window.REACT_APP_PUBLIC_PORTAL_TERMS_LINK,\n titleKey: 'footer.terms',\n section: 'footer'\n }\n ],\n externalLinks: {\n travelnet: window.REACT_APP_EXTERNAL_LINK_TRAVELNET,\n eclaims: window.REACT_APP_EXTERNAL_LINK_ECLAIMS\n }\n};\n","import merge from 'lodash.merge';\n\nimport defaultConfig from './default';\nimport environmentConfig from '@environment';\n\nconst productionConfig = environmentConfig ? environmentConfig : {};\n\nexport const configuration = merge(defaultConfig, productionConfig);\n","export default {\n oidc: {\n stsAuthority: 'https://identity-dev.europ20.es',\n clientId: 'funnel.spa',\n clientRoot: 'https://localhost:3000',\n clientScope: 'openid profile email funnel.api role'\n },\n i18n: {\n languages: ['EN', 'ES', 'EU'],\n defaultLanguage: 'ES',\n namespaces: [''],\n defaultNamespace: ''\n },\n server: {\n serverUrl: 'https://funnel-dev.europ20.es',\n //serverUrl: 'https://localhost:44379',\n apiUrl: '/api',\n CMS: 'https://cms-dev.europ20.es'\n },\n gtm: {\n id: ''\n },\n debug: true,\n socialItems: [\n {\n href: 'https://www.facebook.com/EuropAssistanceES',\n iconName: 'facebook',\n iconTitle: 'Facebook'\n },\n { href: 'https://twitter.com/EA_Spain', iconName: 'twitter', iconTitle: 'Twitter' },\n {\n href: 'https://www.youtube.com/user/europassistancespain',\n iconName: 'youtube',\n iconTitle: 'YouTube'\n },\n {\n href: 'https://www.instagram.com/ea_spain/',\n iconName: 'instagram',\n iconTitle: 'Instagram'\n },\n {\n href: 'https://www.linkedin.com/company/europ-assistance',\n iconName: 'linkedin',\n iconTitle: 'LinkedIn'\n }\n ],\n publicPortalItems: [\n { href: '/ayuda', titleKey: 'private-header.funnel.help', section: 'header' },\n { href: '/sobre-nosotros', titleKey: 'private-header.funnel.about_us', section: 'header' },\n { href: '/productos', titleKey: 'private-header.funnel.products', section: 'header' },\n { href: '/contacta', titleKey: 'routesConfig.cms.contacto', section: 'header' },\n { href: '/ayuda', titleKey: 'policy-card.help', section: 'help' },\n { href: 'https://vivequetecuido.com/', titleKey: 'footer.blog', section: 'footer' },\n { href: '/contacta', titleKey: 'footer.contact', section: 'footer' },\n { href: '/prensa', titleKey: 'footer.press', section: 'footer' },\n { href: '/informacion-legal', titleKey: 'footer.legal-info', section: 'footer' },\n { href: '/terminos-y-condiciones', titleKey: 'footer.terms', section: 'footer' }\n ],\n externalLinks: {\n travelnet: 'https://testr2.europ.es/Travelnet',\n eclaims: 'https://ea.int.eclaims.europ-assistance.com'\n }\n};\n","import { IAxiosCacheAdapterOptions } from 'axios-cache-adapter';\n\nexport const VALIDATIONS = {\n SPAIN: {\n id: 'ES',\n name: 'ESPAÑA'\n },\n PORTUGAL: {\n id: 'PT',\n name: 'PORTUGAL'\n }\n};\n\nexport const LANGUAGE = {\n ES: 'ES',\n EN: 'EN',\n EU: 'EU'\n};\n\nexport const INITIAL_PAGE = 1;\nexport const ITEMS_PER_PAGE = 10;\nexport const PAGINATION_OVERFLOW_VALUE = '...';\nexport const CUSTOMER_HEADER_ID = 'CUSTOMER';\nexport const INTERMEDIARY_HEADER_ID = 'INTERMEDIARY';\n\nexport const HTTP_CACHE_MASTER_DATA: IAxiosCacheAdapterOptions = {\n maxAge: 60 * 60 * 1000 // 1 hour\n};\n\nexport const AGENT_DATA_KEY = 'agent-data';\n\nexport const BUDGET_DOCUMENT_ID = 'PRE';\n\nimport es from '../assets/images/es.svg';\nimport de from '../assets/images/de.svg';\nimport en from '../assets/images/en.svg';\nimport fr from '../assets/images/fr.svg';\nimport it from '../assets/images/it.svg';\nimport pt from '../assets/images/pt.svg';\nimport eu from '../assets/images/eu.svg';\n\nexport const getImages = (lang: string) => {\n switch (lang) {\n case 'es':\n case LANGUAGE.ES:\n return es;\n case 'de':\n case 'DE':\n return de;\n case 'en':\n case LANGUAGE.EN:\n return en;\n case 'FR':\n return fr;\n case 'IT':\n return it;\n case 'PT':\n return pt;\n case 'eu':\n case LANGUAGE.EU:\n return eu;\n default:\n return es;\n }\n};\n","import React, { useEffect } from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport { Icon } from '@generics/icon';\nimport './country-option.scss';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\ntype CountryOptionProps = {\n option: {\n description: string;\n selectable: boolean;\n ist: boolean;\n mensaje: string;\n alerta: boolean;\n };\n};\n\nconst replaceTextWithLink = (text: string, searchText: string, url: string | undefined) => {\n if (!text) return '';\n if (text.length == 0) return '';\n const parts = text.split(new RegExp(`(${searchText})`, 'gi'));\n return parts\n .map((part, index) =>\n part.toLowerCase() === searchText.toLowerCase()\n ? `${part}`\n : part\n )\n .join('');\n};\n\nconst CountryOption = ({ option }: CountryOptionProps) => {\n const { t } = useTranslation();\n const text = option.mensaje?.toString();\n const searchText = t('tooltips-text.ministry-foreign-affairs');\n const url = t('tooltips-text.ministry-foreign-affairs-url');\n\n useEffect(() => {\n ReactTooltip.rebuild();\n return () => {\n ReactTooltip.hide();\n };\n }, []);\n\n return (\n
\n
{option.description}
\n {(!option.selectable || option.mensaje?.length > 0) && (\n 0\n ? 'warningOptionTooltip'\n : 'disabledOptionTooltip'\n }\n className={classNames({\n 'requirements-country-option__icon': true,\n 'msg--error': option.ist || option.alerta,\n 'msg--warning':\n option.ist == false &&\n option.alerta == false &&\n option.mensaje?.length > 0\n })}>\n \n
\n )}\n \n );\n};\n\nexport { CountryOption };\n","import React, {\n useState,\n useEffect,\n useCallback,\n useMemo,\n FocusEventHandler,\n useRef,\n forwardRef,\n Ref,\n useImperativeHandle,\n RefAttributes,\n PropsWithoutRef\n} from 'react';\nimport { SelectField, SelectRef } from '@generics/select';\nimport { Button } from '@generics/button';\nimport { useTranslation } from 'react-i18next';\nimport { withInputLabel, InputLabelProps } from '@generics/with-input-label';\nimport { FormatOptionLabelMeta } from 'react-select';\nimport { Chip } from '@generics/chip';\nimport { useUpdateEffect } from '@hooks/use-update-effect';\n\nimport './select-multiple.scss';\n\ntype SelectMultipleProps = {\n name: string;\n placeholder?: string;\n initialValues?: T[];\n options?: T[];\n getOptionLabel?: (option: T) => string;\n getOptionValue?: (option: T) => R;\n onChange?: (values?: T[]) => void;\n orderBy?: keyof T | ((value: T) => string);\n isOptionDisabled?: (option: T) => boolean;\n formatOptionLabel?: (option: T, labelMeta: FormatOptionLabelMeta) => React.ReactNode;\n isLoading?: boolean;\n hasError?: boolean;\n disabled?: boolean;\n onBlur?: FocusEventHandler;\n autoFocus?: boolean;\n};\n\nexport type SelectMultipleRef = {\n focus: () => void;\n};\n\nconst SelectMultiple = (\n {\n name,\n placeholder,\n initialValues,\n options,\n getOptionLabel,\n getOptionValue,\n onChange,\n orderBy,\n isOptionDisabled,\n formatOptionLabel,\n isLoading,\n hasError,\n disabled = false,\n onBlur,\n autoFocus = false\n }: SelectMultipleProps,\n ref: Ref\n) => {\n const { t } = useTranslation();\n const [selectedOption, setSelectedOption] = useState(null);\n const [values, setValues] = useState(initialValues);\n const selectRef = useRef(null);\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n selectRef.current?.focus();\n }\n }));\n\n useEffect(() => {\n setValues(initialValues);\n }, [initialValues]);\n\n useUpdateEffect(() => {\n onChange?.(values);\n }, [values]);\n\n const onSelectChange = useCallback(\n (value: T) => {\n setSelectedOption(value);\n selectRef.current?.focus();\n },\n [values]\n );\n\n const checkOptionDisabled = useCallback(\n (value: T) => isOptionDisabled?.(value) || (values && values.indexOf(value) !== -1),\n [values, isOptionDisabled]\n );\n\n const onRemoveOption = useCallback(\n (option: T) => () => {\n setValues(values?.filter(v => v !== option));\n selectRef.current?.focus();\n },\n [values]\n );\n\n const getLabel = (option: T): T | string => getOptionLabel?.(option) || option;\n\n const getValue = (option: T): T | R => getOptionValue?.(option) || option;\n\n const isAddButtonDisabled = useMemo(() => !selectedOption, [selectedOption]);\n\n const onAddSelectedOption = useCallback(() => {\n if (selectedOption) {\n setValues([...(values || []), selectedOption]);\n setSelectedOption(null);\n }\n }, [selectedOption, values]);\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.keyCode === 13 && !isAddButtonDisabled) {\n e.preventDefault();\n onAddSelectedOption();\n selectRef?.current?.focus();\n }\n },\n [onAddSelectedOption, selectRef]\n );\n\n const optionsToShow = useMemo(\n () =>\n values && values.length > 0\n ? options?.filter(o => !values.some(v => getValue(o) === getValue(v)))\n : options,\n [options, values]\n );\n\n return (\n
\n
\n void}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n options={optionsToShow}\n onChange={onSelectChange}\n isOptionDisabled={checkOptionDisabled}\n isClearable={false}\n disableAutoOpenMenu={true}\n value={selectedOption}\n backspaceRemovesValue={true}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n orderBy={orderBy}\n formatOptionLabel={formatOptionLabel}\n isLoading={isLoading}\n hasError={hasError}\n isDisabled={disabled}\n onBlur={onBlur}\n />\n \n
\n {values && values.length > 0 && (\n
    \n {values?.map((v, index) => (\n \n \n \n ))}\n
\n )}\n
\n );\n};\n\nconst SelectMultipleWithRef = forwardRef(SelectMultiple) as (\n props: PropsWithoutRef> & RefAttributes\n) => React.ReactElement & RefAttributes>;\n\nconst SelectMultipleInputLabel = withInputLabel(SelectMultipleWithRef) as (\n props: SelectMultipleProps & InputLabelProps\n) => React.ReactElement & InputLabelProps>;\n\nexport { SelectMultipleWithRef as SelectMultiple, SelectMultipleInputLabel };\n","module.exports = __webpack_public_path__ + \"static/media/de.98925713.svg\";","module.exports = __webpack_public_path__ + \"static/media/en.b398ba42.svg\";","module.exports = __webpack_public_path__ + \"static/media/fr.dae4d750.svg\";","module.exports = __webpack_public_path__ + \"static/media/it.61280cdc.svg\";","module.exports = __webpack_public_path__ + \"static/media/pt.ada259b5.svg\";","module.exports = __webpack_public_path__ + \"static/media/eu.b5578f28.svg\";","enum CallStatus {\n NotCall,\n Loading,\n Error,\n Complete\n}\n\nexport type HttpState = {\n status: CallStatus;\n data?: T;\n error?: Error;\n};\n\nconst REQUEST_START: string = 'REQUEST_START';\nconst REQUEST_ERROR: string = 'REQUEST_ERROR';\nconst REQUEST_END: string = 'REQUEST_END';\n\nexport type HttpAction = {\n type: typeof REQUEST_START | typeof REQUEST_ERROR | typeof REQUEST_END;\n payload?: T;\n error?: Error;\n};\n\nconst isInitializingOrLoading = (state: HttpState): boolean =>\n state.status === CallStatus.NotCall || state.status === CallStatus.Loading;\n\nconst isNotCall = (state: HttpState): boolean => state.status === CallStatus.NotCall;\nconst isLoading = (state: HttpState): boolean => state.status === CallStatus.Loading;\nconst isError = (state: HttpState): boolean => state.status === CallStatus.Error;\nconst isComplete = (state: HttpState): boolean => state.status === CallStatus.Complete;\n\nexport {\n isInitializingOrLoading,\n isNotCall,\n isLoading,\n isComplete,\n isError,\n CallStatus,\n REQUEST_START,\n REQUEST_END,\n REQUEST_ERROR\n};\n","import { LANGUAGE } from './constants';\nimport i18next, { TFunction } from 'i18next';\nimport { AllowedLanguages } from '@services/models/language-model';\n\nexport const isSpanishLang = (lang: string) => {\n return lang === LANGUAGE.ES;\n};\n\nexport const isBasqueLang = (lang: string) => {\n return lang === LANGUAGE.EU;\n};\n\nexport const getLanguage = () => i18next.language || window.localStorage.i18nextLng;\n\nexport const withTranslate = (t: TFunction, fieldName: keyof T, data: T[]): T[] =>\n data.map((row: T) => ({\n ...row,\n [fieldName]: t((row[fieldName] as unknown) as string)\n }));\n\nexport const getUserLang = () => {\n const lang = localStorage.getItem('i18nextLng');\n return lang ? lang : 'ES';\n};\n\nexport const setUserLang = (lang: string): void => {\n if (localStorage.getItem('i18nextLng') === lang) return;\n localStorage.setItem('i18nextLng', lang);\n i18next.changeLanguage(lang);\n window.location.reload();\n};\n\nexport const setAllowedAgencyLang = (lang: AllowedLanguages[]): void => {\n if (lang != []) {\n const json = JSON.stringify(lang);\n localStorage.setItem('AllowedLanguages', json);\n }\n};\n\nexport const getAllowedAgencyLang = () => {\n const json = localStorage.getItem('AllowedLanguages');\n if (json == null) {\n return [\n { id_idioma: LANGUAGE.ES, permite_traduccion: true },\n { id_idioma: LANGUAGE.EN, permite_traduccion: true },\n { id_idioma: LANGUAGE.EU, permite_traduccion: true }\n ];\n }\n return JSON.parse(json);\n};\nexport const getLanguageDescriptive = (value: string) => {\n if (value == LANGUAGE.ES) return 'Español';\n if (value == LANGUAGE.EN) return 'English';\n if (value == LANGUAGE.EU) return 'Euskara';\n return 'Español';\n};\n","import React, { forwardRef, Ref } from 'react';\nimport classNames from 'classnames';\nimport { Icon } from '@generics/icon';\n\nenum ButtonKind {\n primary,\n secondary,\n tertiary,\n round\n}\n\nenum ButtonSize {\n default,\n m,\n l,\n xs,\n xxs\n}\n\nconst kindStyle = {\n primary: 'ea-button--primary',\n secondary: 'ea-button--secondary',\n tertiary: 'ea-button--tertiary',\n quaternary: 'ea-button--quaternary',\n quinary: 'ea-button--quinary',\n ghost: 'ea-button--ghost'\n};\n\nconst sizeStyle = {\n default: 'size--m',\n l: 'size--l',\n m: 'size--m',\n s: 'size--s',\n xs: 'size--xs',\n xxs: 'size--xxs'\n};\n\nconst shapeStyle = {\n round: 'ea-button--round'\n};\n\nconst iconPosition = {\n left: 'icon--left'\n};\n\nconst structureClass = {\n buttonClass: 'ea-button-component effect--ripple',\n value: 'ea-button__value',\n wide: 'width-100'\n};\n\ntype ButtonProps = {\n className?: string;\n value: string;\n kind?: 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'quinary' | 'ghost';\n onClick?: (ev: React.MouseEvent) => void;\n type: 'submit' | 'reset' | 'button';\n disabled?: boolean;\n round?: boolean;\n wide?: boolean;\n icon?: string;\n iconLeft?: boolean;\n size?: 'default' | 'xxs' | 'xs' | 's' | 'm' | 'l';\n} & T;\n\nconst Button = (\n {\n icon,\n iconLeft,\n round,\n wide,\n className,\n kind,\n size,\n type,\n disabled,\n onClick,\n value,\n ...restProps\n }: ButtonProps,\n ref: Ref\n) => {\n return (\n \n {value}\n {icon && }\n \n );\n};\n\nconst ButtonRef = forwardRef(Button);\n\nexport { ButtonRef as Button, ButtonKind, ButtonSize };\n","type AddToDateParams = {\n years?: number;\n months?: number;\n days?: number;\n};\n\nexport const getFormattedDate = (date: Date, language = 'es') =>\n date\n ? new Date(date).toLocaleDateString(language, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n })\n : null;\n\nexport const getFormattedDateHour = (date: Date, language = 'es') =>\n date\n ? new Date(date).toLocaleDateString(language, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: '2-digit'\n })\n : null;\n\nexport const dateToIsoDate = (date: Date): Date => {\n const utcDate = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n return new Date(Date.UTC(utcDate.getFullYear(), utcDate.getUTCMonth(), utcDate.getUTCDate()));\n};\n\nexport const isDate18orMoreYearsOld = (date: Date) => {\n return new Date(date.getFullYear() + 18, date.getMonth(), date.getDate()) <= new Date();\n};\n\nexport const currentDate1MonthLess = () => {\n const current = new Date();\n return new Date(current.getFullYear(), current.getMonth() - 1, current.getDate());\n};\n\nexport const isDate1YearLess = (date: Date) => {\n const current = new Date();\n return new Date(current.getFullYear() - 1, current.getMonth(), current.getDate()) <= date;\n};\n\nexport const currentDate1YearLess = () => {\n const current = new Date();\n return new Date(current.getFullYear() - 1, current.getMonth(), current.getDate());\n};\n\nexport const compareDate1YearLess = (from: Date, to: Date) => {\n if (!from || !to) return true;\n\n return (\n new Date(to.getFullYear() - 1, to.getMonth(), to.getDate()) <= from &&\n new Date(from.getFullYear() + 1, from.getMonth(), from.getDate()) >= to\n );\n};\n\nexport const addToDate = (date: Date, { years, months, days }: AddToDateParams): Date => {\n const current = date;\n return new Date(\n current.getFullYear() + (years || 0),\n current.getMonth() + (months || 0),\n current.getDate() + (days || 0)\n );\n};\n\nexport const addToCurrentDate = (params: AddToDateParams): Date => {\n return addToDate(new Date(), params);\n};\n\nexport const getDaysBetweenDates = (date1: Date, date2: Date): number => {\n const oneDay = 24 * 60 * 60 * 1000;\n const firstDate = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const secondDate = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return Math.round(Math.abs((+firstDate - +secondDate) / oneDay));\n};\n\nexport const getAge = (date: Date): number => {\n const diff_ms = Date.now() - date.getTime();\n const age_dt = new Date(diff_ms);\n return Math.abs(age_dt.getUTCFullYear() - 1970);\n};\n","import { User } from 'oidc-client';\nimport { getIntermediariesLegal } from '@services/intermediary-service';\n\nexport type AuthInfo = {\n user?: AuthUser;\n hasData?: boolean;\n};\n\nexport type RoleType = 'customer' | 'intermediary';\n\nexport type AuthUser = {\n email?: string;\n username?: string;\n role?: RoleType;\n};\n\nconst getAuthorizationHeaderValue = (user?: User): string =>\n user ? `${user.token_type} ${user.access_token}` : '';\n\nconst getUserRole = (user?: User): RoleType | undefined => {\n const role = user?.profile?.role;\n return typeof role === 'string' ? (role.toLowerCase() as RoleType) : undefined;\n};\n\nconst mapUser = (user?: User): AuthUser | undefined =>\n user\n ? {\n email: user?.profile?.email,\n username: user?.profile?.name,\n role: getUserRole(user)\n }\n : undefined;\n\nconst isCustomerArea = (user?: AuthUser) => user?.role === 'customer';\nconst isIntermediary = (user?: AuthUser) => user?.role === 'intermediary';\n\nlet intermediariesLegalList: string[] = [];\nconst initializeIntermediariesLegalList = async () => {\n const result = await getIntermediariesLegal();\n intermediariesLegalList = result.data.value as string[];\n};\ninitializeIntermediariesLegalList();\n\nconst isLegal = (user?: AuthUser): boolean => {\n if (!user?.username) {\n return false;\n }\n return intermediariesLegalList.includes(Number(user?.username).toString());\n};\n\nexport {\n getAuthorizationHeaderValue,\n getUserRole,\n mapUser,\n isCustomerArea,\n isIntermediary,\n isLegal\n};\n","import { UserManager, Log, User, UserManagerSettings } from 'oidc-client';\n\ntype EventsConfigCallback = (\n onUserLoaded: (user: User) => void,\n onUserUnloaded: () => void,\n onError: (error: Error) => void,\n onAccessTokenExpiring: () => void,\n onAccessTokenExpired: () => void\n) => void;\n\nexport type AuthService = Readonly<{\n authenticateUser: (\n showRegistryArea: boolean,\n loginHeaderId: string,\n redirectToRegisterPage?: boolean\n ) => Promise;\n authenticateUserCallback: () => Promise;\n signOutUser: () => Promise;\n signInSilent: () => Promise;\n completeSignInSilent?: () => Promise;\n registerEvents: EventsConfigCallback;\n unregisterEvents: EventsConfigCallback;\n tryLoadUser: () => Promise;\n revokeAccessToken: () => Promise;\n}>;\n\nconst AuthServiceFactory = (userManagerSettings: UserManagerSettings, debug: boolean) => {\n const userManager = new UserManager(userManagerSettings);\n\n Log.logger = console;\n Log.level = debug ? Log.INFO : Log.ERROR;\n\n const signInRedirect = async (\n showRegisterArea: boolean,\n loginHeaderId: string,\n redirectToRegisterPage: boolean = false\n ): Promise => {\n await userManager.revokeAccessToken();\n await userManager.clearStaleState();\n await userManager.signinRedirect({\n extraQueryParams: {\n showRegisterArea,\n loginHeaderId,\n redirectToRegisterPage\n }\n });\n };\n\n const signInSilent = async (): Promise => {\n await userManager.signinSilent();\n };\n\n const signInSilentCallback = async (): Promise => {\n await userManager.signinSilentCallback();\n };\n\n const authenticateUser = async (\n showRegisterArea: boolean,\n loginHeaderId: string,\n redirectToRegisterPage: boolean = false\n ): Promise => {\n const user = await userManager.getUser();\n if (!user) {\n await signInRedirect(showRegisterArea, loginHeaderId, redirectToRegisterPage);\n } else {\n try {\n await signInSilent();\n } catch (error) {\n await signInRedirect(showRegisterArea, loginHeaderId, redirectToRegisterPage);\n }\n }\n };\n\n const authenticateUserCallback = async (): Promise => {\n await userManager.signinRedirectCallback();\n };\n\n const signOutUser = async (): Promise => {\n await userManager.clearStaleState();\n await userManager.signoutRedirect();\n };\n\n const registerEvents = (\n onUserLoaded: (user: User) => void,\n onUserUnloaded: () => void,\n onError: (error: Error) => void,\n onAccessTokenExpiring: () => void,\n onAccessTokenExpired: () => void\n ): void => {\n userManager.events.addUserLoaded(onUserLoaded);\n userManager.events.addSilentRenewError(onError);\n userManager.events.addUserUnloaded(onUserUnloaded);\n userManager.events.addUserSignedOut(onUserUnloaded);\n userManager.events.addAccessTokenExpiring(onAccessTokenExpiring);\n userManager.events.addAccessTokenExpired(onAccessTokenExpired);\n };\n\n const unregisterEvents = (\n onUserLoaded: (user: User) => void,\n onUserUnloaded: () => void,\n onError: (error: Error) => void,\n onAccessTokenExpiring: () => void,\n onAccessTokenExpired: () => void\n ): void => {\n userManager.events.removeUserLoaded(onUserLoaded);\n userManager.events.removeSilentRenewError(onError);\n userManager.events.removeUserUnloaded(onUserUnloaded);\n userManager.events.removeUserSignedOut(onUserUnloaded);\n userManager.events.removeAccessTokenExpiring(onAccessTokenExpiring);\n userManager.events.removeAccessTokenExpired(onAccessTokenExpired);\n };\n\n const tryLoadUser = async (): Promise => {\n const user = await userManager.getUser();\n if (user && !user.expired) {\n userManager.events.load(user);\n return true;\n }\n return false;\n };\n\n const revokeAccessToken = async (): Promise => {\n await userManager.revokeAccessToken();\n };\n\n return Object.freeze({\n authenticateUser,\n authenticateUserCallback,\n signOutUser,\n signInSilent,\n signInSilentCallback,\n registerEvents,\n unregisterEvents,\n tryLoadUser,\n revokeAccessToken\n });\n};\n\nexport { AuthServiceFactory };\n","import { AuthProviderState } from '@context/auth/auth-context';\nimport { mapUser } from '@services/auth/auth-types';\nimport { User } from 'oidc-client';\n\nexport type AuthProviderAction =\n | { type: 'ON_LOADING' | 'LOAD_COMPLETED' | 'UNLOAD_USER' }\n | { type: 'LOAD_USER'; user: User };\n\nexport const AuthProviderReducer = (\n state: AuthProviderState,\n action: AuthProviderAction\n): AuthProviderState => {\n switch (action.type) {\n case 'ON_LOADING':\n return { ...state, isLoading: true };\n case 'LOAD_COMPLETED':\n return { ...state, isLoading: false };\n case 'LOAD_USER': {\n const { user } = action;\n return {\n ...state,\n user: mapUser(user),\n isLoading: false\n };\n }\n case 'UNLOAD_USER':\n return {\n ...state,\n user: undefined,\n isLoading: false\n };\n }\n};\n","import React, {\n useEffect,\n useReducer,\n useMemo,\n useContext,\n useCallback,\n PropsWithChildren\n} from 'react';\nimport { AuthServiceFactory } from '@services/auth/auth-service';\nimport { AuthUser, getAuthorizationHeaderValue } from '@services/auth/auth-types';\nimport { AuthProviderReducer } from '@context/auth/auth-provider-reducer';\nimport { User, UserManagerSettings } from 'oidc-client';\nimport { setAuthToken } from '@services/http';\nimport { useHistory } from 'react-router-dom';\nimport { LoginState } from '@modules/app/login';\nimport { trackException } from '@services/exceptions/track-service';\nimport { routesConfig } from '@routes/routes-config';\n\ntype AuthContextProps = {\n isLoading: boolean;\n user?: AuthUser;\n};\n\ntype AuthContextActionsProps = {\n goLoginPage: (showRegistryArea: boolean, loginHeaderId: string) => Promise;\n login: (\n showRegistryArea: boolean,\n loginHeaderId: string,\n redirectUri?: string\n ) => Promise;\n goLogoutPage: () => void;\n logout: () => Promise;\n completeLogin: () => Promise;\n completeSilentRenewToken: () => Promise;\n initialize: (loadUser: boolean) => void;\n register: (showRegistryArea: boolean, loginHeaderId: string, redirectUri?: string) => void;\n signinSilent: () => Promise;\n};\n\ntype AuthProviderProps = {\n authConfiguration: UserManagerSettings;\n debug: boolean;\n};\n\nconst AuthContext = React.createContext>({}) as React.Context<\n AuthContextProps\n>;\n\nconst AuthContextActions = React.createContext>(\n {}\n) as React.Context;\n\nexport type AuthProviderState = AuthContextProps;\n\nconst AuthProvider = ({\n children,\n authConfiguration,\n debug\n}: PropsWithChildren) => {\n const history = useHistory();\n const authService = useMemo(() => AuthServiceFactory(authConfiguration, debug), [\n authConfiguration,\n debug\n ]);\n\n const [state, dispatch] = useReducer(AuthProviderReducer, {\n isLoading: true\n });\n\n useEffect(() => {\n if (!state.isLoading && state.user) {\n let redirect = sessionStorage.getItem('auth:redirect');\n if (redirect) {\n if (redirect === routesConfig.funnel.paymentSuccess) {\n redirect = routesConfig.customerArea.policies;\n }\n sessionStorage.removeItem('auth:redirect');\n history.push(redirect);\n }\n }\n }, [state.user, state.isLoading]);\n\n const goLoginPage = useCallback(\n async (showRegistryArea: boolean, loginHeaderId: string): Promise => {\n history.push(routesConfig.oidc.login, {\n showRegistryArea,\n loginHeaderId,\n previousPath: history.location.pathname\n } as LoginState);\n },\n []\n );\n\n const goLogoutPage = useCallback(() => {\n history.push(routesConfig.oidc.logout);\n }, []);\n\n const login = useCallback(\n async (\n showRegistryArea: boolean,\n loginHeaderId: string,\n redirectUri?: string\n ): Promise => {\n dispatch({ type: 'ON_LOADING' });\n sessionStorage.setItem(\n 'auth:redirect',\n redirectUri ? redirectUri : window.location.pathname\n );\n await authService.authenticateUser(showRegistryArea, loginHeaderId);\n },\n [authService]\n );\n\n const completeLogin = useCallback(async (): Promise => {\n await authService.authenticateUserCallback();\n }, [authService]);\n\n const completeSilentRenewToken = useCallback(async (): Promise => {\n await authService.signInSilentCallback();\n }, [authService]);\n\n const logout = useCallback(async (): Promise => {\n setAuthToken('');\n await authService.signOutUser();\n }, [authService]);\n\n const onUserLoaded = useCallback((user: User): void => {\n setAuthToken(getAuthorizationHeaderValue(user));\n dispatch({ type: 'LOAD_USER', user });\n }, []);\n\n const onUserUnloaded = useCallback(async (): Promise => {\n setAuthToken('');\n dispatch({ type: 'UNLOAD_USER' });\n await authService.revokeAccessToken();\n }, [authService]);\n\n const onError = useCallback((error: Error): void => {\n dispatch({ type: 'LOAD_COMPLETED' });\n trackException(error);\n }, []);\n\n const onAccessTokenExpiring = useCallback(async (): Promise => {\n try {\n await authService.signInSilent();\n } catch (err) {\n trackException(err as Error);\n }\n }, [authService]);\n\n const onAccessTokenExpired = useCallback(async (): Promise => {\n setAuthToken('');\n dispatch({ type: 'UNLOAD_USER' });\n }, [authService]);\n\n useEffect(() => {\n authService.registerEvents(\n onUserLoaded,\n onUserUnloaded,\n onError,\n onAccessTokenExpiring,\n onAccessTokenExpired\n );\n return () =>\n authService.unregisterEvents(\n onUserLoaded,\n onUserUnloaded,\n onError,\n onAccessTokenExpiring,\n onAccessTokenExpired\n );\n }, [\n authService,\n onUserLoaded,\n onUserUnloaded,\n onError,\n onAccessTokenExpiring,\n onAccessTokenExpired\n ]);\n\n const initialize = useCallback(\n async (loadUser: boolean = true): Promise => {\n dispatch({ type: 'ON_LOADING' });\n if (loadUser && !state.user) {\n const userLoaded = await authService.tryLoadUser();\n if (!userLoaded) {\n dispatch({ type: 'LOAD_COMPLETED' });\n }\n } else {\n dispatch({ type: 'LOAD_COMPLETED' });\n }\n },\n [authService, state.user]\n );\n\n const register = useCallback(\n async (showRegistryArea: boolean, loginHeaderId: string, redirectUri?: string) => {\n dispatch({ type: 'ON_LOADING' });\n sessionStorage.setItem(\n 'auth:redirect',\n redirectUri ? redirectUri : window.location.pathname\n );\n await authService.authenticateUser(showRegistryArea, loginHeaderId, true);\n },\n [authService]\n );\n\n const signinSilent = useCallback(async () => {\n await authService.signInSilent();\n }, [authService]);\n\n const actionsValue = useMemo(\n () => ({\n goLoginPage,\n login,\n goLogoutPage,\n logout,\n completeLogin,\n completeSilentRenewToken,\n initialize,\n register,\n signinSilent\n }),\n [\n goLoginPage,\n login,\n goLogoutPage,\n logout,\n completeLogin,\n completeSilentRenewToken,\n initialize,\n register,\n signinSilent\n ]\n );\n\n return (\n \n {children}\n \n );\n};\n\nconst AuthConsumer: React.ExoticComponent> =\n AuthContext.Consumer;\n\nconst useAuthContext = () => useContext(AuthContext);\nconst useAuthContextActions = () => useContext(AuthContextActions);\n\nexport { AuthProvider, AuthConsumer, useAuthContext, useAuthContextActions };\n","import React, { FunctionComponent } from 'react';\nimport classNames from 'classnames';\n\nexport enum IconSize {\n xxs,\n xs,\n s,\n m,\n xm,\n xxm,\n l,\n xl,\n xxl,\n xxxl\n}\n\nconst iconSize = {\n xxs: 'size--xxs',\n xs: 'size--xs',\n s: 'size--s',\n m: 'size--m',\n xm: 'size--xm',\n xxm: 'size--xxm',\n l: 'size--l',\n xl: 'size--xl',\n xxl: 'size--xxl',\n xxxl: 'size--xxxl'\n};\n\nexport type IconProps = {\n className?: string;\n name: string;\n title?: string;\n size?: 'xxs' | 'xs' | 's' | 'm' | 'xm' | 'xxm' | 'l' | 'xl' | 'xxl' | 'xxxl';\n};\n\nconst Icon: FunctionComponent = (props: IconProps) => {\n return (\n \n \n {props.title}\n \n \n \n );\n};\n\nexport { Icon, iconSize };\n","import React, { ReactChild } from 'react';\nimport { BrowserRouter } from 'react-router-dom';\nimport { useRouterContext } from '@context/router/router-context';\n\ntype CustomBrowserRouterProps = {\n children: ReactChild;\n};\n\nconst AppBrowserRouter = ({ children }: CustomBrowserRouterProps) => {\n const { setUserConfirmationCallback } = useRouterContext();\n return (\n setUserConfirmationCallback?.(callback)}>\n {children}\n \n );\n};\n\nexport { AppBrowserRouter };\n","import { UserManagerSettings, WebStorageStateStore } from 'oidc-client';\nimport { configuration } from '@configuration';\nimport { routesConfig } from '@routes/routes-config';\n\nconst {\n oidc: { stsAuthority, clientId, clientRoot, clientScope }\n} = configuration;\n\nconst authConfiguration: UserManagerSettings = {\n authority: stsAuthority,\n client_id: clientId,\n redirect_uri: `${clientRoot}${routesConfig.oidc.signinCallback}`,\n silent_redirect_uri: `${clientRoot}${routesConfig.oidc.silentRenew}`,\n post_logout_redirect_uri: `${clientRoot}`,\n response_type: 'code',\n scope: clientScope,\n automaticSilentRenew: true,\n userStore: new WebStorageStateStore({ store: window.localStorage })\n};\n\nexport { authConfiguration };\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"var(--blue-color, #e4002b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.1 1.5c-3.6-.4-7 .2-8.4 1.2l-.1.1s5.4-.7 9.5 1.7 3.9 6.6 2.6 9.4c-1.3 2.8-4.6 6-4.6 6s-4.3 4.2-5.6 6.6-1.4 5.1-.2 6.1c3.6 3.4 14.4 1.4 18.4-.1 1.3-1.8 4.1-9.7 2.7-17.1-1.1-7.5-6.2-13.3-14.3-13.9zM65.2 69.9c-.3.7-.8 1.4-1.6 2.1-.8.7-1.5 1-2.1 1s-.9-.2-.9-.7c0-.4.1-.8.2-1.3s.2-.8.3-.9c0 0 .3.3 1 .5.7-.1 1.4-.5 2-1.4.4-.7.7-1.4.7-2 0-.2-.1-1-.8-1-.8 0-1.7.7-2.7 2.1-.9 1.3-1.4 2.4-1.4 3.3 0 .6.1 1.1.4 1.5.3.4.7.6 1.3.6.8 0 1.5-.4 2.3-1 .8-.7 1.4-1.5 1.7-2.5.2-.5-.4-.3-.4-.3zm-2-2.8c.2-.2.4-.3.6-.4.2-.1.3 0 .2.2 0 .5-.3 1.1-.8 1.8s-1 1-1.5 1c-.3 0-.4 0-.4-.1 0-.2.7-1 1.9-2.5zM91.6 69.9c-.3.7-.8 1.4-1.6 2.1s-1.5 1-2.1 1c-.6 0-.9-.2-.9-.7 0-.4 0-.8.2-1.3.1-.5.2-.8.3-.9 0 0 .3.3 1 .5.7-.1 1.4-.5 2-1.4.5-.7.7-1.4.7-2 0-.2-.1-.4-.2-.6-.1-.3-.3-.4-.6-.4-.8 0-1.7.7-2.7 2.1-.9 1.3-1.4 2.4-1.4 3.3 0 .6.1 1.1.4 1.5.3.4.7.6 1.3.6.8 0 1.5-.4 2.3-1 .8-.7 1.4-1.5 1.7-2.5.2-.5-.4-.3-.4-.3zm-2-2.8c.2-.2.4-.3.6-.4.2-.1.3 0 .2.2 0 .5-.3 1.1-.8 1.8s-1 1-1.5 1c-.3 0-.4 0-.4-.1 0-.2.7-1 1.9-2.5zM74 66.3c-.4-.1-.6-.2-.8-.2-1 0-2 .7-2.9 2.2-.8 1.3-1.2 2.3-1.2 3.2 0 .6.1 1 .4 1.4.3.5.8.7 1.4.7.3 0 .8 0 1.6-.5.1 0 1-.5 2-2.1 0-.1-.1-.4-.3-.4 0 0-.1 0-.1.1-.4.6-.9 1.1-1.5 1.5-.6.4-1.3.6-1.9.6-.6 0-.9-.3-.9-1.1 0-.7.3-1.6 1-2.8.7-1.3 1.5-2 2.2-2 .2 0 .4.1.6.3.2.2.4.3.5.3.4-.1.5-.3.6-.5 0-.3-.3-.5-.7-.7zM86.4 67.1c.1.1.1.1.2.1.2 0 .4-.2.3-.5-.1-.5-.4-.8-1-.8-.9 0-1.7.9-2.4 2.8 0-.4.1-.9.3-1.5 0-.1 0-.3-.1-.4-.1-.2-.2-.3-.4-.3-.3.1-.5.5-.5.6.1 1 .2 2 .2 2.8 0 .8-.1 1.8-.2 3-.1.5.1.8.4.8.1 0 .5-.2.5-.5-.1-1-.1-1.5-.1-1.5 0-.8.1-1.6.3-2.2s.6-1.3 1.1-2c.4-.6.8-.9 1.1-.9.1 0 .2.1.2.2 0 0 .1.2.1.3zM57.7 65.7c-.3 0-.5.2-.6.4-.1.2 0 .4.1.5.2.1.4 0 .5-.1.4.5.5 2 .5 2.5 0 1.2-.3 2.2-.6 3-.4.8-.8 1.1-1.2 1.1-.1 0-.8-.1-1.2-1-.2-.5-.3-1.1-.3-1.8 0-.9.1-1.9.3-2.9.1-.5-.5-.4-.6-.4-.2 0-.3.2-.5.6-.1.5-.2.8-.3 1.1-.3.8-.6 1.6-1 2.4-.6 1.2-1.1 1.8-1.4 1.8-.1 0-.2-.4-.1-1.1 0-.6.3-2 .6-3.7.1-.5-.1-.7-.4-.7s-.5.5-.7 1.4c-.1 1.1-.2 2.1-.2 2.7 0 .4 0 .8.1 1.2.2.7.4 1 .8 1 .5 0 1.1-.8 1.8-2.3.3-.8.6-1.4.8-1.9-.1 1.4.1 2.3.3 2.9.5 1.2 1.6 1.4 1.9 1.4.8 0 1.4-.7 1.8-1.5.4-.9.7-2 .7-3.3.1-.7 0-2.2-.4-2.8-.1-.2-.3-.5-.7-.5zM81.3 71.7c-.2 0-.4.1-.4.4-.1.2-.4.2-.5.2-.3-.1-.4-.4-.4-1 0-.3.1-1.3.4-2.8.1-.4-.1-.5-.4-.5s-.3.1-.4.3c-.1.2-.2.9-.3 1.6-.8 1.2-1.4 2-1.9 2.5s-.8.6-.9.6c-.2 0-.3-.6-.2-1 0-1.2.4-3 .9-3.8.5-.9 1-1.2 1.5-1.2s.8.3.9.7c0 .2.2.3.4.3s.3-.2.3-.4c-.1-.8-.8-1.3-1.6-1.3s-1.6.5-2.1 1.6c-.5 1-.9 2.8-.9 4.2 0 .4 0 .8.2 1.1.1.3.4.6.8.6.5 0 .9-.3 1.4-.9.4-.4.8-.9 1.3-1.6.1.9.3 1.4.8 1.6.1.1 1 .3 1.4-.6-.1-.2 0-.5-.3-.6z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"var(--blue-color, #00239C)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7 38.8c3.6.4 7-.2 8.4-1.2 0 .1-11.3 1-12.8-6.2-.7-3.5 1.9-7.4 4.6-10.1 2.7-2.7 5.2-5.6 5.2-5.6 4.4-5.8 1.3-8.1 1.3-8.1-2.6-2.3-8.8-1.7-8.8-1.7-5.8.4-9.5 1.9-9.5 1.9C1.7 9.6-1 17.5.4 24.9c1.2 7.5 6.2 13.2 14.3 13.9z\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 31.7,\n cy: 41.5,\n rx: 1.8,\n ry: 1.6\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.2 53.1c0-3.6-4.2-3.5-4.3-5 0-.6.4-1.2 1.4-1.2.8.1 1.5.4 1.9.6l.7-2s-1.3-.8-3.4-.8c-2.4.1-4.1 1.6-4 3.6.2 3.6 4.2 3.2 4.2 4.9 0 .8-.6 1.3-1.5 1.3-1.3-.1-2.2-.6-2.2-.6l-.8 2c.8.4 2.1.8 3.5.8 2.8 0 4.5-1.6 4.5-3.6zM37.8 54.5c-1.2-.1-2.1-.6-2.1-.6l-.8 2c.8.4 2.1.8 3.5.8 2.8 0 4.5-1.6 4.3-3.6 0-3.6-4.2-3.5-4.3-5 0-.6.4-1.2 1.4-1.2.8.1 1.5.4 1.9.6l.7-2s-1.3-.8-3.4-.8c-2.3.1-4 1.6-3.9 3.6.2 3.6 4.2 3.2 4.2 4.9 0 .8-.6 1.3-1.5 1.3zM19.6 53.1c0-3.6-4.2-3.5-4.3-5 0-.6.4-1.2 1.4-1.2.8.1 1.5.4 1.9.6l.7-2s-1.3-.8-3.4-.8c-2.4.1-4.1 1.6-4 3.6.2 3.6 4.2 3.2 4.2 4.9 0 .8-.6 1.3-1.5 1.3-1.3-.1-2.2-.6-2.2-.6l-.8 2c.8.4 2.1.8 3.5.8 2.8 0 4.5-1.6 4.5-3.6zM47.7 41.5l-3.3.9v10.9c0 1.8 1 3.4 3.4 3.4.8 0 1.6-.2 1.9-.3v-2.1c-.2.1-.6.1-.9.1-.8-.1-1.1-.5-1.1-1.4v-6h2v-2.2h-2v-3.3zM55.9 44.5c-2.4 0-4.1.9-4.1.9l.5 2.1s1.6-.7 3-.7c1.2 0 1.8.3 1.8 1.5v.5c-3.3.3-6.2 1.2-6.2 4.2 0 2.5 1.8 3.7 5 3.7 1.9 0 3.6-.5 4.5-1.3v-6.7c0-3.1-2-4.2-4.5-4.2zm1.2 10.2c-.3.1-.5.2-1 .2-1.1 0-1.9-.6-1.9-2 0-1.6 1-2.3 2.9-2.5v4.3zM66.9 44.6c-1.6 0-3.2.4-4.5 1v10.9h3.3V47c.4-.1.8-.2 1.1-.2 1.3 0 1.7.8 1.7 1.6v8.1h3.3v-8.2c0-2.1-1.3-3.7-4.9-3.7zM85.6 52l6.4-1c.1-4-1.5-6.3-4.7-6.3s-5.2 2.4-5.2 6c0 3.7 2.1 6.1 5.5 6.1 1.5 0 2.6-.3 3.9-.8v-2.4c-1.3.6-2.3.9-3.5.9-1.6 0-2.2-.8-2.4-2.5zm1.6-5.4c1.2 0 1.9.9 1.9 3l-3.7.6c-.1-2.4.5-3.6 1.8-3.6zM79.5 54.3c-1.5 0-2.7-1.3-2.7-3.7 0-2.4 1.1-3.7 2.7-3.7.7 0 1.2.3 1.5.5l.7-2c-.5-.4-1.6-.8-3.1-.8-2.8 0-5.2 2.1-5.2 6s2.3 6.1 5.3 6.1c1.3 0 2.6-.3 3.1-.9l-.8-2c-.3.3-.8.5-1.5.5zM.8 53c0 2.5 1.8 3.7 5 3.7 1.9 0 3.6-.5 4.5-1.3v-6.7c0-3.1-2-4.2-4.5-4.2s-4.1.9-4.1.9l.5 2.1s1.6-.7 3-.7c1.2 0 1.8.3 1.8 1.5v.5C3.7 49.1.8 50 .8 53zM7 54.7c-.3.1-.5.2-1 .2-1.1 0-1.9-.6-1.9-2 0-1.6 1-2.3 2.9-2.5v4.3zM30 44.9h3.3v11.6H30zM66.2 27.9c0-.9.5-1.5 1.6-1.6h.8l.4-2.2c-.5-.1-.9-.1-1.3-.1-3.4 0-5 1.2-5 4.1v8.1h3.5v-8.3zM57.2 33.9c-.3.2-.8.3-1.4.3-1.1 0-1.6-.7-1.6-1.6v-8.3h-3.5v8c0 2.8 1.6 4.1 5 4.1 1.7 0 3.8-.5 5-.9V24.4h-3.5v9.5zM74.3 36.4c3.5 0 5.3-2.6 5.2-6.2 0-3.6-1.8-6.2-5.3-6.2-3.4 0-5.2 2.6-5.2 6.2s1.8 6.2 5.3 6.2zm0-10.2c1.5 0 1.8 1.8 1.8 4s-.3 3.9-1.8 3.9-1.8-1.7-1.8-3.9c0-2.1.3-4 1.8-4zM84.8 36.1c.3.1 1 .2 1.7.2 3.1 0 5.2-2.3 5.3-6.2 0-4-2.3-6.1-5.9-6.1-2.2 0-3.6.4-4.6.9v15.2h3.5v-4zm-.1-9.9c.3-.1.6-.2 1.1-.2 1.9 0 2.5 1.5 2.5 4.2s-.9 4.1-2.7 4.1c-.4 0-.7-.1-.9-.2v-7.9zM44.6 36.4c1.6 0 2.7-.3 4-.8v-2.5c-1.3.6-2.4.9-3.6.9-1.7 0-2.3-.9-2.6-2.6l6.7-1c.2-4-1.6-6.4-4.9-6.4-3.4 0-5.4 2.4-5.4 6.2 0 4.1 2.2 6.2 5.8 6.2zM44 26c1.2 0 1.9.9 1.9 3.1l-3.8.6c-.1-2.4.6-3.7 1.9-3.7zM13.3 66.1c-.3 0-.5.1-.9.3-.3.1-.6.3-.7.5-.7-.1-1.1.6-1.6 1.7s-.7 2.2-.7 3.1c.1 2.3 1.8 2.1 2 2.1 1-.1 1.8-.9 2.6-2.3.7-1.2 1-2.3 1-3 0 0 .1-2.5-1.7-2.4zm-.5 4.9c-.7 1.2-1.3 1.8-1.9 1.8-.5 0-.5-.7-.5-1.2 0-1.1.5-2.2 1.4-3.4.2-.3.3-.4.4-.6.3-.3.7-.5 1-.5.1 0 .5.1.5 1.3 0 .6-.3 1.5-.9 2.6zM21.9 71.8l-.3.3c-.1.2-.2.2-.3.2-.2 0-.4-.2-.5-.6-.1-.5-.2-1.2-.2-2.1 0-.5.1-1 .2-1.5s.2-.8.2-.9c.1-.2-.1-.6-.6-.6-.6 0-.7.7-.7.9 0 .5-.3 1.3-.8 2.3-.4.9-.9 1.7-1.4 2.3-.5.6-.8.8-.9.8 0 0-.1-.2-.1-.6 0-.7.3-2.2 1.1-4.2 0 0 .2-.5.2-.7 0-.4-.5-.6-.7-.6-.3 0-.4.3-.6.7s-.4 1-.6 1.8c-.3 1.4-.5 2.2-.5 2.6 0 1.6.7 1.8.8 1.9 0 0 1.1.1 2.2-1.6.2-.3.5-.9 1-1.9.1.8.3 1.4.5 1.9.3.6.8.9 1.3.9.2 0 .4-.1.7-.2.3-.2.5-.4.5-.7-.1-.2-.2-.3-.3-.4h-.2zM31.7 63.8c-.3.5-.1.8 0 .9.1.2.3.2.5.2s.4-.1.5-.2c.1-.1.4-.6 0-1s-.9-.1-1 .1zM32.3 72.6c-.2.2-.3.2-.3.2s-.3.1-.5-.6c-.1-.3-.6-1.6.1-4.1 0 0 .3-.7.3-.9 0-.6-.4-.6-.6-.6-.3 0-.5.2-.6.5-.5 1.1-.6 2.8-.6 3.3 0 .6.1 1.2.3 1.8.3.9.8 1.4 1.5 1.4.2 0 1-.2.9-.8 0-.3-.4-.3-.5-.2zM44.7 69.7c-.1 0-.2 0-.2.1-.3.7-.8 1.3-1.6 2s-1.5 1-2 1-.7-.1-.7-.5c0-.3.1-.7.2-1.2.1-.3.1-.6.2-.7.2.1.5.2.8.2.9 0 1.6-.6 2.2-1.5.5-.8.8-1.5.8-2.1 0-.3-.1-.5-.2-.7-.2-.3-.5-.5-.8-.5-.9 0-1.8.8-2.8 2.2-1 1.3-1.4 2.4-1.5 3.4 0 0-.1 1 .4 1.6.4.4.9.6 1.6.8.8 0 1.6-.3 2.4-1s1.4-1.6 1.8-2.6c.2-.6-.6-.5-.6-.5zM42.8 67c.3-.4.5-.5.7-.5 0 0 .3.8-.7 2.1s-1.8.7-1.8.8c.2-.6 1-1.6 1.8-2.4zM7.7 66.6c-.1-.6-.3-1-.8-1-.6 0-.7.4-.7.6 0 .6.1 1.2.1 1.7 0 1.7-.2 2.8-.5 3.5-.3.6-.6.8-1.1.8-.6 0-1-.3-1.3-.8-.3-.5-.5-1.2-.5-2 0-.9.3-2 .8-2.8.2-.2.1-.6-.2-.7-.2-.2-.6-.1-.7.2-.7 1-1 2.3-1 3.4 0 1 .2 1.9.7 2.6s1.3 1.2 2.2 1.2c0 0 1.4.1 2-1.4.2-.4.3-.9.4-1.4 0 .5.1.9.1 1.3 0 1.5-.3 2.8-.9 4-.7 1.4-1.5 2-2.6 2-.1 0-.7 0-1.5-.5-.7-.5-.9-1.4-.9-1.5-.1-.2-.2-.4-.4-.4-.4 0-.5.4-.5.6 0 .6.3 1.2 1 1.8.7.8 1.5 1.2 2.5 1.2 1.6 0 2.8-1 3.6-2.9.6-1.4.9-2.7.9-4.1 0-1.9-.2-2.7-.3-2.8-.1-.8-.4-2.6-.4-2.6zM39.1 66.5c-.2-.2-.5 0-.8.2-.4.3-.8.9-1.2 1.7-.2.4-1.4 3.3-1.4 3.3 0-.1-.6-1.8-1.1-2.9-.3-.6-.2-.7-.4-1-.5-.8-.8-.6-1-.4-.4.3-.3.6-.2.7 1.4 2.4 1.7 4.1 1.9 4.5.1.3.2.6.3.8.1.2.2.3.5.3.2 0 .3-.2.4-.4.1-.2.3-.5.4-.9.4-1 .9-2.1 1.3-3.1.3-.7.7-1.3.9-1.7.1-.2.2-.3.3-.4.3-.2.4-.5.1-.7zM29 72.5c-.6.3-.8.1-.9 0-.2-.2-.6-1.3-.6-3.3 0-1.7.3-4.1 1.1-7.3.1-.3-.1-.6-.4-.7-.3-.1-.6.1-.7.4-.8 3.3-1.1 5.8-1.1 7.6 0 2.2.4 3.4.9 4 .5.6 1 .5 1.2.5.4 0 1-.3 1.1-.4.3-.1.4-.4.2-.7-.2-.2-.5-.3-.8-.1z\"\n}));\n\nconst SvgLogo = (_ref) => {\n let svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 92,\n height: 80,\n viewBox: \"0 0 92 80\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgLogo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/logo.22e63f80.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from 'react';\n\nconst getScroll = () => ({\n scrollX: window?.scrollX ?? 0,\n scrollY: window?.scrollY ?? 0\n});\n\nconst useWindowScroll = (onlyOnScrollEnd = true) => {\n const [windowScroll, setWindowScroll] = useState(getScroll());\n\n useEffect(() => {\n let scrollId: NodeJS.Timeout;\n\n const handleScroll = () => {\n if (onlyOnScrollEnd) {\n clearTimeout(scrollId);\n scrollId = setTimeout(() => setWindowScroll(getScroll()), 200);\n } else {\n setWindowScroll(getScroll());\n }\n };\n\n window.addEventListener('scroll', handleScroll, { capture: false, passive: true });\n return () => window.removeEventListener('scroll', handleScroll);\n }, [onlyOnScrollEnd]);\n\n return windowScroll;\n};\n\nexport { useWindowScroll };\n","import React, { ReactElement } from 'react';\n\nconst LanguageElement = (props: any): ReactElement => {\n return (\n
\n props.handleSelectLanguage(props.idLang)}>\n \n {props.label}\n
\n \n );\n};\n\nexport default LanguageElement;\n","import React, { useState } from 'react';\nimport { IntLanguageProps } from '../language.interface';\nimport LanguageElement from '../language-element/language-element';\nimport { getImages } from '@utils/constants';\nimport {\n getUserLang,\n setUserLang,\n getAllowedAgencyLang,\n getLanguageDescriptive\n} from '@utils/language-helper';\n//import RNRestart from 'react-native-restart';\n\nconst LanguageList: React.FC = (props: any) => {\n const displayControl = props.display;\n const [displayLanguage, setDisplayLanguage] = useState(false);\n const [idLang, setidLang] = useState(getUserLang());\n const [, setidLanguage] = useState('');\n const dataLanguage = getAllowedAgencyLang();\n\n const handleSelectLanguage = (name: string, LanguageSelected: string) => {\n setidLanguage(name);\n setidLang(LanguageSelected);\n setDisplayLanguage(false);\n setUserLang(LanguageSelected);\n //RNRestart.Restart();\n };\n\n return (\n
\n {displayControl && (\n
\n
\n
setDisplayLanguage(true)}>\n \n {getLanguageDescriptive(idLang)}\n
\n
\n )}\n
\n
\n {dataLanguage &&\n dataLanguage.length &&\n displayLanguage &&\n dataLanguage\n .filter(\n (language: { permite_traduccion: boolean }) =>\n language.permite_traduccion === true\n )\n .map((item: any, index: any) => (\n \n handleSelectLanguage(item.id_idioma, Language)\n }\n />\n ))}\n
\n
\n
\n );\n};\nexport { LanguageList };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Translate } from '@modules/app/shared/translate';\nimport { useTranslation } from 'react-i18next';\nimport { AuthUser, isCustomerArea, isIntermediary } from '@services/auth/auth-types';\nimport { Button } from '@generics/button';\nimport { CUSTOMER_HEADER_ID } from '@utils/constants';\nimport classNames from 'classnames';\nimport { DropdownMenu } from '@generics/dropdown-menu';\nimport { LanguageList } from '@shared/language-selector/language-list';\nimport { useAuthContextActions, useAuthContext } from '@context/auth/auth-context';\nimport { useUserContext } from '@context/user/user-context';\nimport { routesConfig } from '@routes/routes-config';\nimport { configuration } from '@configuration';\nimport { setUserLang } from '@utils/language-helper';\nimport './user-menu.scss';\n\nconst {\n oidc: { stsAuthority }\n} = configuration;\n\nconst getLetterLogin = (user?: AuthUser, name?: string): string => {\n if (isCustomerArea(user))\n return name?.charAt(0).toUpperCase() || user?.email?.charAt(0).toUpperCase() || '';\n return '';\n};\n\nconst UserMenu: React.FC = () => {\n const { t } = useTranslation();\n const { user } = useAuthContext();\n const { goLoginPage, goLogoutPage } = useAuthContextActions();\n const { userData } = useUserContext();\n\n const fullName = userData ? `${userData?.name} ${userData?.surname}` : '';\n const shortName = isIntermediary(user) ? user?.username : userData?.name;\n setUserLang('ES');\n\n return (\n
\n {!user ? (\n goLoginPage(true, CUSTOMER_HEADER_ID)}\n type=\"button\"\n wide\n />\n ) : (\n <>\n

\n \n {shortName ? ` ${shortName}` : ''}!\n

\n (\n \n )}>\n {toggleDropdown => (\n
    \n
  • \n

    {fullName}

    \n

    {user?.email}

    \n
  • \n {isCustomerArea(user) ? (\n
  • \n \n \n \n
  • \n ) : isIntermediary(user) ? (\n <>\n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n ) : null}\n
  • \n
    \n \n
    \n
  • \n
\n )}\n \n
\n \n
\n \n )}\n
\n );\n};\n//\nexport { UserMenu };\n","import React from 'react';\nimport { Translate } from '@shared/translate';\nimport { NavLink } from 'react-router-dom';\nimport TagManager from 'react-gtm-module';\nimport { useTranslation } from 'react-i18next';\n\ntype HeaderItemProps = {\n name: string;\n link: string;\n external?: boolean;\n isDisabled?: boolean;\n openInNewTab?: boolean;\n onClick?: () => void;\n};\n\nconst HeaderItem = ({\n name,\n link,\n external,\n isDisabled,\n openInNewTab,\n onClick\n}: HeaderItemProps) => {\n const { t } = useTranslation();\n\n const removeAccentMarks = (sentence: string) => {\n return sentence\n .normalize('NFD')\n .replace(/([aeio])\\u0301|(u)[\\u0301\\u0308]/gi, '$1$2')\n .normalize();\n };\n\n const onClickDataLayer = () => {\n TagManager.dataLayer({\n dataLayer: {\n category: 'Interaction',\n action: 'Menu',\n label: removeAccentMarks(t(name)),\n event: 'eventga'\n }\n });\n };\n\n return (\n <>\n {isDisabled ? (\n \n \n \n ) : external ? (\n \n \n \n ) : (\n {\n onClickDataLayer();\n onClick;\n }}>\n \n \n )}\n \n );\n};\n\nexport { HeaderItem };\n","import React, { useState, useRef, memo, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translate } from '@modules/app/shared/translate';\nimport { ReactComponent as LogoEA } from '@assets/images/logo.svg';\nimport { useWindowScroll } from '@hooks/use-scroll';\nimport { AuthUser, isIntermediary, isCustomerArea } from '@services/auth/auth-types';\nimport { UserMenu } from './private-header/user-menu';\nimport { Icon } from '@generics/icon';\nimport { routesConfig } from '@routes/routes-config';\nimport { configuration } from '@configuration';\nimport classNames from 'classnames';\nimport { useOnClickOutside } from '@hooks/use-onclick-outside';\nimport { useAuthContext } from '@context/auth/auth-context';\nimport TravelnetLauncher from '@modules/app/travelnet/travelnet-launcher';\nimport { getExternalUrl } from '@utils/url-helper';\nimport { HeaderItem } from '@shared/private-header/header-item';\nimport { useUserContext } from '@context/user/user-context';\nimport { useAppContextActions } from '@modules/app/app-context';\nimport { Link, useLocation } from 'react-router-dom';\nimport { LanguageList } from '@shared/language-selector/language-list';\n\n//http://localhost:3000/agencies/landing/0013192 -> EN\n//http://localhost:3000/agencies/landing/0018137 -> ES\n//http://localhost:3000/agencies/landing/0012490 -> ES EN\n\nexport type HeaderType = 'funnel' | 'travelnet' | 'customerarea';\n\nconst getHeaderType = (user?: AuthUser): HeaderType => {\n if (isIntermediary(user)) {\n return 'travelnet';\n } else if (isCustomerArea(user)) {\n return 'customerarea';\n } else {\n return 'funnel';\n }\n};\n\nconst linkConfig: {\n [id: string]: {\n name: string;\n link: string;\n requireHasData?: boolean;\n requireBusinessLines?: boolean;\n external?: boolean;\n className?: string;\n }[];\n} = {\n funnel: [\n {\n name: 'private-header.funnel.products',\n link: getExternalUrl('products'),\n external: true\n },\n {\n name: 'private-header.funnel.about_us',\n link: getExternalUrl('about_us'),\n external: true\n },\n {\n name: 'private-header.funnel.help',\n link: getExternalUrl('help'),\n external: true\n },\n {\n name: 'private-header.funnel.eclaims',\n link: configuration.externalLinks.eclaims,\n external: true,\n className: 'nav-item-light'\n }\n ],\n travelnet: [\n { name: 'private-header.travelnet.my-policies', link: routesConfig.travelnet.policies },\n {\n name: 'private-header.travelnet.products',\n link: routesConfig.travelnet.products,\n requireBusinessLines: true\n },\n {\n name: 'private-header.travelnet.economic-data',\n link: routesConfig.travelnet.economicData\n },\n {\n name: 'private-header.travelnet.agents',\n link: configuration.externalLinks.travelnet,\n external: true\n },\n {\n name: 'private-header.travelnet.contact',\n link: getExternalUrl('contact'),\n external: true\n },\n {\n name: 'private-header.funnel.eclaims',\n link: configuration.externalLinks.eclaims,\n external: true,\n className: 'nav-item-light'\n }\n ],\n customerarea: [\n {\n name: 'private-header.my-policies',\n link: routesConfig.customerArea.policies,\n requireHasData: true\n },\n {\n name: 'private-header.funnel.help',\n link: getExternalUrl('help'),\n external: true\n },\n {\n name: 'private-header.funnel.eclaims',\n link: configuration.externalLinks.eclaims,\n external: true,\n className: 'nav-item-light'\n }\n ]\n};\n\ntype HeaderPrivateZoneProps = {\n showTravelnetLauncher?: boolean;\n saleInProgress?: boolean;\n secondaryIconPath?: string;\n showUserMenu?: boolean;\n showLinks?: boolean;\n};\n\nconst HeaderPrivateZone = memo(\n ({\n showTravelnetLauncher = false,\n saleInProgress = false,\n secondaryIconPath,\n showUserMenu = true,\n showLinks = true\n }: HeaderPrivateZoneProps) => {\n const { t } = useTranslation();\n const [isMobileMenuShow, setMobileMenuShow] = useState(false);\n const [isLauncherExpanded, setLauncherExpanded] = useState(false);\n const menuRef = useRef(null);\n const toggleMenuRef = useRef(null);\n const { scrollY } = useWindowScroll(false);\n const { user } = useAuthContext();\n const { hasUserData, hasBusinessLines } = useUserContext();\n const { getHomeUrl } = useAppContextActions();\n const location = useLocation();\n\n const scrollAnimation = scrollY >= 10 && 'header--min';\n const headerType = getHeaderType(user);\n\n useOnClickOutside(() => setMobileMenuShow(false), menuRef, toggleMenuRef, isMobileMenuShow);\n\n const onExpandLauncher = (isExpanded: boolean): void => {\n setLauncherExpanded(isExpanded);\n };\n\n const homeUrl = getHomeUrl();\n\n const objectElement = useMemo(\n () => React.createElement('object', { data: secondaryIconPath }),\n [secondaryIconPath]\n );\n\n return (\n <>\n \n
\n
\n {showLinks ? (\n setMobileMenuShow(!isMobileMenuShow)}\n className={classNames(\n 'ea-private-header__btn-menu effect--ripple',\n {\n 'is-active': isMobileMenuShow\n }\n )}\n ref={toggleMenuRef}>\n \n \n ) : null}\n
\n {homeUrl.isExternal ? (\n \n \n \n ) : (\n \n \n \n )}\n {secondaryIconPath ? (\n
\n {objectElement}\n
\n ) : null}\n
\n

\n \n

\n {showUserMenu ? : null}\n
\n \n
\n
\n
\n \n {showLinks ? (\n
    \n {linkConfig[headerType].map(link =>\n !link.requireBusinessLines || hasBusinessLines ? (\n \n setMobileMenuShow(false)}\n />\n \n ) : null\n )}\n
\n ) : null}\n \n \n {showTravelnetLauncher && (\n \n )}\n \n );\n }\n);\n\nexport { HeaderPrivateZone };\n","import React, { memo } from 'react';\nimport { Translate } from './translate';\nimport { configuration } from '@configuration';\nimport { formattedUrl } from '@utils/url-helper';\nimport { Icon } from '@generics/icon';\n\ntype FooterProps = {\n showPublicPortalItems: boolean;\n};\n\nconst {\n socialItems,\n publicPortalItems,\n server: { CMS }\n} = configuration;\n\nconst Footer = memo(({ showPublicPortalItems }: FooterProps) => {\n return (\n
\n
\n
\n \n {showPublicPortalItems ? (\n \n ) : null}\n
\n
\n
\n );\n});\n\nexport { Footer };\n","import React, { PropsWithChildren, memo } from 'react';\nimport { useAppContext } from '@modules/app/app-context';\nimport { HeaderPrivateZone } from '@shared/private-header';\nimport classNames from 'classnames';\nimport { Footer } from '@shared/footer';\nimport { useUserContext } from '@context/user/user-context';\n\nconst AppLayout = memo(({ children }: PropsWithChildren<{}>) => {\n const { agentData } = useUserContext();\n const { isTravelnetLauncherInHeader, saleInProgress, productIconPath } = useAppContext();\n\n return (\n <>\n \n \n {children}\n \n