{"version":3,"mappings":"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","names":["environmentGet","key","defaultValue","asyncFoldTry","fun","errorHandler","successHandler","error","_b","_a","fastapi","axios","strapiImages","strapi","getStrapiResponseData","endpoint","responseData","initializeGA","trackingId","ReactGA","trackPageView","location","path","ScrollToTop","props","useLocation","useEffect","jsx","Fragment","LoadingWheel","type","margin","wheelColor","size","color","ClipLoader","Button","name","onClick","svg","svgContent","svgPosition","cls","containerStyle","textStyle","suffix","__vitePreload","jsxs","Title","underline","center","style","titleRef","useRef","onResize","useCallback","element","sibling","resizeObserver","entries","entry","Shortcut","to","Link","AnimatedBackground","init","setInit","useState","initParticlesEngine","engine","loadSlim","options","useMemo","Particles","getFullUrl","url","fetchEncodelytHome","query","fetchEncodelytLogo","fetchEncodelytPartnerLogos","fetchEncodelytLastBlogPosts","n","excludedId","page","fetchEncodelytRandomBlogPosts","ids","randomFilter","numbers","id","index","fetchEncodelytBlogPost","fetchEncodelytFirst5Services","fetchEncodelytService","fetchEncodelytSuccessShowcase","fetchAliciaLogo","fetchAliciaHome","IntroductionImages","images","ServiceHeader","icon","isSelected","ServiceContent","description","image","BlocksRenderer","children","ServiceList","services","selectedId","setSelectedId","hasClicked","setHasClicked","serviceRef","top","offsetPosition","handleOnClick","service","MouseParallaxContainer","MouseParallaxChild","Industry","IndustryCarousel","industries","containerRef","viewportRef","spaceRef","repeatedIndustries","setRepeatedIndustries","viewportWindowWidth","setViewportWindowWidth","viewportWidth","serViewportWidth","visibleIndustries","setVisibleIndustries","containerWidth","setContainerWidth","minContainerWidth","xMargin","industryWidth","onResizeHandler","actualWidth","cnt","actualContainerWidth","repeatedIndustriesArray","extraContainerWidth","i","industry","lastFrameTime","position","pxPerSecond","timeoutId","breakpoints","animate","currentTime","deltaTime","actualBreakpoint","e","animationId","StackIconCarousel","stack","repeatedIcons","setRepeatedIcons","initialIconWindowWidth","setinitialIconWindowWidth","iconWindowWidth","setIconWindowWidth","minIconWindowWidth","actualIconWindowWidth","repeatedIconsArray","extraWindowWidth","Team","team","HoverableMail","Meeting","isVisible","setIsVisible","toggleVisibility","header","binarySearch","container","availableHeight","content","saveInitialHtml","min","initialContainerInnerHTML","words","max","mid","ReactDOMServer","PostCardContentContainer","parentRef","setAvailableHeight","contentHeight","setContentHeight","titleObserver","contentObserver","PostCard","post","textSpan","childElement","PostGrid","posts","smallVersionType","tripletsPosts","elements","listOfPairs","pair","tripletsPost","HoverableSvgIcon","isHovered","setIsHovered","hoveredIcon","ariaLabel","hideOnPhone","SmallCard","entity","title","SmallCard2","Navbar","logo","currentServices","setCurrentServices","isServicesHovered","setIsServicesHovered","isAliciaHovered","setIsAliciaHovered","isLinkedInHovered","setIsLinkedInHovered","isWhatsAppHovered","setIsWhatsAppHovered","isPanelVisible","setIsPanelVisible","isServicePanelVisible","setIsServicePanelVisible","serviceButtonRef","currentPath","togglePanelVisibility","toggleServicePanelVisibility","aliciaIcon","hoveredAliciaIcon","linkedInIcon","hoveredLinkedInIcon","whatsAppIcon","hoveredWhatsAppIcon","PartnerList","partnerLogos","setPartnerLogos","data","Footer","serviceId","startRef","toStart","withEncodelytSettings","Component","setLogo","setServices","HelmetProvider","Helmet","HomePage","introduction","setIntroduction","introductionImages","setIntroductionImages","homepageServices","setHomepageServices","setIndustries","setStack","setTeam","pressQuote","setPressQuote","pressQuoteUrl","setPressQuoteUrl","pressQuoteSource","setPressQuoteSource","pressAppearances","setPressAppearances","lastPosts","setLastPosts","meetingRef","handleIntroductionButton","pressAppearance","EncodelytHomePage","BlogPage","loading","setLoading","lastPage","setLastPage","setPage","totalPages","setTotalPages","bottomBoundaryRef","ignore","meta","prevPosts","prev","handleScroll","EncodelytBlogPage","ShareIcons","TwitterShareButton","FacebookShareButton","WhatsappShareButton","MovableSmallCardList","entityList","entityType","entityTitleGetter","entityIconGetter","isFixed","setIsFixed","containerInitialPosition","setContainerInitialPosition","containerContentHeight","setContainerContentHeight","contentRef","eventHandler","divRect","calculateContainerFixedDivTopPosition","BlogPostPage","setTitle","setImage","setContent","randomPosts","setRandomPosts","useParams","navigate","useNavigate","EncodelytBlogPostPage","ServicePage","setName","setDescription","otherServices","setOtherServices","EncodelytServicePage","AliciaShowCase","aliciaData","descriptionSpan","setDescriptionSpan","splitedDescription","MopitShowcase","mopitData","SuccessShowcasePage","introductionImage","setIntroductionImage","setAliciaData","setMopitData","EncodelytSuccessShowcasePage","Input","placeholder","register","setFocus","focused","setFocused","handleContainerClick","SvgIcon","Error","SignIn","handleSubmit","errors","watch","reset","useForm","signInError","setSignInError","cognitoError","setCognitoError","lastEmail","setLastEmail","lastPassword","setLastPassword","watchedEmail","watchedPassword","onSubmit","email","password","username","isSignedIn","nextStep","signIn","signInStep","confirmSignIn","withAliciaBaseSettings","SignInPage","logoV1","setLogoV1","logoV2","setLogoV2","verifyUser","getCurrentUser","fetchData","logoData","AliciaSignInPage","Feature","FeatureList","features","feature","Objective","ObjectiveList","objectives","objective","Step","StepList","steps","svgNumberBalls","step","ClientCarrousel","clients","repeatedClients","setRepeatedClients","initialClientWindowWidth","setinitialClientWindowWidth","clientWindowWidth","setClientWindowWidth","getResizedWidth","client","actualClientWindowWidth","repeatedClientsArray","isEncodelytHovered","setIsEncodelytHovered","encodelytIcon","hoveredEncodelyIcon","encodelytLogo","setEncodelytLogo","withAliciaSettings","setServiceId","YoutubeSlide","ReactPlayer","TestimonialVideoCarousel","videoIds","customRenderItem","item","getVideoThumb","videoId","getVideoId","customRenderThumb","Carousel","introductionBackground","setIntroductionBackground","setVideoId","setObjectives","setFeatures","setSteps","versatilityText","setVersatilityText","versatilityImage","setVersatilityImage","versatilityBackground","setVersatilityBackground","analyticsText","setAnalyticsText","analyticsImage","setAnalyticsImage","analyticsBackground","setAnalyticsBackground","setClients","testimonyVideoIds","setTestimonyVideoIds","intro","introSpan","splitedIntro","video","AliciaHomePage","company_image","section","setSection","phoneNavbarRef","isPath","closePanelIfClickOuside","handleSignOut","signOut","exitSvg","LateralNavbar","usersApi","dashboardsApi","aliciasApi","gendersApi","agesApi","getUserTokens","session","fetchAuthSession","accessToken","idToken","getCurrentCognitoUser","getDashboardUrl","dashboardId","getAliciaLastEvent","aliciaId","getAliciaVolume","updateAliciaVolume","payload","getAliciaMovement","updateAliciaMovement","getGenders","getAges","getAliciaSoundSegments","updateAliciaSoundSegments","uploaAliciaSoundSegmentSound","genderId","ageId","formData","withAliciaAuthenticatedSettings","user","setUser","userTokens","setUserTokens","userAttributes","fetchUserAttributes","cognitoUser","tokens","isAliciaLoading","setIsAliciaLoading","isDashboardLoading","setIsDashboardLoading","aliciaLastEvent","setAliciaLastEvent","active","setActive","date","setDate","dashboards","setDashboards","dateObject","difference","tenMinutes","activeStatus","day","month","year","dashboardDataPromises","dashboard","dashboardData","dashboardUrl","AliciaPanelHomePage","SoundSegmentDropDown","fieldValue","fieldSetter","width","openedDropDowns","openedDropDownsSetter","handleOpen","actualOpenState","updatedOpenedDropDowns","handleOption","option","SoundSegmentSwitch","checked","setChecked","handleChange","newChecked","SoundSegment","soundSegment","soundSegments","soundSegmentsSetter","genders","ages","fileInputRef","isFileUploading","setIsFileUploading","updateSegmentField","fieldName","updatedSegments","removeSegment","_","soundSegmentIndex","canUploadFile","field","handleUploadIconClick","handleFileUpload","event","file","uploadFile","SoundSegmentTable","isLoading","setOpenedDropDowns","addSegment","newGender","gender","newAge","age","newSegment","VolumeSelector","initialValue","valueSetter","value","setValue","isDragging","setIsDragging","pickerRef","handleMouseClick","rect","percent","newValue","roundedValue","handleMouseMove","handleMouseUp","handleMouseDown","SoundPage","volume","setVolume","setGenders","setAges","setSoundSegments","isSoundSegmentsLoading","setIsSoundSegmentsLoading","isSaving","setIsSaving","gendersData","agesData","genderIdsByValue","acc","current","ageIdsByValue","customSoundSegments","defaultSoundSegment","handleSave","soundSegmentPayload","segmentPayload","volumeData","errorMessage","AliciaPanelSoundPage","MovementPage","movement","setMovement","RadioButton","Row","optionName","optionValue","AliciaPanelMovementPage","ContactPage","AliciaPanelContactPage","NotFoundPage","GAWrapper","timer","App","BrowserRouter","Routes","Route","Navigate","Amplify","outputs","ReactDOM","React"],"sources":["../../src/api/base.js","../../src/components/base/ScrollToTop.jsx","../../src/components/base/LoadingWheel.jsx","../../src/components/base/Button.jsx","../../src/components/base/Title.jsx","../../src/components/encodelyt/Shortcut.jsx","../../src/components/encodelyt/home/AnimatedBackground.jsx","../../src/api/strapi.js","../../src/components/encodelyt/home/IntroductionImages.jsx","../../src/components/encodelyt/home/Service.jsx","../../src/components/encodelyt/home/ServiceList.jsx","../../src/components/encodelyt/home/Industry.jsx","../../src/components/encodelyt/home/IndustryCarousel.jsx","../../src/components/encodelyt/home/StackIconCarousel.jsx","../../src/components/encodelyt/home/Team.jsx","../../src/components/base/HoverableMail.jsx","../../src/components/base/Meeting.jsx","../../src/components/encodelyt/blog/PostCardContentContainer.jsx","../../src/components/encodelyt/blog/PostCard.jsx","../../src/components/encodelyt/blog/PostGrid.jsx","../../src/components/base/HoverableSvgIcon.jsx","../../src/components/encodelyt/SmallCard.jsx","../../src/components/encodelyt/Navbar.jsx","../../src/components/base/PartnerList.jsx","../../src/components/encodelyt/Footer.jsx","../../src/hocs/withEncodelytSettings.jsx","../../src/pages/encodelyt/HomePage.jsx","../../src/pages/encodelyt/BlogPage.jsx","../../src/components/encodelyt/blog/ShareIcons.jsx","../../src/components/encodelyt/MovableSmallCardList.jsx","../../src/pages/encodelyt/BlogPostPage.jsx","../../src/pages/encodelyt/ServicePage.jsx","../../src/components/encodelyt/success_showcases/AliciaShowcase.jsx","../../src/components/encodelyt/success_showcases/MopitShowcase.jsx","../../src/pages/encodelyt/SuccessShowcasePage.jsx","../../src/components/alicia/auth/Input.jsx","../../src/components/alicia/auth/Error.jsx","../../src/components/alicia/auth/SignIn.jsx","../../src/components/alicia/auth/Footer.jsx","../../src/hocs/withAliciaBaseSettings.jsx","../../src/pages/alicia/SignInPage.jsx","../../src/components/alicia/AnimatedBackground.jsx","../../src/components/alicia/home/Feature.jsx","../../src/components/alicia/home/FeatureList.jsx","../../src/components/alicia/home/Objective.jsx","../../src/components/alicia/home/ObjectiveList.jsx","../../src/components/alicia/home/Step.jsx","../../src/components/alicia/home/StepList.jsx","../../src/components/alicia/home/ClientCarousel.jsx","../../src/components/alicia/Navbar.jsx","../../src/components/alicia/Footer.jsx","../../src/hocs/withAliciaSettings.jsx","../../src/components/alicia/home/TestimonialVideoCarousel.jsx","../../src/pages/alicia/HomePage.jsx","../../src/components/alicia/panel/Navbar.jsx","../../src/components/alicia/panel/LateralNavbar.jsx","../../src/components/alicia/panel/Footer.jsx","../../src/api/cognito-users.js","../../src/hocs/withAliciaAuthenticatedSettings.jsx","../../src/pages/alicia/panel/HomePage.jsx","../../src/components/alicia/panel/SoundSegmentDropDown.jsx","../../src/components/alicia/panel/SoundSegmentSwitch.jsx","../../src/components/alicia/panel/SoundSegment.jsx","../../src/components/alicia/panel/SoundSegmentTable.jsx","../../src/components/alicia/panel/VolumeSelector.jsx","../../src/pages/alicia/panel/SoundPage.jsx","../../src/pages/alicia/panel/MovementPage.jsx","../../src/pages/alicia/panel/ContactPage.jsx","../../src/pages/NotFoundPage.jsx","../../src/App.jsx","../../src/main.jsx"],"sourcesContent":["import axios from 'axios';\nimport ReactGA from 'react-ga4';\n\n\nconst environmentGet = (key, defaultValue) => (\n import.meta.env.DEV ? defaultValue : import.meta.env[`VITE_${key}`]\n);\n\nexport const asyncFoldTry = async (fun, errorHandler=null, successHandler=null) => {\n try {\n await fun();\n if (successHandler) {\n successHandler();\n }\n } catch (error) {\n if (errorHandler) {\n try {\n errorHandler(error?.response?.data?.detail);\n } catch {\n errorHandler();\n }\n }\n console.error('Error:', error.message);\n }\n};\n\nexport const fastapi = axios.create({\n baseURL: environmentGet('FASTAPI_URL', 'http://localhost:8000/api')\n});\n\nexport const strapiImages = import.meta.env.DEV ? 'http://localhost:8001' : '';\n\nexport const strapi = axios.create({\n baseURL: environmentGet('STRAPI_URL', 'http://localhost:8001/api')\n});\n\nexport const getStrapiResponseData = async (endpoint) => {\n const response = await strapi.get(endpoint);\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n};\n\n\nexport const initializeGA = () => {\n const trackingId = environmentGet('GA_TRACKING_ID', 'G-8PNXGEZ4R5');\n ReactGA.initialize([\n {\n trackingId: trackingId,\n gtagOptions: {\n send_page_view: false,\n cookie_domain: window.location.hostname,\n cookie_flags: 'SameSite=None;Secure'\n }\n },\n ]);\n ReactGA.initialize(trackingId);\n} \n\nexport const trackPageView = (location) => {\n let path = location.pathname + location.search;\n path = path.length !== 1 && path[path.length-1] === '/' ? path.slice(0, path.length-1) : path;\n ReactGA.send({ hitType: \"pageview\", page: path, title: path});\n}","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\n\nconst ScrollToTop = (props) => {\n const location = useLocation();\n useEffect(() => {\n window.scrollTo({top: 0, left: 0 });\n }, [location]);\n\n return <>\n {props.children}\n \n };\n\nexport default ScrollToTop;","import { ClipLoader } from 'react-spinners';\n\n\nexport const LoadingWheel = ({ type, margin=false, wheelColor=null, size=50 }) => {\n let color;\n if (type == 'encodelyt') {\n color = '#814CF2';\n } else if (type == 'alicia') {\n color = '#C21455';\n }\n if (wheelColor) {\n color = wheelColor;\n }\n return (\n
\n \n
\n );\n}","import React from 'react';\nimport '@/styles/Button.css';\n\n\nexport const Button = ({ name, onClick, type, svg = true, svgContent = null, svgPosition = 'right', cls = '', containerStyle = {}, textStyle = {} }) => {\n let suffix = '';\n if (type === 'encodelyt-purple') {\n import('@/styles/encodelyt/Button-purple.css');\n suffix = '-encodelyt-purple';\n } else if (type === 'encodelyt-white') {\n import('@/styles/encodelyt/Button-white.css');\n suffix = '-encodelyt-white';\n } else if (type === 'alicia-pink') {\n import('@/styles/alicia/Button-pink.css');\n suffix = '-alicia-pink';\n } else if (type === 'alicia-white') {\n import('@/styles/alicia/Button-white.css');\n suffix = '-alicia-white';\n } else if (type === 'mopit') {\n import('@/styles/mopit/Button-mopit.css');\n suffix = '-mopit';\n }\n \n if (svgPosition === 'right') {\n if (!svgContent) {\n svgContent = (\n \n \n \n )\n } else {\n svgContent = (\n \n )\n }\n } else if (svgPosition === 'left') {\n if (!svgContent) {\n svgContent = (\n \n \n \n )\n } else {\n svgContent = (\n \n )\n }\n }\n \n return (\n
\n {name}\n {svg && svgContent}\n
\n );\n};","import React, { useRef, useEffect, useCallback } from 'react';\nimport '@/styles/encodelyt/Title.css';\n\n\nexport const Title = ({name, type, underline=true, center=false, style={}}) => {\n const titleRef = useRef(null);\n\n let suffix;\n if (type === 'encodelyt') {\n import('@/styles/encodelyt/Title.css');\n suffix = '-encodelyt';\n } else if (type === 'alicia') {\n import('@/styles/alicia/Title.css');\n suffix = '-alicia';\n }\n\n const onResize = useCallback(() => {\n if (titleRef.current) {\n const element = titleRef.current;\n const sibling = element.nextElementSibling;\n sibling.style.width = `${element.offsetWidth}px`;\n } \n }, []);\n\n useEffect(() => {\n if (!titleRef.current || !underline) return;\n window.addEventListener('load', onResize);\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n window.removeEventListener('load', onResize);\n }\n }, [titleRef.current]);\n\n\n\n useEffect(() => {\n if (!titleRef.current || !underline) return;\n\n const element = titleRef.current;\n const sibling = element.nextElementSibling;\n\n const resizeObserver = new ResizeObserver(entries => {\n for (let entry of entries) {\n if (entry.target === element) {\n sibling.style.width = `${element.offsetWidth}px`;\n }\n }\n });\n\n resizeObserver.observe(element);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [titleRef.current, underline]);\n \n return (\n
\n {name}\n {underline &&
}\n
\n );\n};","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport '@/styles/encodelyt/Shortcut.css';\n\n\nexport const Shortcut = ({ name, to }) => {\n return (\n \n
\n
{name}
\n \n \n \n
\n \n );\n};","import { useEffect, useMemo, useState } from \"react\";\nimport Particles, { initParticlesEngine } from \"@tsparticles/react\";\nimport { loadSlim } from \"@tsparticles/slim\";\n\n\nexport const AnimatedBackground = () => {\n const [init, setInit] = useState(false);\n\n // this should be run only once per application lifetime\n useEffect(() => {\n initParticlesEngine(async (engine) => {\n await loadSlim(engine);\n }).then(() => {\n setInit(true);\n });\n }, []);\n\n const options = useMemo(\n () => ({\n fullScreen: { enable: false },\n fpsLimit: 120,\n particles: {\n color: {\n value: \"#814CF2\",\n },\n links: {\n color: \"#181818\",\n distance: 150,\n enable: true,\n opacity: 0.5,\n width: 1,\n },\n move: {\n direction: \"none\",\n enable: true,\n outModes: {\n default: \"bounce\",\n },\n random: false,\n speed: 3,\n straight: false,\n },\n number: {\n density: {\n enable: true,\n },\n value: 120,\n },\n opacity: {\n value: 0.5,\n },\n shape: {\n type: \"circle\",\n },\n size: {\n value: { min: 4, max: 8 },\n },\n },\n detectRetina: true,\n }),\n [],\n );\n\n if (init) {\n return (\n
\n \n
\n );\n }\n\n return <>;\n};","import { strapiImages, getStrapiResponseData } from './base';\n\n\nexport const getFullUrl = (url) => {\n return `${strapiImages}${url}`\n}\n\n\n// Encodelyt home\nexport const fetchEncodelytHome = async () => {\n let query = 'fields[0]=introduction&populate[introduction_images][populate][large_image][fields][0]=url&populate[introduction_images][populate][large_image][fields][1]=alternativeText';\n query += '&populate[introduction_images][populate][medium_large_image][fields][0]=url&populate[introduction_images][populate][medium_large_image][fields][1]=alternativeText';\n query += '&populate[introduction_images][populate][medium_image][fields][0]=url&populate[introduction_images][populate][medium_image][fields][1]=alternativeText';\n query += '&populate[introduction_images][populate][small_image][fields][0]=url&populate[introduction_images][populate][small_image][fields][1]=alternativeText';\n\n query += '&populate[services][fields][0]=name&populate[services][fields][1]=description&populate[services][populate][icon][fields][0]=url&populate[services][populate][icon][fields][1]=alternativeText';\n query += '&populate[services][populate][image][fields][0]=url&populate[services][populate][image][fields][1]=alternativeText';\n query += '&populate[services][populate][tridimensional_image][fields][0]=url&populate[services][populate][tridimensional_image][fields][1]=alternativeText'\n\n query += '&populate[industries][fields][0]=name&populate[industries][populate][icon][fields][0]=url&populate[industries][populate][icon][fields][1]=alternativeText';\n \n query += '&populate[stack][fields][0]=url&populate[stack][fields][1]=alternativeText&populate[stack][fields][2]=width';\n\n query += '&populate[team][populate][image][fields][0]=url&populate[team][populate][image][fields][1]=alternativeText';\n query += '&populate[team][populate][mission_icon][fields][0]=url&populate[team][populate][mission_icon][fields][1]=alternativeText';\n query += '&populate[team][populate][vision_icon][fields][0]=url&populate[team][populate][vision_icon][fields][1]=alternativeText';\n\n query += '&fields[1]=press_quote&fields[2]=press_quote_source&fields[3]=press_quote_url';\n query += '&populate[press_appearances][fields][0]=url&populate[press_appearances][populate][icon][fields][0]=url&populate[press_appearances][populate][icon][fields][1]=alternativeText';\n\n const response = await getStrapiResponseData(`/encodelyt-home?${query}`);\n return response.data.attributes;\n}\n\n// Encodelyt logo\nexport const fetchEncodelytLogo = async () => {\n const query = 'populate[v1][fields][0]=url&populate[v1][fields][1]=alternativeText';\n const response = await getStrapiResponseData(`/encodelyt-logo?${query}`);\n return response.data.attributes;\n}\n\n// Encodelyt partner logos\nexport const fetchEncodelytPartnerLogos = async () => {\n let query = 'populate[anid][fields][0]=url&populate[anid][fields][1]=alternativeText&populate[openBeauchef][fields][0]=url&populate[openBeauchef][fields][1]=alternativeText';\n query += '&populate[corfo][fields][0]=url&populate[corfo][fields][1]=alternativeText&populate[ohcowork][fields][0]=url&populate[ohcowork][fields][1]=alternativeText';\n const response = await getStrapiResponseData(`/encodelyt-partner-gallery?${query}`);\n return response.data.attributes;\n}\n\n// Last n encodelyt blog posts\nexport const fetchEncodelytLastBlogPosts = async (n, excludedId=null, page=1) => {\n const query = `populate[image][fields][0]=url&populate[image][fields][1]=alternativeText&fields[0]=title&fields[1]=content&fields[2]=publishedAt&sort=publishedAt:desc&pagination[pageSize]=${n}&pagination[page]=${page}`;\n const response = await getStrapiResponseData(`/encodelyt-blogs?${query}${excludedId ? `&filters[id][$ne]=${excludedId}` : ''}`);\n return response;\n}\n\n// n random encodelyt blog posts\nexport const fetchEncodelytRandomBlogPosts = async (n, excludedId=null) => {\n const idData = await getStrapiResponseData(`/encodelyt-blogs?fields[0]=title&sort=publishedAt:desc&pagination[pageSize]=100${excludedId ? `&filters[id][$ne]=${excludedId}` : ''}`);\n const ids = idData.data.map(element => element.id);\n const selectNUnique = (numbers, n) => {\n if (n > numbers.length) {\n throw new Error(\"n cannot be greater than the length of the list\");\n }\n const shuffledNumbers = numbers.sort(() => Math.random() - 0.5);\n return shuffledNumbers.slice(0, n);\n }\n const randomIds = selectNUnique(ids, n);\n const randomFilter = randomIds.map((id, index) => `filters[id][$in][${index}]=${id}`).join('&');\n const query = `populate[image][fields][0]=url&populate[image][fields][1]=alternativeText&fields[0]=title&fields[1]=content&pagination[pageSize]=${n}&${randomFilter}`;\n const response = await getStrapiResponseData(`/encodelyt-blogs?${query}${excludedId ? `&filters[id][$ne]=${excludedId}` : ''}`);\n return response.data;\n}\n\n// Encodelyt blog post by id\nexport const fetchEncodelytBlogPost = async (id) => {\n const query = 'fields[0]=title&populate[image][fields][0]=url&populate[image][fields][1]=alternativeText&fields[1]=content';\n const response = await getStrapiResponseData(`/encodelyt-blogs/${id}?${query}`);\n return response.data.attributes;\n}\n\n// First 5 encodelyt services\nexport const fetchEncodelytFirst5Services = async (excludedId=null) => {\n let query = `pagination[pageSize]=${5}&sort=id:asc`;\n\n query += '&fields[0]=name&fields[1]=description&populate[icon][fields][0]=url&populate[icon][fields][1]=alternativeText';\n query += '&populate[image][fields][0]=url&populate[image][fields][1]=alternativeText';\n query += '&populate[tridimensional_image][fields][0]=url&populate[tridimensional_image][fields][1]=alternativeText'\n\n const response = await getStrapiResponseData(`/encodelyt-services?${query}${excludedId ? `&filters[id][$ne]=${excludedId}` : ''}`);\n return response;\n}\n\n// Encodelyt service by id\nexport const fetchEncodelytService = async (id) => {\n const query = 'fields[0]=name&populate[image][fields][0]=url&populate[image][fields][1]=alternativeText&fields[1]=description&fields[2]=content';\n const response = await getStrapiResponseData(`/encodelyt-services/${id}?${query}`);\n return response.data.attributes;\n}\n\n// Encodelyt sucess showcase\nexport const fetchEncodelytSuccessShowcase = async () => {\n let query = 'fields[0]=introduction&populate[introduction_image][fields][0]=url&populate[introduction_image][fields][1]=alternativeText';\n\n query += '&populate[alicia][fields][0]=description';\n query += '&populate[alicia][populate][logo][fields][0]=url&populate[alicia][populate][logo][fields][1]=alternativeText';\n query += '&populate[alicia][populate][image][fields][0]=url&populate[alicia][populate][image][fields][1]=alternativeText';\n\n query += '&populate[mopit][fields][0]=description';\n query += '&populate[mopit][populate][logo][fields][0]=url&populate[mopit][populate][logo][fields][1]=alternativeText';\n query += '&populate[mopit][populate][image][fields][0]=url&populate[mopit][populate][image][fields][1]=alternativeText';\n const response = await getStrapiResponseData(`/encodelyt-success-showcase/?${query}`);\n return response.data.attributes;\n}\n\n\n// Alicia logo\nexport const fetchAliciaLogo = async () => {\n const query = 'populate[v1][fields][0]=url&populate[v1][fields][1]=alternativeText&populate[v2][fields][0]=url&populate[v2][fields][1]=alternativeText';\n const response = await getStrapiResponseData(`/alicia-logo?${query}`);\n return response.data.attributes;\n}\n\n// Alicia home\nexport const fetchAliciaHome = async () => {\n let query = 'fields[0]=introduction&populate[introduction_image][fields][0]=url&populate[introduction_image][fields][1]=alternativeText';\n query += '&populate[introduction_background][fields][0]=url&populate[introduction_background][fields][1]=alternativeText&fields[1]=youtube_video_id';\n\n query += '&populate[objectives][fields][0]=title&populate[objectives][fields][1]=description&populate[objectives][populate][icon][fields][0]=url&populate[objectives][populate][icon][fields][1]=alternativeText';\n query += '&populate[features][fields][0]=name&populate[features][populate][icon][fields][0]=url&populate[features][populate][icon][fields][1]=alternativeText';\n query += '&populate[steps][fields][0]=description&populate[steps][populate][image][fields][0]=url&populate[steps][populate][image][fields][1]=alternativeText';\n\n query += '&fields[2]=versatility_text&populate[versatility_image][fields][0]=url&populate[versatility_image][fields][1]=alternativeText';\n query += '&populate[versatility_background][fields][0]=url&populate[versatility_background][fields][1]=alternativeText';\n\n query += '&fields[3]=analytics_text&populate[analytics_image][fields][0]=url&populate[analytics_image][fields][1]=alternativeText';\n query += '&populate[analytics_background][fields][0]=url&populate[analytics_background][fields][1]=alternativeText';\n\n query += '&populate[clients][fields][0]=url&populate[clients][populate][icon][fields][0]=url&populate[clients][populate][icon][fields][1]=alternativeText&populate[clients][populate][icon][fields][2]=width&populate[clients][populate][icon][fields][3]=height';\n\n query += '&populate[testimony_videos][fields][0]=youtube_video_id';\n const response = await getStrapiResponseData(`/alicia-home?${query}`);\n return response.data.attributes;\n}","import React from 'react';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/IntroductionImages.css';\n\n\nexport const IntroductionImages = ({ images }) => {\n return (\n \n )\n}","import React from 'react';\nimport { BlocksRenderer } from '@strapi/blocks-react-renderer';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/Service.css';\n\n\nexport const ServiceHeader = ({ name, icon, isSelected }) => {\n return (\n
\n {icon.attributes.alternativeText}\n\n
\n {name}\n
\n
\n );\n};\n\n\nexport const ServiceContent = ({ name, description, image }) => {\n return (\n
\n
\n
\n {image.attributes.alternativeText}\n\n
\n
\n {name}\n
\n {children}\n }}\n />\n
\n
\n );\n};","import React, { useState, useEffect, useRef } from 'react';\nimport { MouseParallaxContainer, MouseParallaxChild } from \"react-parallax-mouse\";\nimport { ServiceHeader, ServiceContent } from '@/components/encodelyt/home/Service';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const ServiceList = ({ services }) => {\n const [selectedId, setSelectedId] = useState(0);\n const [hasClicked, setHasClicked] = useState(false);\n const serviceRef = useRef(null);\n\n useEffect(() => {\n if (hasClicked && window.innerWidth <= 834 && serviceRef.current) {\n const headerOffset = 116;\n const { top } = serviceRef.current.getBoundingClientRect();\n const offsetPosition = top + window.scrollY - headerOffset;\n window.scrollTo(0, offsetPosition); // Move 116px up\n }\n }, [selectedId]);\n\n const handleOnClick = (index) => {\n setHasClicked(true);\n setSelectedId(index);\n }\n\n return (\n
\n
\n
\n {services.map((service, index) => (\n
handleOnClick(index)}>\n \n
\n {index === selectedId ? (\n ) : null}\n \n
\n
\n ))}\n
\n
\n \n \n {services[selectedId].tridimensional_image.data.attributes.alternativeText}\n\n \n \n
\n
\n
\n \n
\n
\n )\n};","import React from 'react';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/Service.css';\n\n\nexport const Industry = ({ name, icon }) => {\n return (\n
\n {icon.attributes.alternativeText}\n\n
\n {name}\n
\n
\n );\n};\n","import React, { useRef, useEffect, useState } from 'react';\nimport { Industry } from '@/components/encodelyt/home/Industry';\n\n\nexport const IndustryCarousel = ({ industries }) => {\n const containerRef = useRef(null);\n const viewportRef = useRef(null);\n const spaceRef = useRef(null);\n const [repeatedIndustries, setRepeatedIndustries] = useState([]);\n const [viewportWindowWidth, setViewportWindowWidth] = useState(0); // se refiere al ancho que ocupan las card de industrias sin repetición\n const [viewportWidth, serViewportWidth] = useState(0); // corresponde a la parte visible del viewport, inicialmente 928\n const [visibleIndustries, setVisibleIndustries] = useState(4);\n const [containerWidth, setContainerWidth] = useState(0);\n const minContainerWidth = 928; // pixels\n const xMargin = 10; // pixels\n const industryWidth = 217 // pixels\n\n\n useEffect(() => {\n if (!viewportRef.current) return;\n const onResizeHandler = () => {\n let actualWidth = industryWidth;\n let cnt = 1;\n while (actualWidth + 2*xMargin+industryWidth <= spaceRef.current.offsetWidth) {\n actualWidth += industryWidth+2*xMargin;\n cnt++;\n }\n viewportRef.current.style.width = `${actualWidth}px`;\n serViewportWidth(actualWidth);\n if (visibleIndustries !== cnt) {\n setVisibleIndustries(cnt);\n }\n }\n onResizeHandler();\n window.addEventListener('resize', onResizeHandler);\n\n return () => {\n window.removeEventListener('resize', onResizeHandler);\n }\n }, [viewportRef]);\n\n // Set repeated idndustries\n useEffect(() => {\n if (industries.length) {\n const actualContainerWidth = industries.length*industryWidth + (industries.length-1)*2*xMargin;\n const repeatedIndustriesArray = [...industries];\n setViewportWindowWidth(actualContainerWidth);\n // Si el tamaño es menor al mínimo requerido, agrega íconos repetidos hasta \n // conseguir un exceso de minIconWindowWidth. \n if (actualContainerWidth < minContainerWidth) {\n let extraContainerWidth = 0;\n let i = 0;\n while (extraContainerWidth < minContainerWidth) {\n const industry = industries[i % industries.length];\n repeatedIndustriesArray.push(industry);\n extraContainerWidth += 2*xMargin + industryWidth;\n i++;\n }\n setContainerWidth(actualContainerWidth + extraWindowWidth);\n // Si el tamaño es mayor al mínimo requerido, simplemente lo duplica\n } else {\n for (const industry of industries) {\n repeatedIndustriesArray.push(industry);\n }\n setContainerWidth(2*actualContainerWidth);\n }\n setRepeatedIndustries(repeatedIndustriesArray);\n }\n }, [industries])\n\n // Animate Carousel\n useEffect(() => {\n if (containerRef.current && viewportWindowWidth) {\n let lastFrameTime = performance.now();\n let position = 0;\n containerRef.current.style.width = `${containerWidth}px`;\n const pxPerFrame60Hz = 20;\n const pxPerSecond = pxPerFrame60Hz * 60;\n let timeoutId;\n\n const breakpoints = [];\n for (let i = 0; i <= viewportWindowWidth-20; i += viewportWidth+20) {\n breakpoints.push({reached: false, value: -i});\n }\n \n const animate = () => {\n const currentTime = performance.now();\n let deltaTime = (currentTime - lastFrameTime)/1000;\n deltaTime = deltaTime > 1.25*visibleIndustries ? deltaTime - 1.25*visibleIndustries : deltaTime;\n lastFrameTime = currentTime;\n\n position = Math.max(-viewportWindowWidth-20, position-pxPerSecond*deltaTime);\n if (position === -viewportWindowWidth-20) {\n for (let i = 0; i < breakpoints.length; i++) {\n breakpoints[i].reached=false;\n }\n position = 0;\n }\n if (containerRef.current) {\n const actualBreakpoint = breakpoints.find(e => e.reached == false);\n if (actualBreakpoint && actualBreakpoint.value >= position) {\n position = actualBreakpoint.value;\n containerRef.current.style.transform = `translateX(${position}px)`;\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => { \n // After 5 seconds, resume the animation\n const index = breakpoints.findIndex(e => e.reached == false);\n breakpoints[index].reached = true;\n requestAnimationFrame(animate);\n }, 1250*visibleIndustries);\n } else {\n containerRef.current.style.transform = `translateX(${position}px)`;\n requestAnimationFrame(animate);\n }\n }\n };\n const animationId = requestAnimationFrame(animate);\n \n return () => {\n cancelAnimationFrame(animationId);\n clearTimeout(timeoutId);\n };\n }\n }, [repeatedIndustries, viewportWidth, visibleIndustries]);\n \n return (\n
\n
\n
\n {repeatedIndustries.map((industry, index) => (\n
\n \n
\n ))}\n
\n
\n
\n );\n};","import React, { useRef, useEffect, useState } from 'react';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/ColoredIcons.css';\n\n\nexport const StackIconCarousel = ({ stack }) => {\n const containerRef = useRef(null);\n const [repeatedIcons, setRepeatedIcons] = useState([]);\n const [initialIconWindowWidth, setinitialIconWindowWidth] = useState(0);\n const [iconWindowWidth, setIconWindowWidth] = useState(0);\n const minIconWindowWidth = 1166; // pixels\n const xMargin = 64; // pixels\n \n // Set repeated icons\n useEffect(() => {\n if (stack.length) {\n let actualIconWindowWidth = 0;\n for (const icon of stack) {\n actualIconWindowWidth += icon.width + 2*xMargin\n }\n const repeatedIconsArray = [...stack];\n setinitialIconWindowWidth(actualIconWindowWidth);\n // Si el tamaño es menor al mínimo requerido, agrega íconos repetidos hasta \n // conseguir un exceso de minIconWindowWidth. \n if (actualIconWindowWidth < minIconWindowWidth) {\n let extraWindowWidth = 0;\n let i = 0;\n while (extraWindowWidth < minIconWindowWidth) {\n const icon = stack[i % stack.length];\n repeatedIconsArray.push(icon);\n extraWindowWidth += icon.width + 2*xMargin;\n i++;\n }\n setIconWindowWidth(actualIconWindowWidth + extraWindowWidth);\n // Si el tamaño es mayor al mínimo requerido, simplemente lo duplica\n } else {\n for (const icon of stack) {\n repeatedIconsArray.push(icon);\n }\n setIconWindowWidth(2*actualIconWindowWidth);\n }\n setRepeatedIcons(repeatedIconsArray);\n }\n }, [stack])\n\n // Animate Carousel\n useEffect(() => {\n if (containerRef.current) {\n let lastFrameTime = performance.now();\n let position = 0;\n containerRef.current.style.width = `${iconWindowWidth}px`;\n const pxPerFrame60Hz = 1;\n const pxPerSecond = pxPerFrame60Hz * 60;\n\n const animate = () => {\n const currentTime = performance.now();\n const deltaTime = (currentTime - lastFrameTime)/1000;\n lastFrameTime = currentTime;\n\n position = Math.max(-initialIconWindowWidth, position-pxPerSecond*deltaTime);\n if (position === -initialIconWindowWidth) {\n position = 0;\n }\n if (containerRef.current) {\n containerRef.current.style.transform = `translateX(${position}px)`;\n requestAnimationFrame(animate);\n }\n };\n\n const animationId = requestAnimationFrame(animate);\n \n return () => {\n cancelAnimationFrame(animationId);\n };\n }\n }, [repeatedIcons]);\n \n return (\n
\n
\n {repeatedIcons.map((icon, index) => (\n
\n {icon.alternativeText}\n\n
\n ))}\n
\n
\n );\n};\n ","import React from 'react';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/Service.css';\n\n\nexport const Team = ({ team }) => {\n return (\n
\n
\n
\n {team.image.data.attributes.alternativeText}\n
\n
\n {team.introduction}\n
\n
\n
\n
\n
\n
\n
\n {team.mission_icon.data.attributes.alternativeText}\n Misión\n
\n {team.mission}\n
\n
\n \n
\n
\n
\n
\n
\n {team.vision_icon.data.attributes.alternativeText}\n\n Visión\n
\n {team.vision}\n
\n
\n
\n
\n
\n );\n};\n","\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\n\nexport const HoverableMail = ({ type }) => {\n let suffix;\n if (type === 'encodelyt') {\n import('@/styles/encodelyt/HoverableMail.css');\n suffix = '-encodelyt';\n } else if (type === 'alicia') {\n import('@/styles/alicia/HoverableMail.css');\n suffix = '-alicia';\n }\n\n return (\n \n
\n
\n \n \n \n contacto@encodelyt.com\n
\n
\n \n )\n}","import React, { useState } from 'react';\nimport { Button } from '@/components/base/Button';\nimport { HoverableMail } from '@/components/base/HoverableMail';\n\n\nexport const Meeting = ({ type }) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const toggleVisibility = () => {\n setIsVisible(!isVisible);\n };\n\n let header;\n if (type === 'encodelyt') {\n header = (\n
\n
\n )\n } else if (type === 'alicia') {\n header = (\n
\n
\n )\n } else if (type === 'alicia-panel') {\n header = (\n
\n
\n )\n\n }\n\n return (\n
\n {isVisible ? (\n header\n )\n : (\n
\n \n {type === 'encodelyt' || type == 'alicia' ? (\n
\n \n
\n ) : null}\n
\n )}\n
\n )\n}","import React, { useState, useRef, useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport '@/styles/encodelyt/PostCard.css';\n\n\nconst binarySearch = (container, availableHeight, content, saveInitialHtml) => {\n let min = 0;\n if (content.length === 1) {\n const initialContainerInnerHTML = saveInitialHtml ? container.innerHTML : null;\n const words = content[0].props.children.split(' ');\n let max = words.length;\n let mid;\n \n while (min < max) {\n mid = Math.floor((min + max) / 2);\n container.innerHTML = container.innerHTML + `${words.slice(0, mid).join(' ')} (ver más...)`;\n if (container.scrollHeight <= availableHeight) {\n min = mid + 1;\n } else {\n max = mid;\n }\n container.innerHTML = initialContainerInnerHTML;\n }\n if (max === 0) {\n container.innerHTML = container.innerHTML + ` (ver más...)`;\n } else if (max !== words.length) {\n container.innerHTML = container.innerHTML + `${words.slice(0, mid-1).join(' ')} (ver más...)`;\n }\n } else {\n let max = content.length-1;\n let mid;\n while (min < max) {\n mid = Math.floor((min + max) / 2);\n container.innerHTML = content.slice(0, mid).map(element => ReactDOMServer.renderToString(element)).join('');\n\n if (container.scrollHeight <= availableHeight) {\n min = mid + 1;\n } else {\n max = mid;\n }\n }\n binarySearch(container, availableHeight, [content[mid]], true);\n } \n};\n\n\nexport const PostCardContentContainer = ({ content, parentRef, titleRef }) => {\n const containerRef = useRef(null);\n const [availableHeight, setAvailableHeight] = useState(0);\n const [contentHeight, setContentHeight] = useState(0);\n \n useEffect(() => {\n if (!(titleRef.current && parentRef.current)) return;\n const titleObserver = new ResizeObserver(() => {\n if (titleRef.current && parentRef.current)\n setAvailableHeight(parentRef.current.offsetHeight-titleRef.current.offsetHeight);\n });\n const contentObserver = new ResizeObserver(() => {\n setContentHeight(containerRef.current.scrollHeight);\n });\n titleObserver.observe(titleRef.current);\n contentObserver.observe(containerRef.current);\n return () => {\n titleObserver.disconnect(); \n contentObserver.disconnect(); \n }\n }, []);\n\n useEffect(() => {\n if (!(containerRef.current)) return;\n binarySearch(containerRef.current, availableHeight, content, false); \n }, [contentHeight, availableHeight]);\n\n return (\n
\n );\n};","import React, {useState, useRef, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { PostCardContentContainer } from '@/components/encodelyt/blog/PostCardContentContainer';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/PostCard.css';\n\n\nexport const PostCard = ({ post, type }) => {\n\n if (type == '1') {\n return (\n \n
\n
\n {post.attributes.image.data.attributes.alternativeText}\n\n
\n
\n {post.attributes.title}\n
\n
\n \n )\n } if (type == '2') {\n const text = post.attributes.content.filter(element => element.type === 'paragraph').map(element => element.children.filter(childElement => childElement.type === 'text').map(childElement => childElement.text)).flat();\n const textSpan = text.map((element, index) => {element})\n const parentRef = useRef(null);\n const titleRef = useRef(null);\n\n return (\n \n
\n
\n
\n {post.attributes.image.data.attributes.alternativeText}\n\n
\n
\n
\n
\n {post.attributes.title}\n
\n \n
\n
\n \n )\n } if (type == '3') {\n const text = post.attributes.content.filter(element => element.type === 'paragraph').map(element => element.children.filter(childElement => childElement.type === 'text').map(childElement => childElement.text)).flat();\n const textSpan = text.map((element, index) => {element})\n const parentRef = useRef(null);\n const titleRef = useRef(null);\n \n return (\n \n
\n
\n
\n {post.attributes.image.data.attributes.alternativeText}\n\n
\n
\n
\n
\n {post.attributes.title}\n
\n \n
\n
\n \n )\n } if (type == '4') {\n\n return (\n \n
\n
\n
\n {post.attributes.image.data.attributes.alternativeText}\n\n
\n
\n {post.attributes.title}\n
\n
\n
\n \n )\n }\n};","import React from 'react';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { PostCard } from '@/components/encodelyt/blog/PostCard';\n\n\nexport const PostGrid = ({ posts, smallVersionType = '1' }) => {\n\n // [1, 2, 3, 4, 5, 6, 7] => [[1, 2, 3], [4, 5, 6], [7]]\n const createListOfTriplet = (elements) => {\n const listOfPairs = [];\n for (let i = 0; i < elements.length; i += 3) {\n const pair = elements.slice(i, i + 3);\n listOfPairs.push(pair);\n }\n return listOfPairs;\n }\n const tripletsPosts = createListOfTriplet(posts);\n\n if (!posts.length) {\n return \n }\n\n return (\n <>\n {/* Phone version */}\n
\n {posts.map((post, index) => (\n
\n \n
\n ))}\n
\n {/* Desktop version */}\n
\n {tripletsPosts.map((tripletsPost, index) => (\n
\n {tripletsPost.length === 3 ? (\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n ) : tripletsPost.length === 2 && tripletsPosts.length === 1 ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : tripletsPost.length === 2 ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : (\n
\n \n
\n )}\n
\n ))}\n
\n \n )\n};","import React from 'react';\nimport { Link } from 'react-router-dom';\n\n\nexport const HoverableSvgIcon = ({ isHovered, setIsHovered, icon, hoveredIcon, to, ariaLabel, hideOnPhone=true }) => {\n return (\n setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n aria-label={ariaLabel}\n >\n {isHovered ? hoveredIcon : icon}\n \n );\n};","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/SmallCard.css';\n\n\nexport const SmallCard = ({ entity, id, title, icon=null }) => {\n return (\n \n
\n
\n {icon ? (\n {icon.attributes.alternativeText}\n\n ): (\n \n \n \n )}\n
\n
\n {title}\n
\n
\n \n )\n};\n\n\nexport const SmallCard2= ({ entity, id, title }) => {\n return (\n \n
\n \n \n \n {title}\n
\n \n )\n};\n\n\n","import React, { useState, useEffect, useRef } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { HoverableSvgIcon } from '@/components/base/HoverableSvgIcon';\nimport { SmallCard2 } from '@/components/encodelyt/SmallCard';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/encodelyt/Navbar.css';\n\n\nexport const Navbar = ({ logo, services }) => {\n const [currentServices, setCurrentServices] = useState([]);\n const [isServicesHovered, setIsServicesHovered] = useState(false);\n const [isAliciaHovered, setIsAliciaHovered] = useState(false);\n const [isLinkedInHovered, setIsLinkedInHovered] = useState(false);\n const [isWhatsAppHovered, setIsWhatsAppHovered] = useState(false);\n const [isPanelVisible, setIsPanelVisible] = useState(false);\n const [isServicePanelVisible, setIsServicePanelVisible] = useState(false);\n const serviceButtonRef = useRef(null);\n const location = useLocation();\n const currentPath = location.pathname;\n\n useEffect(() => {\n setCurrentServices(services);\n }, [services])\n\n\n const togglePanelVisibility = () => {\n setIsPanelVisible(!isPanelVisible);\n };\n\n const toggleServicePanelVisibility = () => {\n setIsServicePanelVisible(!isServicePanelVisible);\n };\n\n const aliciaIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n\n const hoveredAliciaIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n\n const linkedInIcon = (\n \n \n \n )\n const hoveredLinkedInIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n const whatsAppIcon = (\n \n \n \n \n )\n const hoveredWhatsAppIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n\n return (\n <>\n
\n
\n
\n {/* Logo */}\n
\n
\n {!isPanelVisible ? (\n \n \n \n ) : (\n \n \n \n \n )}\n
\n
\n \n {logo ? (\n {logo.attributes.alternativeText}\n\n ) : \n }\n \n
\n
\n {/* Sections */}\n
\n \n Inicio\n \n \n Casos de éxito\n \n \n Blog\n \n {setIsServicesHovered(true); toggleServicePanelVisibility()}} \n onMouseLeave={() => {setIsServicesHovered(false); toggleServicePanelVisibility()}} \n >\n
\n \n \n \n
\n
\n
\n
\n {/* Displayable panel */}\n {isPanelVisible && (\n
\n
\n \n \n \n \n Inicio\n \n
\n
\n \n \n \n \n Casos de éxito\n \n
\n
\n \n \n \n \n Blog\n \n
\n
\n \n \n \n \n Servicios\n \n
\n
\n \n \n \n \n Alicia\n \n
\n
\n )}\n \n\n );\n};","import React, { useState, useEffect} from 'react';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { fetchEncodelytPartnerLogos, getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport { Link } from 'react-router-dom';\n\n\nexport const PartnerList = ({ type }) => {\n const [partnerLogos, setPartnerLogos] = useState(null);\n\n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchEncodelytPartnerLogos();\n setPartnerLogos(data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n let cls;\n if (type === 'encodelyt') {\n cls = 'base-i-small-title font-medium';\n } else if (type === 'alicia') {\n cls = 'base-p-small-title';\n }\n\n return ( \n
\n
\n Nuestros socios\n {partnerLogos ? (\n
\n
\n \n {partnerLogos.anid.data.attributes.alternativeText}\n\n \n \n {partnerLogos.openBeauchef.data.attributes.alternativeText}\n\n \n
\n
\n \n {partnerLogos.corfo.data.attributes.alternativeText}\n\n \n \n {partnerLogos.ohcowork.data.attributes.alternativeText}\n\n \n
\n
\n ) : \n }\n
\n
\n )\n};","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { PartnerList } from '@/components/base/PartnerList';\nimport { HoverableMail } from '@/components/base/HoverableMail';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const Footer = ({ logo, serviceId, startRef }) => {\n const location = useLocation();\n const currentPath = location.pathname;\n\n const toStart = () => {\n if (startRef.current) {\n startRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n\n return (\n
\n
\n
\n
\n {/* Sections */}\n
\n {logo ? (\n \n \n \n ) : \n }\n
\n currentPath === '/' && toStart()}>\n Inicio\n \n (currentPath === '/casos-de-exito' || currentPath === '/casos-de-exito/') && toStart()}>\n Casos de éxito\n \n (currentPath === '/blog' || currentPath === '/blog/') && toStart()}>\n Blog\n \n (currentPath === '/servicios' || currentPath === '/servicios/') && toStart()}>\n Servicios\n \n
\n
\n
\n {/* Contact */}\n
\n Contacto\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n {/* Partners */}\n \n
\n
\n
\n
\n
\n
\n © 2024 Encodelyt\n
\n
\n
\n )\n};","import React, { useState, useEffect, useRef } from 'react';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport { Navbar } from '@/components/encodelyt/Navbar';\nimport { Footer } from '@/components/encodelyt/Footer';\nimport { fetchEncodelytLogo, fetchEncodelytFirst5Services } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\n\n\nconst withEncodelytSettings = (Component) => {\n return function WithEncodelytSettings(props) {\n const [logo, setLogo] = useState(null);\n const [services, setServices] = useState([]);\n const startRef = useRef(null);\n\n useEffect(() => {\n const fetchData = async () => {\n const data = await fetchEncodelytLogo();\n setLogo(data.v1 ? data.v1.data : null);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n const { data } = await fetchEncodelytFirst5Services();\n setServices(data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n return (\n <>\n \n \n Encodelyt\n \n \n
\n \n
\n \n
\n
\n
\n
\n \n );\n }\n};\n\nexport default withEncodelytSettings;","import React, { useState, useEffect, useRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Button } from '@/components/base/Button';\nimport { Title } from '@/components/base/Title';\nimport { Shortcut } from '@/components/encodelyt/Shortcut';\nimport { AnimatedBackground } from '@/components/encodelyt/home/AnimatedBackground';\nimport { IntroductionImages } from '@/components/encodelyt/home/IntroductionImages';\nimport { ServiceList } from '@/components/encodelyt/home/ServiceList';\nimport { IndustryCarousel } from '@/components/encodelyt/home/IndustryCarousel';\nimport { StackIconCarousel } from '@/components/encodelyt/home/StackIconCarousel';\nimport { Team } from '@/components/encodelyt/home/Team';\nimport { Meeting } from '@/components/base/Meeting';\nimport { PostGrid } from '@/components/encodelyt/blog/PostGrid';\nimport withEncodelytSettings from '@/hocs/withEncodelytSettings';\nimport { fetchEncodelytHome, fetchEncodelytLastBlogPosts, getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport '@/styles/ColoredIcons.css';\n\n\nconst HomePage = ({ services }) => {\n const [introduction, setIntroduction] = useState(null);\n const [introductionImages, setIntroductionImages] = useState(null);\n const [homepageServices, setHomepageServices] = useState([]);\n const [industries, setIndustries] = useState([]);\n const [stack, setStack] = useState([]);\n const [team, setTeam] = useState(null);\n const [pressQuote, setPressQuote] = useState(null);\n const [pressQuoteUrl, setPressQuoteUrl] = useState(null);\n const [pressQuoteSource, setPressQuoteSource] = useState(null);\n const [pressAppearances, setPressAppearances] = useState([]);\n const [lastPosts, setLastPosts] = useState([]);\n const meetingRef = useRef(null);\n\n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchEncodelytHome();\n setIntroduction(data.introduction);\n setIntroductionImages(data.introduction_images);\n setIndustries(data.industries ? data.industries.data.map(industry => industry.attributes) : []);\n setStack(data.stack? data.stack.data.map(icon => icon.attributes) : []);\n setTeam(data.team);\n setPressQuote(data.press_quote);\n setPressQuoteSource(data.press_quote_source);\n setPressQuoteUrl(data.press_quote_url);\n setPressAppearances(data.press_appearances ? data.press_appearances.data : []); \n }\n asyncFoldTry(fetchData);\n }, []);\n\n useEffect(()=> {\n setHomepageServices(services.map(service => service.attributes));\n }, [services]);\n\n useEffect(()=> {\n const fetchData = async () => {\n setLastPosts([]);\n const { data } = await fetchEncodelytLastBlogPosts(3);\n setLastPosts(data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n const handleIntroductionButton = () => {\n if (meetingRef.current) {\n meetingRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n \n return (\n <>\n {/* Introduction */}\n
\n \n
\n
\n
\n \n </div>\n {introduction ? (\n <div className='base-p-text mt-9 mb-8 desktop:max-h-[245px]' style={{ overflow: 'hidden' }}>\n {introduction}\n </div>\n ): <LoadingWheel type='encodelyt' margin={true} />}\n <div className=\"max-w-[455px]\">\n <Button name='¡IMPULSA TU NEGOCIO!' onClick={handleIntroductionButton} type='encodelyt-purple' />\n </div>\n </div>\n <IntroductionImages images={introductionImages}/>\n </div> \n </div>\n {/* Our services */}\n <div style={{ backgroundColor: '#F5F3FF' }}>\n <div className='pt-10 pb-9 max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] w-full h-full mx-auto'> \n <div className='hidden max-tablet:block mb-[58px]'> \n <Title type='encodelyt' name='Descubre nuestros servicios' underline={false}/>\n </div>\n <div className='hidden tablet:block mb-[58px]'>\n <Title type='encodelyt' name='Descubre nuestros servicios' underline={false} center={true}/>\n </div>\n {homepageServices.length ? <ServiceList services={homepageServices}/> : <LoadingWheel type='encodelyt' margin={true} />}\n </div>\n </div>\n {/* Industries */}\n <div className='pt-[22px] pb-[15px]' style={{ background: \"linear-gradient(270deg, #AA8DF8 0%, #814CF2 100%)\" }}>\n <div className='flex max-tablet:px-[20px] max-desktop:pr-[20px] desktop:pr-[137px] max-w-[1440px] w-full h-full mx-auto'>\n <svg className='w-[123px] h-[184px] mr-[18px] shrink-0 hidden tablet:block' viewBox=\"0 0 118 184\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"12\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"10\" cy=\"44\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"10\" cy=\"76\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"10\" cy=\"108\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"10\" cy=\"140\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"10\" cy=\"172\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"12\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"44\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"76\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"108\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"140\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"42\" cy=\"172\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"12\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"44\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"76\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"108\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"140\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"74\" cy=\"172\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"12\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"44\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"76\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"108\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"140\" r=\"12\" fill=\"#C6B6FC\"/>\n <circle cx=\"106\" cy=\"172\" r=\"12\" fill=\"#C6B6FC\"/>\n </svg>\n <div className='flex max-tablet:flex-col w-full tablet:mt-[10px]'>\n <svg className='w-[30px] h-[30px] mr-[2px] shrink-0 hidden tablet:block' viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M20.2188 16.25H5V13.75H20.2188L13.2188 6.75L15 5L25 15L15 25L13.2188 23.25L20.2188 16.25Z\" fill=\"white\"/>\n </svg> \n <div className='base-i-small-title tablet:max-w-[186px] w-full tablet:mr-[16px] max-tablet:mb-[32px]' style={{ color: '#FFF'}}>\n <span>Sabemos que cada </span><span style={{ fontWeight: '700' }}>industria</span><span> es única</span>\n </div>\n {industries.length ? <IndustryCarousel industries={industries}/> : <LoadingWheel type='encodelyt'/>}\n </div>\n </div>\n </div>\n {/* Our stack */}\n <div className='pt-[100px] max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] w-full h-full mx-auto'>\n <div className='max-w-[572px]'>\n <Title type='encodelyt' name='TRABAJAMOS CON UN AMPLIO STACK TECNOLÓGICO' underline={false} />\n </div>\n {stack.length ? <StackIconCarousel stack={stack}/> : <LoadingWheel type='encodelyt' margin={true} />}\n </div>\n {/* Our team */}\n <div className='max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] w-full h-full mx-auto'>\n <Title type='encodelyt' name='Nosotros' underline={false} center={true}/>\n <div className='pt-[40px] pb-[89px]'>\n {team ? <Team team={team}/> : <LoadingWheel type='encodelyt' margin={true} />}\n </div>\n </div>\n {/* Press appearances */}\n {pressAppearances.length ? (\n <div className='pt-[42px] pb-[12px]' style={{ background: \"linear-gradient(270deg, #AA8DF8 0%, #814CF2 100%)\" }}>\n <div className='max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] w-full h-full mx-auto'>\n <div className='mb-[42px]'>\n <Title type='encodelyt' name='Encodelyt en los medios' underline={false} center={true} style={{ color: \"#FFF\" }}/>\n </div>\n {pressQuote && pressQuoteSource ? (\n <div className='flex flex-col mx-auto max-w-[690px] mb-[9px]'>\n {pressQuoteUrl ? (\n <>\n <Link to={pressQuoteUrl} target='_blank' className='mb-[14px]'>\n <div className='w-full py-[28px] px-[40px]' style={{ borderRadius: \"15px 15px 15px 0px\", background: \"#FFF\", boxShadow: \"0px 4px 4px 0px rgba(0, 0, 0, 0.25)\" }}>\n <span className='base-i-title text-center'>{pressQuote}</span>\n </div>\n </Link>\n <div className='flex justify-end'>\n <Link to={pressQuoteUrl} target='_blank'> \n <span className='base-p-text' style={{ color: \"#FFF\", fontStyle: \"italic\" }}>{pressQuoteSource}</span>\n </Link>\n </div> \n </>\n ) : (\n <>\n <div className='w-full py-[28px] px-[40px] mb-[14px]' style={{ borderRadius: \"15px 15px 15px 0px\", background: \"#FFF\", boxShadow: \"0px 4px 4px 0px rgba(0, 0, 0, 0.25)\" }}>\n <span className='base-i-title text-center'>{pressQuote}</span>\n </div>\n <div className='flex justify-end'>\n <span className='base-p-text' style={{ color: \"#FFF\", fontStyle: \"italic\" }}>{pressQuoteSource}</span>\n </div>\n </>\n )}\n </div>\n ) : null}\n <div className='flex flex-wrap justify-center'>\n {pressAppearances.map(pressAppearance => (\n <div key={pressAppearance.id} className='mx-[24px] my-[30px]'>\n <Link to={pressAppearance.attributes.url} target='_blank'>\n <img \n className='colored-icon h-[80px] w-full' \n src={getFullUrl(pressAppearance.attributes.icon.data.attributes.url)} \n alt={pressAppearance.attributes.icon.data.attributes.alternativeText} \n />\n </Link>\n </div>\n ))}\n </div>\n </div>\n </div>\n ): null}\n {/* Meeting*/}\n <div className='max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] mt-[100px] w-full h-full mx-auto' ref={meetingRef}>\n <Title type='encodelyt' name='Agenda una reunión hoy mismo' underline={false} center={true}/>\n <Meeting type='encodelyt'/>\n </div>\n {/* Blog */}\n <div className='max-tablet:mb-[33px] tablet:mb-[324px] max-desktop:px-[20px] desktop:px-[137px] max-w-[1440px] w-full h-full mx-auto'>\n <div className='px-[20px] desktop:px-[137px] py-[50px] hidden max-tablet:block'>\n <span className='base-p-title' style={{ fontStyle: 'italic' }}>Revisa las últimas entradas de nuestro blog</span> \n </div>\n <div className='px-[20px] desktop:px-[137px] text-center py-[50px] hidden tablet:block'>\n <span className='base-p-title' style={{ fontStyle: 'italic' }}>Revisa las últimas entradas de nuestro blog</span> \n </div>\n <PostGrid posts={lastPosts}/>\n <div className='max-w-[400px] ml-auto tablet:mx-auto max-tablet:mt-[22px] tablet:mt-[60px]'>\n <Shortcut name='Ir al blog' to='/blog' />\n </div>\n </div>\n </>\n );\n};\n\nexport default withEncodelytSettings(HomePage);","import React, { useEffect, useState, useRef } from 'react';\nimport { Title } from '@/components/base/Title';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { PostGrid } from '@/components/encodelyt/blog/PostGrid';\nimport withEncodelytSettings from '@/hocs/withEncodelytSettings';\nimport { fetchEncodelytLastBlogPosts } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\n\n\nconst BlogPage = () => {\n const [loading, setLoading] = useState(true);\n const [lastPosts, setLastPosts] = useState([]);\n const [lastPage, setLastPage] = useState(0);\n const [page, setPage] = useState(1);\n const [totalPages, setTotalPages] = useState(null);\n const bottomBoundaryRef = useRef(null);\n\n useEffect(()=> {\n let ignore = false;\n const fetchData = async () => {\n if (totalPages && page > totalPages) {\n return;\n }\n setLoading(true);\n const { data, meta } = await fetchEncodelytLastBlogPosts(6, null, page);\n setTotalPages(meta.pagination.pageCount);\n setLoading(false);\n if (!ignore) {\n if (data.length) {\n setLastPosts(prevPosts => [...prevPosts, ...data]);\n setLastPage(prev => prev + 1);\n }\n }\n } \n asyncFoldTry(fetchData); \n return () => { ignore = true } \n }, [page]);\n\n\n useEffect(() => {\n const handleScroll = () => {\n if (\n bottomBoundaryRef.current &&\n window.innerHeight + document.documentElement.scrollTop >= bottomBoundaryRef.current.offsetTop &&\n page === lastPage\n ) {\n setPage(prev => prev + 1);\n }\n }\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [page, lastPage]);\n\n return (\n <div className='max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <div className='max-tablet:mb-[33px] tablet:mb-[100px]'>\n <div className='mt-[35px] mb-[60px]'>\n <Title type='encodelyt' name='Blog' center={true} />\n </div>\n <div className='px-[20px] desktop:px-[137px] text-center mt-[35px] mb-[90px] hidden tablet:block'>\n <span className='base-p-title' style={{ fontStyle: 'italic' }}>Revisa las últimas entradas de nuestro blog</span> \n </div>\n <PostGrid posts={lastPosts} smallVersionType='4' />\n {loading ? (\n <div className='max-tablet:mt-[33px] tablet:mt-[100px]'>\n <LoadingWheel type='encodelyt' />\n </div>\n ) : null}\n <div ref={bottomBoundaryRef}></div>\n </div>\n </div>\n );\n};\n\nexport default withEncodelytSettings(BlogPage);","import React from 'react';\nimport {\n FacebookShareButton,\n WhatsappShareButton,\n TwitterShareButton\n} from \"react-share\";\n\n\nexport const ShareIcons = ({ title }) => {\n return (\n <div className='flex gap-[16px]'>\n <TwitterShareButton url={window.location.href} hashtags={['encodelyt']} title={title}>\n <svg width=\"25\" height=\"26\" viewBox=\"0 0 25 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_543_366)\">\n <path d=\"M14.5609 11.0804L23.6691 0.5H21.5107L13.6021 9.68678L7.28546 0.5H0L9.55195 14.392L0 25.4872H2.15847L10.5102 15.7856L17.181 25.4872H24.4665L14.5603 11.0804H14.5609ZM11.6045 14.5144L10.6367 13.1311L2.9362 2.12377H6.25149L12.4659 11.007L13.4337 12.3904L21.5117 23.9372H18.1964L11.6045 14.515V14.5144Z\" fill=\"#181818\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_543_366\">\n <rect width=\"24.4665\" height=\"25\" fill=\"white\" transform=\"translate(0 0.5)\"/>\n </clipPath>\n </defs>\n </svg> \n </TwitterShareButton>\n <FacebookShareButton url={window.location.href} hashtag='encodelyt'>\n <svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_543_368)\">\n <path d=\"M25.4666 13C25.4666 6.0965 19.8701 0.5 12.9666 0.5C6.06305 0.5 0.466553 6.0965 0.466553 13C0.466553 18.862 4.50255 23.781 9.94705 25.132V16.82H7.36955V13H9.94705V11.354C9.94705 7.0995 11.8726 5.1275 16.0496 5.1275C16.8416 5.1275 18.2081 5.283 18.7671 5.438V8.9005C18.4721 8.8695 17.9596 8.854 17.3231 8.854C15.2736 8.854 14.4816 9.6305 14.4816 11.649V13H18.5646L17.8631 16.82H14.4816V25.4085C20.6711 24.661 25.4671 19.391 25.4671 13H25.4666Z\" fill=\"#181818\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_543_368\">\n <rect width=\"25\" height=\"25\" fill=\"white\" transform=\"translate(0.466553 0.5)\"/>\n </clipPath>\n </defs>\n </svg> \n </FacebookShareButton>\n <WhatsappShareButton url={window.location.href} title={title}>\n <svg width=\"31\" height=\"30\" viewBox=\"0 0 31 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.51897 23.6596L9.90091 23.8859C11.5051 24.8379 13.3443 25.3415 15.22 25.3424H15.2239C20.9841 25.3424 25.672 20.6556 25.6744 14.895C25.6754 12.1036 24.5894 9.47853 22.6163 7.5039C21.6485 6.53007 20.4973 5.75786 19.2291 5.23198C17.9609 4.70609 16.601 4.43697 15.2281 4.4402C9.46343 4.4402 4.77542 9.1265 4.77337 14.8867C4.77053 16.8536 5.32442 18.7812 6.37102 20.4466L6.61966 20.8417L5.56373 24.6966L9.51897 23.6596ZM2.5448 27.6831L4.32872 21.1698C3.22853 19.2637 2.64973 17.1012 2.65041 14.8858C2.65331 7.95522 8.29335 2.31689 15.2241 2.31689C18.5874 2.3186 21.7442 3.62745 24.1184 6.00332C26.4926 8.3792 27.7989 11.5372 27.7977 14.8959C27.7946 21.826 22.1537 27.4653 15.2239 27.4653H15.2185C13.1143 27.4645 11.0467 26.9366 9.21018 25.9352L2.5448 27.6831Z\" fill=\"#181818\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.9524 9.502C11.7169 8.97891 11.4692 8.96831 11.2455 8.95925L10.6432 8.9519C10.4337 8.9519 10.0933 9.03051 9.80555 9.34495C9.51777 9.65939 8.70587 10.4193 8.70587 11.965C8.70587 13.5107 9.83169 15.0043 9.98857 15.2142C10.1454 15.424 12.1619 18.6971 15.3554 19.9563C18.0091 21.0029 18.5491 20.7947 19.1253 20.7424C19.7016 20.6901 20.9841 19.9825 21.2457 19.2489C21.5074 18.5152 21.5075 17.8867 21.4291 17.7553C21.3507 17.6239 21.1412 17.5458 20.8267 17.3885C20.5123 17.2313 18.968 16.4714 18.68 16.3665C18.3921 16.2615 18.1827 16.2094 17.973 16.5238C17.7634 16.8383 17.162 17.5456 16.9786 17.7553C16.7953 17.965 16.6122 17.9913 16.2978 17.8342C15.9834 17.6772 14.9717 17.3453 13.7714 16.275C12.8375 15.4423 12.2071 14.4139 12.0235 14.0996C11.84 13.7853 12.004 13.6151 12.1616 13.4586C12.3026 13.3178 12.4757 13.0917 12.6331 12.9083C12.7905 12.725 12.8423 12.5939 12.9468 12.3846C13.0514 12.1752 12.9993 11.9913 12.9207 11.8343C12.8421 11.6773 12.2317 10.1234 11.9524 9.502Z\" fill=\"#181818\"/>\n </svg>\n </WhatsappShareButton>\n </div>\n );\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport { SmallCard } from '@/components/encodelyt/SmallCard';\n\n\nexport const MovableSmallCardList = ({ title, entityList, entityType, entityTitleGetter, entityIconGetter=(entity)=>null }) => {\n const [isFixed, setIsFixed] = useState(false);\n const [containerInitialPosition, setContainerInitialPosition] = useState({ x: 0, topY: 0, bottomY: 0 });\n const [containerContentHeight, setContainerContentHeight] = useState(0);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n\n // Get containerRef div position dynamically\n useEffect(() => {\n if (!containerRef.current) return;\n const eventHandler = () => {\n const divRect = containerRef.current.getBoundingClientRect();\n setContainerInitialPosition({ x: window.scrollX + divRect.left, topY: window.scrollY + divRect.top, bottomY: window.scrollY + divRect.bottom });\n setIsFixed(window.scrollY + divRect.top <= window.scrollY + 24);\n }\n eventHandler();\n window.addEventListener('resize', eventHandler);\n window.addEventListener('scroll', eventHandler);\n\n return () => {\n window.removeEventListener('resize', eventHandler);\n window.removeEventListener('scroll', eventHandler);\n }\n }, [containerRef]);\n\n // Get contentRef height dynamically\n useEffect(() => {\n if (!(contentRef.current)) return;\n const resizeObserver = new ResizeObserver(() => {\n setContainerContentHeight(contentRef.current.offsetHeight);\n });\n resizeObserver.observe(contentRef.current);\n return () => {\n resizeObserver.disconnect(); \n }\n }, []);\n\n const calculateContainerFixedDivTopPosition = () => {\n if (containerInitialPosition.bottomY > (window.scrollY + containerContentHeight + 24)) {\n return '24px';\n } else {\n return `${containerInitialPosition.bottomY - (window.scrollY + containerContentHeight )}px`;\n }\n }\n\n return (\n <div ref={containerRef} className='tablet:max-w-[335px] w-full mt-[10px]'>\n <div\n ref={contentRef} \n className='flex flex-col hidden tablet:block tablet:max-w-[335px]'\n style={{\n position: isFixed ? 'fixed' : 'static',\n top: isFixed ? calculateContainerFixedDivTopPosition() : 'auto',\n left: isFixed ? containerInitialPosition.x + 'px' : 'auto',\n }}\n >\n {entityList.length ? (\n <div className='pb-[5px]'>\n <span className='base-p-text' style={{ fontWeight: \"600\" }}>\n {title}\n </span>\n </div>\n ) : null}\n {entityList.map((entity, index) => (\n <div key={index} className='py-[5px]'>\n <SmallCard entity={entityType} id={entity.id} title={entityTitleGetter(entity)} icon={entityIconGetter(entity)} />\n </div>\n ))}\n </div>\n <div className='flex flex-col hidden max-tablet:block tablet:max-w-[335px]'>\n {entityList.length ? (\n <div className='pb-[5px] text-center'>\n <span className='base-p-text' style={{ fontWeight: \"600\" }}>\n {title}\n </span>\n </div>\n ) : null}\n {entityList.slice(0, 3).map((entity, index) => (\n <div key={index} className='py-[5px]'>\n <SmallCard entity={entityType} id={entity.id} title={entityTitleGetter(entity)} icon={entityIconGetter(entity)} />\n </div>\n ))}\n </div>\n </div>\n )\n};","import React, { useState, useEffect } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { Helmet } from 'react-helmet-async';\nimport { BlocksRenderer } from '@strapi/blocks-react-renderer';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Title } from '@/components/base/Title';\nimport { ShareIcons } from '@/components/encodelyt/blog/ShareIcons';\nimport { MovableSmallCardList } from '@/components/encodelyt/MovableSmallCardList';\nimport { PostGrid } from '@/components/encodelyt/blog/PostGrid';\nimport withEncodelytSettings from '@/hocs/withEncodelytSettings';\nimport { fetchEncodelytBlogPost, \n fetchEncodelytLastBlogPosts, \n fetchEncodelytRandomBlogPosts, \n getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\n\n\nconst BlogPostPage = () => {\n const [title, setTitle] = useState(null);\n const [image, setImage] = useState(null);\n const [content, setContent] = useState(null);\n const [lastPosts, setLastPosts] = useState([]);\n const [randomPosts, setRandomPosts] = useState([]);\n const { id } = useParams();\n const navigate = useNavigate();\n\n // Get blog post instance data by id\n useEffect(()=> {\n const fetchData = async () => {\n setTitle(null);\n setImage(null);\n setContent(null);\n const data = await fetchEncodelytBlogPost(id);\n setTitle(data.title);\n setImage(data.image);\n setContent(data.content);\n }\n asyncFoldTry(fetchData, ()=>navigate('/not_found', {replace: true}));\n \n }, [id]);\n\n // Get last blog post instances\n useEffect(()=> {\n const fetchData = async () => {\n setLastPosts([]);\n const { data } = await fetchEncodelytLastBlogPosts(5, id);\n setLastPosts(data);\n }\n asyncFoldTry(fetchData);\n }, [id]);\n\n // Get random blog post instances\n useEffect(()=> {\n const fetchData = async () => {\n setRandomPosts([]);\n const data = await fetchEncodelytRandomBlogPosts(2, id);\n setRandomPosts(data);\n }\n asyncFoldTry(fetchData);\n }, [id]);\n\n return (\n <>\n <Helmet>\n <meta property='og:title' content='Title of the article'/>\n <meta property='og:image' content='//media.example.com/ 1234567.jpg'/>\n <meta property='og:description' content='Description that will show in the preview'/>\n <meta property='og:url' content='//www.example.com/URL of the article'/>\n </Helmet>\n \n <div className='max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <div className='mt-[35px] mb-[60px]'>\n <Title type='encodelyt' name='Blog' center={true} />\n </div>\n {/* Blog image */}\n {image ? (\n <img \n className='max-phone:h-[206px] max-tablet:h-[256px] tablet:h-[504px] w-full object-cover rounded-[15px]'\n src={getFullUrl(image.data.attributes.url)}\n alt={image.data.attributes.alternativeText}\n />\n ) : <LoadingWheel type='encodelyt' />} \n <div className='flex max-tablet:flex-col max-tablet:items-center mt-[24px] mb-[60px] gap-[24px]'>\n {/* Blog title */}\n <div className='w-full mt-[20px]'>\n <span className='base-i-large-title'>{title}</span>\n </div>\n {/* Share */}\n <div className='max-tablet:mx-auto tablet:max-w-[335px] tablet:w-full'>\n <div className='mb-[16px] max-tablet:text-center'>\n <span className='base-p-text' style={{ fontWeight: \"600\" }}>\n Comparte\n </span>\n </div>\n <ShareIcons title={title} />\n </div>\n </div>\n {/* Content */}\n <div className='flex max-tablet:flex-col max-tablet:items-center gap-[24px] min-h-[550px]'>\n <div className='w-full' style={{ borderBottom: \"4px solid #814CF2\" }}>\n {/* Blog content */}\n <div className='flex flex-col'>\n {content ? (\n <BlocksRenderer\n content={content} \n blocks={{\n paragraph: ({ children }) => <span className=\"base-p-text mb-[24px]\">{children}</span>,\n image: ({ children, image }) => <img className=\"rounded-[15px] mb-[24px]\" src={image.url}>{children}</img>,\n }}\n />\n ) : <LoadingWheel type='encodelyt' />}\n {/* Share */}\n <div className='flex justify-end mb-[20px] mt-[50px]'> \n <ShareIcons title={title} />\n </div>\n </div>\n </div>\n {/* Also interesting */}\n <MovableSmallCardList title='Tambien te puede interesar' entityList={lastPosts} entityType='blog' entityTitleGetter={(entity) => entity.attributes.title} />\n </div>\n <div className='mt-[33px] mb-[64px]'>\n <div className='mb-[20px]'>\n <Title type='encodelyt' name='Otras entradas' underline={false} />\n </div> \n <PostGrid posts={randomPosts} />\n </div>\n </div>\n </>\n );\n};\n\nexport default withEncodelytSettings(BlogPostPage);","import React, { useState, useEffect } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { BlocksRenderer } from '@strapi/blocks-react-renderer';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { MovableSmallCardList } from '@/components/encodelyt/MovableSmallCardList';\nimport withEncodelytSettings from '@/hocs/withEncodelytSettings';\nimport { fetchEncodelytService, \n getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport '@/styles/encodelyt/Service.css';\n\n\nconst ServicePage = ({ services }) => {\n const [name, setName] = useState(null);\n const [image, setImage] = useState(null);\n const [description, setDescription] = useState(null);\n const [content, setContent] = useState(null);\n const [otherServices, setOtherServices] = useState([]);\n const navigate = useNavigate();\n const { id } = useParams();\n\n // Get service instance by id\n useEffect(()=> {\n const fetchData = async () => {\n setName(null);\n setImage(null);\n setDescription(null);\n setContent(null);\n const data = await fetchEncodelytService(id);\n setName(data.name);\n setImage(data.image);\n setDescription(data.description);\n setContent(data.content);\n }\n asyncFoldTry(fetchData, ()=>navigate('/not_found', {replace: true}));\n setOtherServices(services.filter(service => service.id != id));\n }, [id]);\n\n // Get other services\n useEffect(()=> {\n setOtherServices(services.filter(service => service.id != id));\n }, [id, services]);\n\n return (\n <>\n {/* Service header */}\n <div className='pt-[128px] pb-[50px] mb-[81px]' style={{ background: \"#F5F3FF\", boxShadow: \"0px 4px 4px 0px rgba(0, 0, 0, 0.25)\" }}>\n <div className='flex gap-[20px] max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <div className='flex flex-col max-w-[572px] w-full'>\n {/* Service name */}\n <div className='mb-[38px]'>\n {name ? (\n <div className='flex flex-col gap-[53px]'>\n <span className='base-i-text'>{`Servicios/${name}`}</span>\n <span className='base-i-title'>{name}</span>\n </div>\n ) : <LoadingWheel type='encodelyt' />}\n </div>\n {/* Service description */}\n <div className='flex flex-col max-h-[270px] overflow-hidden'>\n {description ? (\n <BlocksRenderer\n content={description} \n blocks={{\n paragraph: ({ children }) => <span className=\"base-p-text mb-[24px]\">{children}</span>,\n image: ({ children, image }) => <img className=\"rounded-[15px] mb-[24px]\" src={image.url}>{children}</img>,\n }}\n />\n ) : <LoadingWheel type='encodelyt' />}\n </div>\n </div>\n {/* Service image */}\n <div className='mt-[21px]'>\n {image ? (\n <div className='service-filter relative w-full'> \n <img \n className=\"max-phone:h-[186px] max-tablet:h-[206px] tablet:h-[405px] service-image object-cover w-full rounded-[15px]\" \n src={getFullUrl(image.data.attributes.url)}\n alt={image.data.attributes.alternativeText}\n />\n </div>\n ) : <LoadingWheel type='encodelyt' />} \n </div>\n </div>\n </div>\n {/* Content */}\n <div className='flex max-tablet:flex-col max-tablet:items-center gap-[24px] mb-[114px] max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <div className='mt-[25px] w-full min-h-[550px]'>\n {/* Service content */}\n {content ? (\n <div className='flex flex-col'>\n <BlocksRenderer\n content={content} \n blocks={{\n paragraph: ({ children }) => <span className=\"base-p-text mb-[24px]\">{children}</span>,\n image: ({ children, image }) => <img className=\"rounded-[15px] mb-[24px]\" src={image.url}>{children}</img>,\n }}\n />\n </div>\n ) : <div className='h-[550px]'><LoadingWheel type='encodelyt'/></div>}\n </div>\n {/* Other services */}\n <MovableSmallCardList \n title='Otros servicios' \n entityList={otherServices} \n entityType='servicios' \n entityTitleGetter={(entity) => entity.attributes.name}\n entityIconGetter={(entity) => entity.attributes.icon.data}\n \n />\n </div>\n </>\n );\n};\n\nexport default withEncodelytSettings(ServicePage);","import React, { useState, useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { getFullUrl } from '@/api/strapi';\n\n\n\nexport const AliciaShowCase = ({ aliciaData }) => {\n const [descriptionSpan, setDescriptionSpan] = useState(null);\n const navigate = useNavigate();\n\n useEffect(() => {\n if (!aliciaData) return;\n if (aliciaData.description.includes('robot promotor')) {\n const splitedDescription = aliciaData.description.split('robot promotor')\n setDescriptionSpan(splitedDescription.map((element, index) => {\n return index == splitedDescription.length - 1 ? (\n <span key={index} className='base-p-text'>{element}</span>\n ) : (\n <span key={index}>\n <span className='base-p-text'>{element}</span>\n <span className='base-p-text' style={{color: '#F04492'}}>robot promotor</span>\n </span>\n )\n }))\n } else {\n setDescriptionSpan(<span className='base-p-text' style={{ fontWeight: \"400\" }}>{aliciaData.description}</span>)\n }\n }, [aliciaData])\n\n if (!aliciaData) return <LoadingWheel type='alicia' />\n\n \n\n return (\n <div className='flex max-tablet:flex-col max-tablet:items-center tablet:justify-between min-h-[613px] tablet:pt-[71px] relative'>\n <svg className='max-w-[1031px] w-full h-[418px] absolute right-0 hidden tablet:block' viewBox=\"0 0 1031 418\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M948 61.5C777.5 124 500.6 247.5 431 239.5C344 229.5 493 125 643.5 125C1030.52 125 178.5 384 0.5 416\" stroke=\"#DB1F6B\" strokeOpacity=\"0.3\" strokeWidth=\"3\"/>\n <path d=\"M971.994 22.4658L977.626 26.5628C978.718 25.2454 979.835 23.9809 980.955 22.7772C982.074 21.5735 983.282 20.3897 984.569 19.2246L980.285 17.2998L971.984 22.4647L971.994 22.4658ZM981.818 31.7575L988.836 42.9409C991.278 42.6085 993.987 41.8631 996.964 40.6948C999.941 39.5264 1002.81 38.0842 1005.57 36.3692C1010.18 33.5002 1014.08 30.0293 1017.25 25.9544C1020.42 21.8795 1022.32 17.8852 1022.95 13.9814C1019.17 12.8164 1014.74 12.7567 1009.65 13.7915C1004.57 14.8262 999.721 16.783 995.116 19.652C992.349 21.377 989.79 23.3062 987.428 25.4585C985.066 27.6108 983.203 29.7079 981.818 31.7575ZM997.291 29.8747C996.352 28.3618 996.083 26.7119 996.503 24.9174C996.923 23.1328 997.89 21.7613 999.403 20.8226C1000.92 19.8839 1002.59 19.6167 1004.4 20.0397C1006.21 20.4626 1007.6 21.4311 1008.53 22.944C1009.47 24.4569 1009.74 26.1068 1009.32 27.9013C1008.9 29.6859 1007.94 31.0574 1006.42 31.9961C1004.91 32.9347 1003.24 33.202 1001.43 32.779C999.611 32.3561 998.229 31.3876 997.291 29.8747ZM992.824 55.9509L1001.12 50.786L1001.28 46.0949C999.674 46.7309 998.084 47.2787 996.514 47.7281C994.945 48.1776 993.328 48.6016 991.654 48.9992L992.825 55.9409L992.824 55.9509ZM1030.08 9.48135C1029.59 16.1779 1027.5 22.3245 1023.81 27.9113C1020.11 33.4969 1014.84 38.4155 1007.99 42.6748L1007.74 50.9782C1007.71 52.1012 1007.42 53.125 1006.86 54.0691C1006.3 55.0133 1005.56 55.7665 1004.64 56.3385L988.052 66.6594L985 49.3062L974.491 32.4123L960.273 22.0086L976.786 11.6689C977.705 11.0969 978.727 10.7678 979.843 10.6905C980.958 10.6132 982.024 10.802 983.048 11.268L990.604 14.7135C997.456 10.4542 1004.19 7.88225 1010.81 7.00765C1017.44 6.13415 1023.86 6.94804 1030.08 9.47141L1030.08 9.48135ZM962.03 40.2441C964.332 38.8096 966.834 38.3933 969.544 38.9963C972.244 39.5981 974.315 41.0558 975.75 43.3583C977.184 45.6608 977.571 48.1588 976.919 50.8533C976.268 53.5478 974.781 55.6063 972.479 57.0408C970.836 58.0656 968.331 58.6928 964.985 58.9247C961.639 59.1566 957.128 59.0075 951.452 58.4775C953.482 53.1491 955.338 49.0389 957.028 46.1379C958.719 43.2368 960.386 41.2789 962.029 40.2541L962.03 40.2441ZM965.549 45.7867C964.89 46.1964 964.131 47.0478 963.263 48.3399C962.395 49.6319 961.693 50.9726 961.146 52.3607C962.642 52.4866 964.155 52.4534 965.683 52.2812C967.211 52.1089 968.311 51.8085 968.97 51.3988C969.76 50.903 970.289 50.2172 970.55 49.3205C970.81 48.4238 970.702 47.5867 970.207 46.7872C969.713 45.9877 969.011 45.5073 968.096 45.3251C967.18 45.1429 966.329 45.2898 965.539 45.7856L965.549 45.7867Z\" fill=\"#DC206C\" fillOpacity=\"0.3\"/>\n </svg> \n {/* Alicia logo phone version */}\n <img \n className='h-[43px] w-[150px] mt-[36px] mb-[29px] hidden max-tablet:block'\n src={getFullUrl(aliciaData.logo.data.attributes.url)}\n alt={aliciaData.logo.data.attributes.alternativeText}\n />\n {/* Alicia image with circle background */}\n <div className='flex items-center tablet:mt-[43px] max-tablet:w-[297px] max-tablet:h-[297px] tablet:w-[474px] tablet:h-[454px] flex-shrink-0 relative'>\n <svg className='max-tablet:w-[297px] max-tablet:h-[297px] tablet:w-[454px] tablet:h-[454px] absolute' viewBox=\"0 0 454 454\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"227\" cy=\"227\" r=\"227\" fill=\"#DB1F6B\"/>\n <g clipPath=\"url(#clip0_1282_856)\">\n <path d=\"M453.854 1.28621C453.854 1.28621 419.848 -1.34699 331.886 5.13764C239.806 11.9249 281.843 34.3298 202.227 38.0224C153.909 40.2621 113.889 -6.85553 64.2219 5.13764C28.6119 13.7409 1.20282 20.9217 1.20282 20.9217\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.854 10.1471C453.854 10.1471 433.966 8.72453 389.195 10.5935C373.376 11.214 354.448 11.8874 331.983 13.2721C297.698 15.3832 282.073 19.8702 271.455 24.9399C253.729 33.407 252.502 43.2739 202.555 45.6045C180.2 46.6487 161.211 38.3102 140.751 29.3891C115.796 18.5158 92.032 6.12916 64.4649 12.4246C54.1865 14.793 44.5034 17.1235 35.8408 19.3103C14.883 24.5918 1.19061 27.6715 1.19061 27.6715\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.854 19.0077C453.854 19.0077 432.848 17.7138 388.964 19.4465C373.158 20.067 354.375 20.3091 332.093 21.4063C298.208 23.0785 282.596 27.278 271.673 32.2645C253.267 40.6786 253.158 50.8406 202.908 53.1863C179.727 54.2835 161.636 46.399 140.533 37.5687C115.31 27.0208 92.2871 13.7186 64.7322 19.7189C54.4659 21.9511 44.7464 24.2514 35.8894 26.5289C14.7616 31.9013 1.21498 34.4437 1.21498 34.4437\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.854 27.8757C453.854 27.8757 431.718 26.6574 388.721 28.2994C372.915 28.9047 354.29 28.7307 332.178 29.5479C298.706 30.7813 283.094 34.6857 271.868 39.5964C252.769 47.95 253.802 58.4072 203.236 60.7831C179.241 61.9257 162.049 54.5028 140.277 45.7557C114.8 35.5256 92.5301 21.3456 64.9509 27.0131C54.7089 29.1166 44.9407 31.3942 35.8773 33.7398C14.5915 39.2332 1.19061 41.2006 1.19061 41.2006\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.854 36.7363C453.854 36.7363 430.588 35.5937 388.478 37.1524C372.684 37.7351 354.205 37.1524 332.275 37.6821C299.204 38.4842 283.604 42.0859 272.062 46.921C252.271 55.2141 254.433 65.9663 203.564 68.3649C178.742 69.5529 162.474 62.5916 140.034 53.9353C114.314 44.0154 92.7974 28.9729 65.1939 34.3074C54.9762 36.2823 45.1594 38.5296 35.9016 40.9509C14.4578 46.5427 1.19061 47.9652 1.19061 47.9652\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.866 45.5966C453.866 45.5966 429.47 44.5222 388.26 46.0053C372.477 46.5728 354.12 45.0443 332.396 45.8237C299.787 46.9889 284.127 49.501 272.293 54.2529C251.809 62.4854 255.114 73.5328 203.928 75.9541C178.281 77.1875 162.948 70.6801 139.828 62.1147C113.877 52.4974 93.089 36.5923 65.4734 41.6015C55.28 43.4477 45.4147 45.6648 35.9502 48.1618C14.3364 53.8595 1.21502 54.722 1.21502 54.722\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.866 54.4575C453.866 54.4575 428.34 53.4587 388.017 54.8585C372.247 55.4109 354.059 53.3679 332.481 53.9581C300.285 54.8358 284.625 56.9015 272.475 61.5777C251.287 69.7421 255.733 81.0921 204.244 83.5362C177.783 84.8225 163.373 78.7616 139.573 70.2869C113.403 60.9724 93.3441 44.2046 65.7042 48.8808C55.5351 50.5985 45.6212 52.7852 35.9624 55.3579C14.1784 61.154 1.20282 61.4642 1.20282 61.4642\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.866 63.3179C453.866 63.3179 427.211 62.3872 387.774 63.7113C372.016 64.241 354.01 61.6986 332.579 62.0921C300.771 62.6823 285.123 64.3015 272.682 68.9021C250.789 77.006 256.39 88.6511 204.584 91.1254C177.297 92.4571 163.835 86.8502 139.342 78.4739C112.966 69.4469 93.6236 51.8317 65.9593 56.1825C55.8145 57.7791 45.852 59.928 35.9867 62.5763C14.0327 68.4708 1.21502 68.2362 1.21502 68.2362\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.866 72.1786C453.866 72.1786 426.069 71.3084 387.531 72.5645C371.773 73.079 353.95 70.8544 332.664 70.2339C301.282 69.3108 285.609 71.7019 272.876 76.2343C250.278 84.2701 257.021 96.2179 204.912 98.7149C176.799 100.092 164.285 94.9391 139.087 86.6536C112.504 77.9141 93.8666 59.459 66.1781 63.4769C56.0698 64.9448 46.0465 67.0635 35.9867 69.7875C13.8748 75.7803 1.19075 74.9934 1.19075 74.9934\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.866 81.0465C453.866 81.0465 424.939 80.2445 387.3 81.4173C371.554 81.9091 353.901 79.2835 332.773 78.3679C301.828 77.0211 286.131 79.1019 273.083 83.5587C249.78 91.5264 257.677 103.784 205.253 106.297C176.313 107.719 164.759 103.013 138.856 94.833C112.953 86.6534 94.1582 67.0785 66.4332 70.7634C56.3492 72.1027 46.2651 74.1911 36.011 76.9908C13.729 83.082 1.19075 81.7502 1.19075 81.7502\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.878 89.9071C453.878 89.9071 423.821 89.1656 387.069 90.2703C371.335 90.747 353.852 87.7203 332.87 86.5097C302.363 84.7466 286.629 86.5097 273.289 90.8908C249.282 98.7904 258.321 111.351 205.593 113.893C175.839 115.369 165.244 111.101 138.625 103.02C112.006 94.9389 94.4374 74.7132 66.6881 78.0653C56.6284 79.2835 46.4958 81.3341 36.0351 84.2094C13.583 90.3989 1.19054 88.5148 1.19054 88.5148\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.878 98.7678C453.878 98.7678 422.691 98.0868 386.826 99.1234C371.104 99.5774 353.804 96.1497 332.967 94.6439C302.91 92.4647 287.115 93.9024 273.496 98.2154C248.772 106.047 258.977 118.91 205.933 121.475C175.353 122.996 165.73 119.168 138.394 111.2C111.252 103.293 94.7169 82.3405 66.9433 85.3596C56.9079 86.4492 46.7266 88.462 36.0716 91.4205C13.4493 97.7009 1.21486 95.2795 1.21486 95.2795\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.878 107.628C453.878 107.628 421.561 107.008 386.595 107.976C370.873 108.415 353.767 104.586 333.064 102.778C303.444 100.19 287.613 101.295 273.69 105.54C248.261 113.296 259.609 126.469 206.261 129.057C174.855 130.623 166.216 127.233 138.151 119.372C110.086 111.51 94.9964 89.96 67.1863 92.6386C57.1873 93.6072 46.9453 95.5821 36.0838 98.6239C13.2914 105.003 1.20275 102.029 1.20275 102.029\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.878 116.489C453.878 116.489 420.419 115.921 386.352 116.829C370.643 117.245 353.718 113.023 333.162 110.92C303.991 107.931 288.112 108.703 273.897 112.88C247.751 120.56 260.265 134.043 206.601 136.662C174.369 138.273 166.714 135.315 137.908 127.574C110.438 120.189 95.2636 97.61 67.4171 99.9556C57.4424 100.796 47.1397 102.74 36.0959 105.858C13.1334 112.335 1.19054 108.816 1.19054 108.816\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.878 125.357C453.878 125.357 419.289 124.842 386.109 125.69C370.412 126.091 353.67 121.475 333.259 119.061C304.55 115.672 288.61 116.103 274.103 120.212C247.241 127.816 260.909 141.61 206.941 144.251C173.895 145.915 167.213 143.381 137.677 135.753C110.049 128.618 95.5552 105.237 67.6722 107.25C57.734 107.969 47.3705 109.868 36.1202 113.069C12.9876 119.636 1.19054 115.573 1.19054 115.573\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.891 134.218C453.891 134.218 418.171 133.756 385.89 134.535C370.193 134.914 353.658 129.912 333.368 127.188C305.109 123.397 289.108 123.488 274.31 127.529C246.731 135.058 261.565 149.169 207.294 151.825C173.421 153.535 167.735 151.424 137.459 143.918C109.673 137.032 95.859 112.849 67.9396 114.522C58.0257 115.112 47.6136 116.981 36.1689 120.257C12.8662 126.923 1.21495 122.315 1.21495 122.315\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.891 143.078C453.891 143.078 417.029 142.662 385.647 143.388C369.962 143.751 353.621 138.356 333.465 135.33C305.668 131.153 289.606 130.888 274.516 134.861C246.22 142.314 262.209 156.736 207.634 159.414C172.935 161.17 168.245 159.475 137.228 152.105C109.296 145.462 96.1505 120.492 68.1947 121.823C58.3172 122.292 47.8322 124.124 36.1931 127.476C12.7204 134.233 1.22699 129.08 1.22699 129.08\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.891 151.939C453.891 151.939 415.899 151.576 385.404 152.241C369.732 152.582 353.585 146.809 333.55 143.464C306.214 138.901 290.08 138.273 274.711 142.185C245.698 149.555 262.853 164.295 207.962 167.004C172.449 168.805 168.743 167.526 136.973 160.285C108.883 153.883 96.4179 128.126 68.4256 129.118C58.5724 129.466 48.0388 131.251 36.1931 134.687C12.5503 141.542 1.20275 135.844 1.20275 135.844\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.891 160.799C453.891 160.799 414.769 161.722 385.161 161.094C369.489 160.761 353.536 155.26 333.648 151.606C306.773 146.657 290.578 145.673 274.905 149.517C245.163 156.812 263.485 171.862 208.29 174.593C171.951 176.447 169.254 175.569 136.73 168.472C108.507 162.305 96.6973 135.769 68.6564 136.412C58.8396 136.639 48.2453 138.387 36.2053 141.898C12.3924 148.844 1.19059 142.601 1.19059 142.601\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.891 169.66C453.891 169.66 413.627 170.659 384.93 169.947C369.27 169.561 353.512 163.72 333.745 159.74C307.32 154.42 291.064 153.066 275.112 156.842C244.653 164.053 264.141 179.421 208.63 182.175C171.465 184.074 169.776 183.605 136.499 176.644C108.13 170.711 96.9403 142.571 68.9116 143.698C59.1434 144.092 48.4762 145.507 36.2296 149.101C12.2466 156.146 1.19059 149.358 1.19059 149.358\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.903 178.528C453.903 178.528 412.498 179.595 384.7 178.8C369.051 178.354 353.488 172.179 333.854 167.874C307.891 162.184 291.574 160.451 275.33 164.166C244.155 171.294 264.797 186.98 208.982 189.764C170.991 191.709 170.311 191.641 136.28 184.831C107.778 179.118 97.2684 150.198 69.1789 151C59.4351 151.28 48.7071 152.65 36.2782 156.32C12.1252 163.455 1.22712 156.123 1.22712 156.123\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.903 187.389C453.903 187.389 411.343 188.516 384.457 187.653C368.82 187.154 353.451 180.647 333.951 176.016C308.45 169.963 292.06 167.844 275.525 171.499C243.62 178.536 265.441 194.547 209.31 197.354C170.505 199.344 170.821 199.677 136.037 193.011C107.389 187.525 97.5842 157.818 69.4219 158.295C59.7023 158.461 48.9258 159.785 36.2904 163.538C11.9672 170.765 1.21495 162.888 1.21495 162.888\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.903 196.249C453.903 196.249 410.201 197.429 384.226 196.506C368.602 195.954 353.427 189.114 334.049 184.15C309.009 177.741 292.558 175.236 275.731 178.823C243.11 185.777 266.085 202.113 209.651 204.936C170.019 206.979 171.343 207.697 135.794 201.182C107.012 195.916 97.8637 166.315 69.6649 165.574C59.9818 165.316 49.1444 166.898 36.3146 170.734C11.8214 178.051 1.21495 169.637 1.21495 169.637\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.903 205.11C453.903 205.11 409.059 206.336 383.983 205.36C368.371 204.754 353.391 197.589 334.146 192.284C309.555 185.52 293.044 182.622 275.926 186.148C242.576 193.011 266.729 209.673 209.979 212.518C169.521 214.606 171.866 215.711 135.551 209.362C106.636 204.308 98.1553 173.958 69.8957 172.868C60.2369 172.498 49.3389 174.026 36.3147 177.946C11.6513 185.353 1.19068 176.394 1.19068 176.394\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.903 213.97C453.903 213.97 407.917 215.242 383.74 214.213C368.152 213.547 353.354 206.063 334.231 200.426C310.102 193.313 293.518 190.014 276.12 193.48C242.053 200.26 267.36 217.239 210.307 220.115C169.023 222.248 172.388 223.731 135.308 217.549C106.259 212.707 98.4347 181.615 70.1387 180.17C60.5163 179.678 49.5576 181.169 36.339 185.164C11.5055 192.67 1.20279 183.167 1.20279 183.167\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.915 222.831C453.915 222.831 406.787 224.14 383.509 223.065C367.934 222.346 353.318 214.537 334.34 208.56C310.661 201.107 294.029 197.399 276.339 200.804C241.543 207.493 268.029 224.798 210.659 227.696C168.561 229.875 172.935 231.737 135.09 225.729C105.907 221.098 98.7385 189.257 70.406 187.456C60.8201 186.851 49.7885 188.289 36.3755 192.367C11.372 199.964 1.21504 189.916 1.21504 189.916\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.915 231.699C453.915 231.699 405.645 233.031 383.278 231.918C367.715 231.147 353.293 223.02 334.438 216.702C311.208 208.908 294.514 204.792 276.533 208.136C241.021 214.735 268.66 232.365 210.987 235.286C168.063 237.518 173.458 239.742 134.847 233.908C105.542 229.482 99.0301 196.907 70.649 194.751C61.0996 194.025 50.0071 195.424 36.3876 199.579C11.2018 207.266 1.20288 196.68 1.20288 196.68\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.915 240.559C453.915 240.559 404.491 241.914 383.035 240.771C367.484 239.939 353.245 231.51 334.535 224.836C311.742 216.709 295.013 212.177 276.74 215.461C240.498 221.968 269.317 239.924 211.327 242.875C167.577 245.152 173.992 247.748 134.604 242.095C105.166 237.866 99.3096 204.565 70.892 202.053C61.3669 201.213 50.2259 202.56 36.4119 206.797C11.0561 214.575 1.20288 203.445 1.20288 203.445\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.915 249.42C453.915 249.42 403.349 250.797 382.792 249.624C367.253 248.739 353.184 239.999 334.62 232.97C312.265 224.51 295.486 219.562 276.934 222.785C239.964 229.202 269.948 247.49 211.655 250.457C167.091 252.779 174.515 255.738 134.361 250.267C104.789 246.242 99.589 212.207 71.1228 209.332C61.6341 208.371 50.4202 209.68 36.4119 213.993C10.886 221.862 1.19072 210.194 1.19072 210.194\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.915 258.281C453.915 258.281 402.207 259.665 382.561 258.477C367.034 257.539 353.148 248.497 334.729 241.112C312.812 232.327 295.985 226.955 277.141 230.117C239.453 236.436 270.604 255.057 211.996 258.046C166.605 260.414 175.049 263.729 134.13 258.455C104.424 254.626 99.8806 219.872 71.378 216.634C61.9258 215.559 50.6511 216.815 36.4484 221.211C10.7523 229.172 1.20288 216.959 1.20288 216.959\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.927 267.141C453.927 267.141 401.077 268.533 382.33 267.33C366.816 266.339 353.099 256.987 334.838 249.246C313.346 240.136 296.495 234.34 277.359 237.442C238.943 243.669 271.26 262.616 212.348 265.635C166.131 268.057 175.596 271.719 133.911 266.634C104.084 262.995 100.196 227.522 71.6451 223.928C62.2171 222.74 50.8817 223.943 36.4846 228.423C10.6064 236.474 1.21484 223.724 1.21484 223.724\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.927 276.009C453.927 276.009 399.935 277.394 382.087 276.191C366.597 275.139 353.026 265.499 334.923 257.388C313.856 247.959 296.968 241.732 277.554 244.774C238.42 250.903 271.904 270.183 212.676 273.225C165.633 275.691 176.118 279.702 133.656 274.814C103.695 271.363 100.464 235.179 71.8759 231.214C62.4844 229.913 51.0882 231.071 36.4968 235.633C10.4484 243.775 1.20268 230.48 1.20268 230.48\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.927 284.87C453.927 284.87 398.793 286.247 381.857 285.036C366.378 283.931 352.965 273.989 335.033 265.522C314.379 255.776 297.467 249.117 277.76 252.098C237.898 258.137 272.548 277.742 213.016 280.806C165.159 283.319 176.653 287.669 133.425 282.993C103.331 279.732 100.743 242.837 72.1311 238.509C62.7639 237.094 51.3069 238.199 36.5211 242.844C10.3026 251.077 1.20268 237.245 1.20268 237.245\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.927 293.73C453.927 293.73 397.651 295.092 381.614 293.889C365.576 292.686 352.892 282.494 335.118 273.656C314.877 263.592 297.953 256.495 277.955 259.423C237.376 265.363 273.192 285.301 213.344 288.388C164.661 290.953 177.175 295.637 133.182 291.165C102.954 288.093 101.022 250.487 72.3619 245.795C63.0312 244.267 51.5135 245.319 36.5211 250.048C10.1325 258.371 1.19052 243.995 1.19052 243.995\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.927 302.591C453.927 302.591 396.509 303.93 381.371 302.742C365.929 301.524 352.807 290.999 335.215 281.798C315.387 271.416 298.439 263.887 278.161 266.755C236.853 272.597 273.848 292.868 213.684 295.985C164.175 298.596 177.71 303.612 132.951 299.36C102.59 296.47 101.314 258.167 72.617 253.097C63.3106 251.455 51.7443 252.462 36.5575 257.267C9.98672 265.681 1.20268 250.759 1.20268 250.759\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.939 311.452C453.939 311.452 395.379 312.768 381.14 311.596C365.71 310.324 352.734 299.512 335.312 289.932C315.873 279.241 298.925 271.273 278.356 274.08C236.319 279.823 274.48 300.435 214.012 303.567C163.677 306.223 178.232 311.573 132.708 307.532C102.213 304.823 101.581 265.825 72.8601 260.384C63.5901 258.629 51.9509 259.582 36.5697 264.47C9.82884 272.968 1.19056 257.517 1.19056 257.517\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.939 320.312C453.939 320.312 394.237 321.591 380.909 320.448C365.491 319.124 352.649 308.024 335.421 298.066C316.383 287.064 299.435 278.65 278.574 281.404C235.82 287.049 275.148 307.994 214.365 311.149C163.215 313.85 178.779 319.525 132.477 315.712C101.836 313.184 101.873 273.482 73.1152 267.678C63.8695 265.809 52.1818 266.71 36.6062 271.681C9.6952 280.269 1.20272 264.273 1.20272 264.273\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.939 329.18C453.939 329.18 393.107 330.421 380.666 329.301C365.273 327.924 352.54 316.536 335.507 306.208C316.845 294.896 299.909 286.043 278.757 288.737C235.274 294.283 275.768 315.56 214.68 318.746C162.705 321.5 179.289 327.493 132.222 323.899C101.448 321.553 102.128 281.155 73.3461 274.973C64.1246 272.99 52.3762 273.838 36.6062 278.892C9.51295 287.571 1.19056 271.038 1.19056 271.038\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.939 338.041C453.939 338.041 391.965 339.236 380.423 338.154C365.042 336.717 352.431 325.049 335.604 314.342C317.331 302.72 300.407 293.42 278.963 296.061C234.763 301.502 276.424 323.119 215.021 326.328C162.219 329.127 179.824 335.43 131.991 332.071C101.083 329.899 102.408 288.82 73.5891 282.26C64.4041 280.171 52.5948 280.966 36.6305 286.096C9.36715 294.866 1.19056 277.788 1.19056 277.788\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.939 346.901C453.939 346.901 390.835 348.036 380.192 347.007C364.835 345.517 352.334 333.561 335.713 322.484C317.805 310.551 300.905 300.813 279.182 303.393C234.253 308.735 277.08 330.686 215.373 333.917C161.757 336.762 180.358 343.383 131.773 340.258C100.719 338.26 102.699 296.492 73.8563 289.561C64.6956 287.359 52.8257 288.101 36.6669 293.314C9.2335 302.175 1.20272 284.56 1.20272 284.56\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.951 355.762C453.951 355.762 389.705 356.844 379.961 355.86C364.617 354.317 352.224 342.074 335.81 330.618C318.279 318.375 301.403 308.19 279.376 310.718C233.731 315.961 277.724 338.245 215.701 341.506C161.259 344.397 180.881 351.328 131.53 348.437C100.33 346.614 102.966 304.157 74.0994 296.848C64.963 294.532 53.0444 295.221 36.6913 300.518C9.07563 309.469 1.20281 291.309 1.20281 291.309\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.951 364.622C453.951 364.622 388.575 365.636 379.718 364.713C364.386 363.117 352.103 350.594 335.908 338.752C318.728 326.199 301.889 315.568 279.583 318.042C233.208 323.18 278.368 345.812 216.053 349.088C160.786 352.031 181.415 359.258 131.299 356.617C99.9655 354.967 103.246 311.83 74.3545 304.142C65.2424 301.721 53.2631 302.349 36.7156 307.736C8.92981 316.771 1.21492 298.081 1.21492 298.081\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.951 373.491C453.951 373.491 387.445 374.429 379.488 373.574C364.179 371.917 351.981 359.114 336.005 346.901C319.19 334.038 302.375 322.968 279.789 325.382C232.698 330.421 279.024 353.386 216.394 356.685C160.3 359.674 181.95 367.195 131.068 364.804C99.5889 363.321 103.513 319.51 74.6097 311.444C65.5219 308.909 53.4939 309.484 36.7399 314.955C8.78401 324.08 1.21492 304.846 1.21492 304.846\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.951 382.351C453.951 382.351 386.303 383.214 379.245 382.419C363.948 380.709 351.835 367.619 336.102 355.028C320.368 342.437 302.873 330.338 279.984 332.699C232.163 337.632 279.656 360.937 216.722 364.259C159.814 367.293 182.46 375.117 130.825 372.976C99.2001 371.667 103.768 327.167 74.8526 318.723C65.7891 316.082 53.7005 316.604 36.7641 322.151C8.62605 331.367 1.21492 311.595 1.21492 311.595\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.951 391.212C453.951 391.212 385.186 391.991 379.002 391.272C363.73 389.509 351.69 376.132 336.187 363.162C320.684 350.193 303.347 337.716 280.178 340.023C231.641 344.851 280.3 368.497 217.05 371.849C159.316 374.928 182.97 383.04 130.582 381.156C98.8114 380.013 104.036 334.84 75.0835 326.018C66.0444 323.263 53.8828 323.71 36.7642 329.362C8.43175 338.631 1.19069 318.353 1.19069 318.353\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.964 400.072C453.964 400.072 384.068 400.753 378.771 400.125C363.523 398.309 351.556 384.651 336.296 371.304C321.037 357.956 303.857 345.108 280.397 347.355C231.143 352.085 280.956 376.063 217.402 379.438C158.842 382.571 183.505 390.97 130.351 389.343C98.4226 388.367 104.303 342.52 75.3387 333.319C66.3238 330.451 54.1137 330.852 36.8007 336.58C8.29815 345.948 1.2029 325.125 1.2029 325.125\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.964 408.933C453.964 408.933 382.938 409.515 378.54 408.978C363.305 407.102 351.41 393.164 336.406 379.438C320.964 365.318 304.356 352.485 280.603 354.68C230.621 359.303 281.612 383.622 217.742 387.02C158.356 390.198 184.015 398.877 130.121 397.515C98.046 396.705 104.558 350.185 75.5938 340.598C66.6033 337.624 54.3323 337.965 36.825 343.776C8.14019 353.234 1.21501 331.866 1.21501 331.866\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.964 417.794C453.964 417.794 381.82 418.278 378.297 417.831C363.086 415.902 351.252 401.677 336.491 387.58C321.729 373.483 304.841 359.871 280.798 362.012C230.098 366.529 282.244 391.189 218.07 394.617C157.87 397.84 184.526 406.807 129.878 405.702C97.6451 405.051 104.813 357.866 75.8368 347.9C66.8705 344.813 54.551 345.108 36.8493 350.995C7.99438 360.544 1.21501 338.639 1.21501 338.639\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.964 426.662C453.964 426.662 380.69 427.032 378.054 426.692C362.855 424.71 351.094 410.197 336.588 395.722C322.082 381.247 305.327 367.233 281.004 369.344C229.564 373.695 282.9 398.763 218.41 402.206C157.384 405.475 185.036 414.714 129.647 413.889C97.2684 413.405 105.068 365.553 76.092 355.202C67.15 352.009 54.7819 352.244 36.8736 358.214C7.84861 367.854 1.21501 345.403 1.21501 345.403\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.964 435.522C453.964 435.522 379.573 435.772 377.823 435.537C362.648 433.502 350.936 418.702 336.685 403.848C322.434 388.995 305.826 374.611 281.199 376.661C229.053 380.929 283.531 406.315 218.738 409.781C156.886 413.102 185.534 422.614 129.404 422.054C96.8675 421.728 105.324 373.211 76.3229 362.474C67.4052 359.167 54.9763 359.356 36.8858 365.402C7.69069 375.14 1.2029 352.138 1.2029 352.138\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.976 444.383C453.976 444.383 378.467 444.511 377.592 444.39C362.442 442.302 350.778 427.206 336.794 411.99C322.64 396.592 306.324 382.011 281.417 383.993C228.555 388.17 284.199 413.881 219.091 417.377C156.424 420.744 186.068 430.528 129.173 430.248C96.4786 430.089 105.554 380.929 76.5778 369.783C67.6722 366.378 55.2069 366.499 36.9099 372.636C7.54472 382.465 1.21486 358.925 1.21486 358.925\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n <path d=\"M453.976 453.243H377.349C346.429 450.784 331.801 387.489 281.612 391.325C228.033 395.419 284.831 421.448 219.419 424.967C154.006 428.485 186.554 438.428 128.93 438.428C86.0057 438.428 115.784 353.348 36.922 379.839C7.38671 389.759 1.20265 365.674 1.20265 365.674\" stroke=\"white\" strokeWidth=\"2\" strokeMiterlimit=\"10\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_1282_856\">\n <rect width=\"454\" height=\"454\" fill=\"white\" transform=\"matrix(-1 0 0 1 454 0)\"/>\n </clipPath>\n </defs>\n </svg>\n <img \n className='max-tablet:h-[204px] tablet:h-[330px] tablet:w-[474px] pb-[3px] relative'\n src={getFullUrl(aliciaData.image.data.attributes.url)}\n alt={aliciaData.image.data.attributes.alternativeText}\n /> \n </div>\n <div className='flex flex-col max-tablet:items-center ml-[20px] max-w-[573px] w-full'>\n {/* Alicia logo desktop version */}\n <img \n className='h-[63px] w-[216px] mb-[40px] hidden tablet:block'\n src={getFullUrl(aliciaData.logo.data.attributes.url)}\n alt={aliciaData.logo.data.attributes.alternativeText}\n />\n {/* Alicia description */}\n <div className='tablet:min-h-[184px] mb-[36px] mt-[14px]'>\n <div className='hidden max-tablet:block'>\n {descriptionSpan}\n </div> \n <div className='hidden tablet:block'>\n <span className='base-p-text' style={{ fontWeight: \"400\" }}>{aliciaData.description}</span>\n </div>\n </div>\n <div className='w-[295px]'>\n <Button \n name='CONOCE ALICIA'\n onClick={() => navigate('/alicia')}\n type={'alicia-pink'}\n />\n </div>\n </div>\n </div>\n );\n};","import React from 'react';\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const MopitShowcase = ({ mopitData }) => {\n if (!mopitData) return <LoadingWheel type='encodelyt' />\n\n return (\n <div>\n {/* Mopit logo phone version */}\n <img \n className='h-[90px] w-[190px] mx-auto hidden max-tablet:block'\n src={getFullUrl(mopitData.logo.data.attributes.url)}\n alt={mopitData.logo.data.attributes.alternativeText}\n />\n <div className='flex max-tablet:flex-col-reverse max-tablet:items-center tablet:justify-between min-h-[613px] relative'>\n {/* Mopit glitters */}\n <svg className='max-tablet:w-[129px] max-tablet:w-[108px] tablet:w-[217px] tablet:h-[181px] absolute top-0 max-tablet:right-[62%] tablet:right-[33%] z-10' viewBox=\"0 0 217 181\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_1282_857)\">\n <path d=\"M84.0701 15C84.0701 15 80.9001 97.94 0.0800781 98C2.95008 97.96 84.0601 97.52 84.0601 181C84.0601 97.52 165.17 97.96 168.04 98C87.2301 97.94 84.0701 15 84.0701 15Z\" fill=\"#F2BF46\" stroke=\"black\" strokeWidth=\"3\" strokeLinejoin=\"round\"/>\n <path d=\"M84.5036 68C84.5036 68 83.3523 97.9783 54 98C55.0423 97.9855 84.5 97.8265 84.5 128C84.5 97.8265 113.958 97.9855 115 98C85.6513 97.9783 84.5036 68 84.5036 68Z\" fill=\"white\" stroke=\"black\" strokeWidth=\"3\" strokeLinejoin=\"round\"/>\n </g>\n <g clipPath=\"url(#clip1_1282_857)\">\n <path d=\"M192.812 35.8345C196.723 38.4477 201.425 40.4821 207.069 41.5847C203.45 42.3303 199.208 43.5854 194.991 45.6957C189.713 48.3374 184.452 52.33 180.515 58.3568C178.034 62.1527 176.095 66.7316 174.998 72.2478C173.9 66.7316 171.961 62.1527 169.48 58.3568C165.543 52.33 160.282 48.3374 155.004 45.6957C150.788 43.5855 146.546 42.3305 142.927 41.5848C148.572 40.4823 153.275 38.4478 157.187 35.8345C163.184 31.829 167.269 26.5002 170.049 21.2035C172.712 16.13 174.187 11.0676 175.002 7.17705C175.817 11.0676 177.291 16.1299 179.953 21.2034C182.732 26.5 186.816 31.829 192.812 35.8345Z\" fill=\"#66CDFF\" stroke=\"black\" strokeWidth=\"2\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_1282_857\">\n <rect width=\"168.13\" height=\"166\" fill=\"white\" transform=\"translate(0 15)\"/>\n </clipPath>\n <clipPath id=\"clip1_1282_857\">\n <rect width=\"84\" height=\"83\" fill=\"white\" transform=\"translate(133)\"/>\n </clipPath>\n </defs>\n </svg>\n <div className='flex flex-col max-tablet:items-center tablet:mr-[20px] mt-[60px] max-w-[572px] w-full h-full'>\n {/* Mopit logo desktop version */}\n <div className='ml-[20%]'> \n <img \n className='h-[102px] w-[214px] hidden tablet:block'\n src={getFullUrl(mopitData.logo.data.attributes.url)}\n alt={mopitData.logo.data.attributes.alternativeText}\n />\n </div>\n {/* Mopit description */}\n <div \n className='min-h-[250px] p-[20px] mb-[24px] hidden tablet:block'\n style={{ border: \"2px solid #000\", \n background: \"#FFF\",\n boxShadow: \"2px 2px 0px 0px #000\" \n }}\n >\n <span className='base-p-text' style={{ fontWeight: \"400\" }}>{mopitData.description}</span>\n </div>\n <div className='mb-[24px] hidden max-tablet:block'>\n <span className='base-p-text' style={{ fontWeight: \"400\" }}>{mopitData.description}</span>\n </div>\n <div className='w-[133px] tablet:ml-auto'>\n <Button \n name='Ver más'\n onClick={() => {window.location.href = 'https://dev.d13yi98wzz4y2y.amplifyapp.com/'}}\n svg={false}\n type={'mopit'}\n />\n </div>\n </div>\n {/* Mopit image with circle background */}\n <div className='flex justify-center max-tablet:mt-[30px] tablet:mt-[45px] max-tablet:w-[295px] max-tablet:h-[295px] tablet:w-[507px] tablet:h-[441px] flex-shrink-0 relative'>\n <svg className='max-tablet:w-[295px] max-tablet:h-[295px] tablet:w-[441px] tablet:h-[441px] absolute right-0' xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 437 437\">\n <defs>\n <style>\n {`\n .cls-100 {\n fill: #1a1a1a;\n }\n .cls-100, .cls-200 {\n stroke-width: 0px;\n }\n .cls-200 {\n fill: #f2bf47;\n }\n `}\n </style>\n </defs>\n <g id=\"Capa_1-2\" data-name=\"Capa 1\">\n <g>\n <ellipse className=\"cls-100\" cx=\"220.38\" cy=\"220.85\" rx=\"216.62\" ry=\"216.15\"/>\n <g>\n <path className=\"cls-200\" d=\"M216.62,431.79c-57.73,0-112-22.43-152.82-63.16C22.98,327.9.5,273.75.5,216.15S22.98,104.39,63.8,63.66C104.62,22.93,158.9.5,216.62.5s112,22.43,152.82,63.16c40.82,40.73,63.3,94.88,63.3,152.48s-22.48,111.75-63.3,152.48c-40.82,40.73-95.09,63.16-152.82,63.16Z\"/>\n <path className=\"cls-100\" d=\"M216.62,1c29.11,0,57.35,5.69,83.93,16.91c25.68,10.84,48.74,26.35,68.54,46.11c19.8,19.76,35.35,42.77,46.21,68.39c11.24,26.52,16.94,54.7,16.94,83.74s-5.7,57.22-16.94,83.74c-10.86,25.62-26.41,48.63-46.21,68.39c-19.8,19.76-42.86,35.27-68.54,46.11c-26.58,11.22-54.82,16.91-83.93,16.91s-57.35-5.69-83.93-16.91c-25.68-10.84-48.74-26.35-68.54-46.11c-19.8-19.76-35.35-42.77-46.21-68.39C6.7,273.37,1,245.19,1,216.15s5.7-57.22,16.94-83.74c10.86-25.62,26.41-48.63,46.21-68.39c19.8-19.76,42.86-35.27,68.54-46.11c26.58-11.22,54.82-16.91,83.93-16.91M216.62,0C96.99,0,0,96.77,0,216.15s96.99,216.15,216.62,216.15,216.62-96.77,216.62-216.15S336.26,0,216.62,0h0Z\"/>\n </g>\n </g>\n </g>\n </svg>\n <img \n className='max-tablet:h-[193px] max-tablet:w-[290px] max-tablet:mt-[64px] tablet:h-[337px] tablet:w-[507px] tablet:mt-[79px] relative'\n src={getFullUrl(mopitData.image.data.attributes.url)}\n alt={mopitData.image.data.attributes.alternativeText}\n /> \n </div>\n </div>\n </div>\n );\n};","import React, { useState, useEffect } from 'react';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { AliciaShowCase } from '@/components/encodelyt/success_showcases/AliciaShowcase';\nimport { MopitShowcase } from '@/components/encodelyt/success_showcases/MopitShowcase';\nimport withEncodelytSettings from '@/hocs/withEncodelytSettings';\nimport { fetchEncodelytSuccessShowcase, getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\n\n\nconst SuccessShowcasePage = () => {\n const [introduction, setIntroduction] = useState(null);\n const [introductionImage, setIntroductionImage] = useState(null);\n const [aliciaData, setAliciaData] = useState(null);\n const [mopitData, setMopitData] = useState(null);\n\n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchEncodelytSuccessShowcase();\n setIntroduction(data.introduction);\n setIntroductionImage(data.introduction_image);\n setAliciaData(data.alicia);\n setMopitData(data.mopit);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n return ( \n <>\n {/* Introduction */}\n <div className='flex gap-[20px] my-[32px] max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <div className='max-w-[572px] w-full'>\n <div>\n <div className='inline-block mb-[29px] rounded-[15px] px-[10px]' style={{ background: \"#F5F3FF\" }}>\n <span className='base-p-title'>Casos de éxito</span>\n </div>\n </div>\n <span className='base-p-text' style={{ fontWeight: \"400\" }}>{introduction}</span>\n </div>\n <div className='my-auto mx-auto hidden tablet:block'>\n {introductionImage ? (\n <img \n className='h-[387px] w-full object-cover rounded-[15px]'\n src={getFullUrl(introductionImage.data.attributes.url)}\n alt={introductionImage.data.attributes.alternativeText}\n />\n ) : <LoadingWheel type='encodelyt' />} \n </div>\n </div>\n {/* Alicia */}\n <div style={{ background: \"#F5F3FF\" }}>\n <div className='max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <AliciaShowCase aliciaData={aliciaData} />\n </div>\n </div> \n {/* Mopit */}\n <div className='max-tablet:mt-[51px] tablet:mt-[18px] max-tablet:mb-[148px] tablet:mb-[124px] max-w-[1440px] w-full h-full mx-auto max-desktop:px-[20px] desktop:px-[137px]'>\n <MopitShowcase mopitData={mopitData}/>\n </div>\n </>\n );\n};\n\nexport default withEncodelytSettings(SuccessShowcasePage);","import React, { useState } from 'react';\nimport '@/styles/alicia/Input.css';\n\n\nexport const Input = ({ type, name, placeholder, register, setFocus }) => {\n const [focused, setFocused] = useState(false);\n\n const handleContainerClick = () => {\n setFocus(name);\n setFocused(true);\n }\n\n let SvgIcon = null;\n\n if (type === 'email') {\n SvgIcon = (\n <svg className='sign-in-input-icon' width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM12 13L4 8V18H20V8L12 13ZM12 11L20 6H4L12 11ZM4 8V6V18V8Z\" fill=\"#787987\"/>\n </svg>\n );\n } else if (type === 'password') {\n SvgIcon = (\n <svg className='sign-in-input-icon' width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 22C5.45 22 4.97917 21.8042 4.5875 21.4125C4.19583 21.0208 4 20.55 4 20V10C4 9.45 4.19583 8.97917 4.5875 8.5875C4.97917 8.19583 5.45 8 6 8H7V6C7 4.61667 7.4875 3.4375 8.4625 2.4625C9.4375 1.4875 10.6167 1 12 1C13.3833 1 14.5625 1.4875 15.5375 2.4625C16.5125 3.4375 17 4.61667 17 6V8H18C18.55 8 19.0208 8.19583 19.4125 8.5875C19.8042 8.97917 20 9.45 20 10V20C20 20.55 19.8042 21.0208 19.4125 21.4125C19.0208 21.8042 18.55 22 18 22H6ZM6 20H18V10H6V20ZM12 17C12.55 17 13.0208 16.8042 13.4125 16.4125C13.8042 16.0208 14 15.55 14 15C14 14.45 13.8042 13.9792 13.4125 13.5875C13.0208 13.1958 12.55 13 12 13C11.45 13 10.9792 13.1958 10.5875 13.5875C10.1958 13.9792 10 14.45 10 15C10 15.55 10.1958 16.0208 10.5875 16.4125C10.9792 16.8042 11.45 17 12 17ZM9 8H15V6C15 5.16667 14.7083 4.45833 14.125 3.875C13.5417 3.29167 12.8333 3 12 3C11.1667 3 10.4583 3.29167 9.875 3.875C9.29167 4.45833 9 5.16667 9 6V8Z\" fill=\"#787987\"/>\n </svg>\n );\n }\n\n return (\n <>\n <div className={`sign-in-input-container ${focused ? 'sign-in-input-container-focused' : ''} my-[10px]`} onClick={handleContainerClick} onFocus={() => setFocused(true)} onBlur={() => setFocused(false)}>\n {SvgIcon}\n <input \n className='sign-in-input-text w-3/4' \n autoComplete=\"off\"\n type={type == 'email' ? 'text' : type} \n placeholder={placeholder}\n {...register(name, {\n required: true,\n pattern: type == 'email' && /^\\S+@\\S+$/i\n })}\n />\n </div>\n </>\n );\n};","import React from 'react';\nimport '@/styles/alicia/Error.css';\n\n\nexport const Error = () => {\n\n return (\n <>\n <div className={`sign-in-error-container my-[10px] animate-fade-down animate-duration-300 animate-normal`}>\n <svg className='sign-in-error-icon' width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 25.5C18.425 25.5 18.7813 25.3563 19.0688 25.0688C19.3563 24.7812 19.5 24.425 19.5 24C19.5 23.575 19.3563 23.2188 19.0688 22.9313C18.7813 22.6438 18.425 22.5 18 22.5C17.575 22.5 17.2188 22.6438 16.9313 22.9313C16.6438 23.2188 16.5 23.575 16.5 24C16.5 24.425 16.6438 24.7812 16.9313 25.0688C17.2188 25.3563 17.575 25.5 18 25.5ZM16.5 19.5H19.5V10.5H16.5V19.5ZM18 33C15.925 33 13.975 32.6063 12.15 31.8188C10.325 31.0313 8.7375 29.9625 7.3875 28.6125C6.0375 27.2625 4.96875 25.675 4.18125 23.85C3.39375 22.025 3 20.075 3 18C3 15.925 3.39375 13.975 4.18125 12.15C4.96875 10.325 6.0375 8.7375 7.3875 7.3875C8.7375 6.0375 10.325 4.96875 12.15 4.18125C13.975 3.39375 15.925 3 18 3C20.075 3 22.025 3.39375 23.85 4.18125C25.675 4.96875 27.2625 6.0375 28.6125 7.3875C29.9625 8.7375 31.0313 10.325 31.8188 12.15C32.6063 13.975 33 15.925 33 18C33 20.075 32.6063 22.025 31.8188 23.85C31.0313 25.675 29.9625 27.2625 28.6125 28.6125C27.2625 29.9625 25.675 31.0313 23.85 31.8188C22.025 32.6063 20.075 33 18 33ZM18 30C21.35 30 24.1875 28.8375 26.5125 26.5125C28.8375 24.1875 30 21.35 30 18C30 14.65 28.8375 11.8125 26.5125 9.4875C24.1875 7.1625 21.35 6 18 6C14.65 6 11.8125 7.1625 9.4875 9.4875C7.1625 11.8125 6 14.65 6 18C6 21.35 7.1625 24.1875 9.4875 26.5125C11.8125 28.8375 14.65 30 18 30Z\" fill=\"#B00020\"/>\n </svg>\n <span className='sign-in-error-text w-3/4 my-[20px]'>Revisa tu e-mail y/o contraseña nuevamente</span>\n </div>\n </>\n );\n};","import React, { useState, useEffect } from 'react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useForm } from 'react-hook-form';\nimport { signIn, confirmSignIn } from 'aws-amplify/auth';\nimport { Button } from '@/components/base/Button';\nimport { Input } from '@/components/alicia/auth/Input';\nimport { Error } from '@/components/alicia/auth/Error';\nimport '@/styles/alicia/SignIn.css';\n\n\nexport const SignIn = () => {\n const { register, handleSubmit, formState: { errors }, setFocus, watch, reset} = useForm({\n mode: \"onSubmit\",\n reValidateMode: \"onSubmit\",\n });\n const [signInError, setSignInError] = useState(false);\n const [cognitoError, setCognitoError] = useState(false);\n const [lastEmail, setLastEmail] = useState(null);\n const [lastPassword, setLastPassword] = useState(null);\n const watchedEmail = watch('email');\n const watchedPassword = watch('password');\n const navigate = useNavigate();\n\n useEffect(() => {\n if (watchedEmail != undefined && watchedPassword != undefined) {\n // OnSubmit\n if (watchedEmail === lastEmail && watchedPassword === lastPassword) {\n setSignInError(errors.email || errors.password || cognitoError);\n }\n // OnChange \n else {\n setSignInError(false);\n }\n setLastEmail(watchedEmail);\n setLastPassword(watchedPassword);\n reset();\n } \n }, [watchedEmail, watchedPassword]);\n\n const onSubmit = async ({ email, password }) => {\n setCognitoError(false);\n const username = email;\n try {\n const { isSignedIn, nextStep } = await signIn({ username, password });\n const { signInStep } = nextStep;\n if (!isSignedIn && signInStep === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED') {\n const challengeResponse = password;\n confirmSignIn({ challengeResponse });\n } else if (!isSignedIn) {\n throw new Error('not supported signInStep');\n }\n navigate('/alicia/panel');\n } catch {\n setCognitoError(true);\n }\n };\n\n return (\n <div className='sign-in-container max-w-[486px] w-full px-[20px] flex flex-col items-center'>\n <span className='sign-in-title-text max-tablet:text-[24px] tablet:text-[36px] font-semibold pt-[32px] pb-[10px]' style={{ color: \"#DB1F7B\" }}>\n Ingreso Clientes\n </span>\n <div className='flex flex-col justify-center w-full'>\n <Input type='email' name='email' placeholder='Email' register={register} setFocus={setFocus} />\n <Input type='password' name='password' placeholder='Contraseña' register={register} setFocus={setFocus} />\n {signInError ? <Error /> : null}\n <div className='flex max-tablet:justify-center tablet:justify-end mt-[12px]'>\n <Link to={'/alicia/change-password'}>\n <span className='sign-in-title-text text-[16px] font-light' style={{color: \"#787987\"}}>\n ¿olvidaste tu contraseña?\n </span>\n </Link>\n </div>\n <div className={`my-[24px] ${signInError ? 'animate-shake animate-duration-300 animate-normal animate-twice' : ''}`}>\n <Button \n name='Ingresa' \n onClick={handleSubmit(onSubmit)} \n type='alicia-pink' \n svg={false} \n cls={`${signInError ? 'animate-color-change pointer-events-none' : ''}`} \n textStyle={{fontSize: \"24px\" }}\n />\n </div>\n </div>\n </div>\n );\n};\n// https://docs.amplify.aws/javascript/start/getting-started/installation/\n// https://www.youtube.com/watch?v=puaydMvngj4","import React from 'react';\n\n\nexport const Footer = () => {\n return (\n <div className='w-full text-center py-[22px]' style={{ backgroundColor: '#C21455'}}>\n <span className='base-p-small-title' style={{ color: '#FFFFFF'}}>© 2024 Encodelyt</span>\n </div>\n );\n};","import React from 'react';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\n\n\nconst withAliciaBaseSettings = (Component) => {\n return (props) => (\n <>\n <HelmetProvider>\n <Helmet>\n <title>αlicia\n \n \n \n \n \n );\n};\n\nexport default withAliciaBaseSettings;","import React, { useState, useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { SignIn } from '@/components/alicia/auth/SignIn';\nimport { Footer } from '@/components/alicia/auth/Footer';\nimport { getCurrentUser } from 'aws-amplify/auth';\nimport { fetchAliciaLogo, getFullUrl } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport withAliciaBaseSettings from '@/hocs/withAliciaBaseSettings'\n\n\nconst SignInPage = () => {\n const [logoV1, setLogoV1] = useState(null);\n const [logoV2, setLogoV2] = useState(null);\n const navigate = useNavigate();\n\n useEffect(()=> {\n const verifyUser = async () => {\n try {\n await getCurrentUser();\n navigate('/alicia/panel');\n } catch (error) {\n return true;\n }\n }\n const fetchData = async () => {\n const logoData = await fetchAliciaLogo();\n setLogoV1(logoData.v1 ? logoData.v1.data : null);\n setLogoV2(logoData.v2 ? logoData.v2.data : null);\n }\n verifyUser() && asyncFoldTry(fetchData);\n }, []);\n\n return (\n
\n
\n
\n
\n\n
\n {logoV1 && logoV2 ? (\n <>\n \n \n ) : (\n \n )}\n \n
\n
\n
\n
\n
\n
\n );\n};\n\n\nexport default withAliciaBaseSettings(SignInPage);","import React from 'react';\nimport '@/styles/alicia/AnimatedBackground.css';\n\n\nexport const AnimatedBackground = () => {\n return (\n <>\n
\n
\n
\n \n )\n}","import React from 'react';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const Feature = ({ name, icon }) => {\n\n return (\n
\n {icon.attributes.alternativeText}\n\n
\n {name}\n
\n
\n );\n};","import React from 'react';\nimport { Feature } from '@/components/alicia/home/Feature';\nimport '@/styles/alicia/FeatureList.css';\n\n\nexport const FeatureList = ({ features }) => {\n\n const content = (\n
\n {features.map((feature, index) => (\n
\n \n
\n ))}\n
\n )\n\n return (\n <>\n {/* Feature List phone */}\n
\n
\n {content}\n
\n
\n {/* Feature List desktop */}\n
\n
\n {content}\n
\n
\n \n )\n};","import React from 'react';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const Objective = ({ title, description, icon }) => {\n\n return (\n
\n
\n \n \n \n \n
\n
\n
\n {title}\n
\n {description}\n
\n
\n );\n};","import React from 'react';\nimport { Objective } from '@/components/alicia/home/Objective';\n\n\nexport const ObjectiveList = ({ objectives }) => {\n\n return (\n
\n {objectives.map((objective, index) => (\n
\n \n
\n ))}\n
\n );\n};","import React from 'react';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const Step = ({ description, image }) => {\n\n return (\n
\n {image.attributes.alternativeText}\n\n
\n \n {description}\n \n
\n
\n );\n};","import React from 'react';\nimport { Step } from '@/components/alicia/home/Step';\n\n\nexport const StepList = ({ steps }) => {\n const svgNumberBalls = [\n \n \n \n \n \n \n \n \n \n \n ,\n \n \n \n \n \n \n \n \n \n \n ,\n \n \n \n \n \n \n \n \n \n \n \n ]\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {steps.map((step, index) => (\n
\n {svgNumberBalls[index]}\n \n
\n ))}\n
\n
\n );\n};","import React, { useRef, useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { getFullUrl } from '@/api/strapi';\nimport '@/styles/ColoredIcons.css';\n\n\nexport const ClientCarrousel = ({ clients }) => {\n const containerRef = useRef(null);\n const [repeatedClients, setRepeatedClients] = useState([]);\n const [initialClientWindowWidth, setinitialClientWindowWidth] = useState(0);\n const [clientWindowWidth, setClientWindowWidth] = useState(0);\n const minIconWindowWidth = 1166; // pixels\n const xMargin = 64; // pixels\n\n const getResizedWidth = (client) => client.icon.data.attributes.width * (80/client.icon.data.attributes.height);\n \n // Set repeated icons\n useEffect(() => {\n if (clients.length) {\n let actualClientWindowWidth = 0;\n for (const client of clients) {\n actualClientWindowWidth += getResizedWidth(client) + 2*xMargin;\n }\n const repeatedClientsArray = [...clients];\n setinitialClientWindowWidth(actualClientWindowWidth);\n // Si el tamaño es menor al mínimo requerido, agrega íconos repetidos hasta \n // conseguir un exceso de minIconWindowWidth. \n if (actualClientWindowWidth < minIconWindowWidth) {\n let extraWindowWidth = 0;\n let i = 0;\n while (extraWindowWidth < minIconWindowWidth) {\n const client = clients[i % clients.length];\n repeatedClientsArray.push(client);\n extraWindowWidth += getResizedWidth(client) + 2*xMargin;\n i++;\n }\n setClientWindowWidth(actualClientWindowWidth + extraWindowWidth);\n // Si el tamaño es mayor al mínimo requerido, simplemente lo duplica\n } else {\n for (const client of clients) {\n repeatedClientsArray.push(client);\n }\n setClientWindowWidth(2*actualClientWindowWidth);\n }\n setRepeatedClients(repeatedClientsArray);\n }\n }, [clients])\n\n // Animate Carousel\n useEffect(() => {\n if (containerRef.current) {\n let lastFrameTime = performance.now();\n let position = 0;\n containerRef.current.style.width = `${clientWindowWidth}px`;\n const pxPerFrame60Hz = 1;\n const pxPerSecond = pxPerFrame60Hz * 60;\n\n const animate = () => {\n const currentTime = performance.now();\n const deltaTime = (currentTime - lastFrameTime)/1000;\n lastFrameTime = currentTime;\n\n position = Math.max(-initialClientWindowWidth, position-pxPerSecond*deltaTime);\n if (position === -initialClientWindowWidth) {\n position = 0;\n }\n if (containerRef.current) {\n containerRef.current.style.transform = `translateX(${position}px)`;\n requestAnimationFrame(animate);\n }\n };\n\n const animationId = requestAnimationFrame(animate);\n \n return () => {\n cancelAnimationFrame(animationId);\n };\n }\n }, [repeatedClients]);\n \n return (\n
\n
\n {repeatedClients.map((client, index) => (\n
\n \n {client.icon.data.attributes.alternativeText}\n\n \n
\n ))}\n
\n
\n );\n};\n ","import React, { useState } from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { HoverableSvgIcon } from '@/components/base/HoverableSvgIcon';\nimport { getFullUrl } from '@/api/strapi';\n\n\nexport const Navbar = ({ logoV1, logoV2 }) => {\n const [isEncodelytHovered, setIsEncodelytHovered] = useState(false);\n const location = useLocation();\n const navigate = useNavigate();\n const currentPath = location.pathname;\n\n const encodelytIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n const hoveredEncodelyIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n\n return (\n <>\n {/* Navbar phone\n
\n
\n
\n \n \n \n
\n
\n
\n */}\n {/* Navbar desktop */}\n
\n
\n
\n \n {logoV1 ? (\n {logoV1.attributes.alternativeText}\n ) : \n }\n \n
\n \n
\n
\n
\n
\n
\n \n {logoV2 ? (\n {logoV2.attributes.alternativeText}\n ) : \n }\n \n \n
\n
\n
\n
\n
\n \n );\n};","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { PartnerList } from '@/components/base/PartnerList';\nimport { HoverableMail } from '@/components/base/HoverableMail';\nimport { getFullUrl, fetchEncodelytLogo } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport '@/styles/alicia/Footer.css';\n\n\nexport const Footer = ({ logo, serviceId }) => {\n const [encodelytLogo, setEncodelytLogo] = useState(null);\n\n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchEncodelytLogo();\n setEncodelytLogo(data.v1.data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n return (\n
\n
\n
\n
\n {/* Alicia */}\n
\n {logo ? (\n \n \n \n ) : \n }\n \n Alicia es un robot promotor para tiendas, creado por Encodelyt.\n \n {/* Contact */}\n Contacto\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n {/* Encodelyt */}\n
\n
\n
\n {encodelytLogo ? (\n \n \n \n ) : \n }\n
\n
\n \n Inicio\n \n \n Casos de éxito\n \n \n Blog\n \n \n Servicios\n \n
\n
\n
\n {/* Partner list */}\n
\n \n
\n
\n
\n
\n
\n
\n © 2024 Encodelyt\n
\n
\n
\n );\n};","import React, { useState, useEffect } from 'react';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport { Footer } from '@/components/alicia/Footer';\nimport { fetchAliciaLogo, fetchEncodelytFirst5Services } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\n\n\nconst withAliciaSettings = (Component) => {\n return function WithAliciaSettings(props) {\n const [logoV1, setLogoV1] = useState(null);\n const [logoV2, setLogoV2] = useState(null);\n const [serviceId, setServiceId] = useState(null);\n \n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchAliciaLogo();\n setLogoV1(data.v1 ? data.v1.data : null);\n setLogoV2(data.v2 ? data.v2.data : null);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n const { data } = await fetchEncodelytFirst5Services();\n setServiceId(data[0]?.id);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n return (\n <>\n \n \n αlicia\n \n \n
\n
\n \n
\n
\n
\n
\n \n );\n }\n};\n\nexport default withAliciaSettings;","import React from 'react';\nimport ReactPlayer from 'react-player';\nimport { Carousel } from 'react-responsive-carousel';\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\n\n\nconst YoutubeSlide = ({ url, isSelected }) => {\n return (\n
\n \n
\n )\n};\n\nexport const TestimonialVideoCarousel = ({ videoIds }) => {\n const customRenderItem = (item, props) => ;\n\n const getVideoThumb = (videoId) => `https://img.youtube.com/vi/${videoId}/0.jpg`;\n\n const getVideoId = (url) => url.substr('https://www.youtube.com/embed/'.length, url.length);\n\n const customRenderThumb = (children) =>\n children.map((item) => {\n const videoId = getVideoId(item.props.url);\n return ;\n });\n\n return ( \n <>\n \n
\n \n \n {videoIds.map((videoId, index) => (\n \n )) }\n \n
\n \n\n );\n};","import React, { useState, useEffect, useRef } from 'react';\nimport { MouseParallaxContainer, MouseParallaxChild } from \"react-parallax-mouse\";\nimport { Button } from '@/components/base/Button';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Title } from '@/components/base/Title';\nimport { getFullUrl, fetchAliciaHome } from '@/api/strapi';\nimport { asyncFoldTry } from '@/api/base';\nimport { AnimatedBackground } from '@/components/alicia/AnimatedBackground';\nimport { FeatureList } from '@/components/alicia/home/FeatureList';\nimport { ObjectiveList } from '@/components/alicia/home/ObjectiveList';\nimport { StepList } from '@/components/alicia/home/StepList';\nimport { ClientCarrousel } from '@/components/alicia/home/ClientCarousel';\nimport { Meeting } from '@/components/base/Meeting';\nimport { Navbar } from '@/components/alicia/Navbar';\nimport withAliciaSettings from '@/hocs/withAliciaSettings'\nimport { TestimonialVideoCarousel } from '@/components/alicia/home/TestimonialVideoCarousel';\n\n\nconst HomePage = ({ logoV1, logoV2 }) => {\n const [introduction, setIntroduction] = useState(null);\n const [introductionImage, setIntroductionImage] = useState(null);\n const [introductionBackground, setIntroductionBackground] = useState(null);\n const [videoId, setVideoId] = useState(null);\n const [objectives, setObjectives] = useState([]);\n const [features, setFeatures] = useState([]);\n const [steps, setSteps] = useState([]);\n const [versatilityText, setVersatilityText] = useState(null);\n const [versatilityImage, setVersatilityImage] = useState(null);\n const [versatilityBackground, setVersatilityBackground] = useState(null);\n const [analyticsText, setAnalyticsText] = useState(null);\n const [analyticsImage, setAnalyticsImage] = useState(null);\n const [analyticsBackground, setAnalyticsBackground] = useState(null);\n const [clients, setClients] = useState([]);\n const [testimonyVideoIds, setTestimonyVideoIds] = useState([]);\n const meetingRef = useRef(null);\n\n useEffect(()=> {\n const fetchData = async () => {\n const data = await fetchAliciaHome();\n const intro = data.introduction;\n let introSpan;\n if (intro.includes('robot promotor')) {\n const splitedIntro = intro.split('robot promotor')\n introSpan = splitedIntro.map((element, index) => {\n return index == splitedIntro.length - 1 ? (\n {element}\n ) : (\n \n {element}\n robot promotor\n \n )\n })\n } else {\n introSpan = {intro}\n }\n setIntroduction(introSpan);\n setIntroductionImage(data.introduction_image ? data.introduction_image.data : null);\n setIntroductionBackground(data.introduction_background ? data.introduction_background.data : null);\n setVideoId(data.youtube_video_id);\n setObjectives(data.objectives ? data.objectives.data.map(objective => objective.attributes) : []);\n setFeatures(data.features ? data.features.data.map(feature => feature.attributes) : []);\n setSteps(data.steps ? data.steps.data.map(step => step.attributes) : []);\n setVersatilityText(data.versatility_text);\n setVersatilityImage(data.versatility_image ? data.versatility_image.data : null);\n setVersatilityBackground(data.versatility_background ? data.versatility_background.data : null);\n setAnalyticsText(data.analytics_text);\n setAnalyticsImage(data.analytics_image ? data.analytics_image.data : null);\n setAnalyticsBackground(data.analytics_background ? data.analytics_background.data : null);\n setClients(data.clients ? data.clients.data.map(client => client.attributes) : []);\n setTestimonyVideoIds(data.testimony_videos ? data.testimony_videos.data.map(video => video.attributes.youtube_video_id) : []);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n const handleIntroductionButton = () => {\n if (meetingRef.current) {\n meetingRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n \n return (\n
\n {/* Introduction */}\n
\n \n \n
\n
\n \n {introductionImage && introductionBackground ? (\n <>\n \n \n \n \n \n \n \n ) : (\n
\n \n
\n )}\n
\n
\n
\n {introduction ? (\n
\n {introduction}\n
\n ): }\n
\n
\n
\n
\n
\n {/* Objectives */}\n
\n
\n ¿Qué hace a Alicia tan especial?\n
\n
\n ¿Qué hace a Alicia tan especial?\n
\n {objectives.length ? : }\n
\n {/* Features */}\n {features.length ? : }\n {/* Steps */}\n
\n
\n ¿Cómo funciona?\n
\n {steps.length ? : }\n
\n {/* Versatility */}\n
\n
\n
\n \n \n \n \n Versatilidad\n
\n {versatilityText ? (\n {versatilityText}\n ) : \n }\n
\n
\n {versatilityImage && versatilityBackground ? (\n \n \n \n \n \n \n ) : \n }\n
\n
\n {/* Analytics */}\n
\n
\n
\n {analyticsBackground ? (\n {analyticsBackground.attributes.alternativeText}\n\n ) : null}\n
\n {analyticsImage ? (\n {analyticsImage.attributes.url}\n\n ) : }\n
\n
\n
\n \n \n \n \n Revisa tus datos en tiempo real\n
\n {versatilityText ? (\n {analyticsText}\n ) : \n }\n
\n
\n
\n
\n {/* Alicia video */}\n
\n \n \n \n
\n
\n \n </div>\n {videoId ? (\n <div className='flex justify-center'>\n <iframe width=\"560\" height=\"315\" src={`https://www.youtube.com/embed/${videoId}`} allowFullScreen style={{ border: \"0px\" }}></iframe>\n </div>\n ) : <LoadingWheel wheelColor='#FFF' />\n }\n </div>\n </div>\n {/* Our clients */}\n <div ref={meetingRef} className='max-w-[1440px] w-full h-full mx-auto px-[20px] desktop:px-[137px] mt-[69px]'>\n <div className='text-center'>\n <span className='base-p-large-title' style={{ color: \"#DB1F6B\" }}>Nuestros clientes</span>\n </div>\n <div className='my-[69px]'>\n {clients.length ? <ClientCarrousel clients={clients}/> : <LoadingWheel type='alicia'/>}\n </div>\n </div>\n {/* Testimonials */}\n <div ref={meetingRef} className='max-w-[1440px] w-full h-full mx-auto px-[20px] desktop:px-[137px] mt-[16px]'>\n <div className='text-center mb-[32px]'>\n <span className='base-p-large-title' style={{ color: \"#DB1F6B\" }}>Testimonios</span>\n </div>\n {testimonyVideoIds.length ? <TestimonialVideoCarousel videoIds={testimonyVideoIds}/> : <LoadingWheel type='alicia' />}\n </div>\n {/* Meeting */}\n <div ref={meetingRef} className='max-w-[1440px] w-full h-full mx-auto px-[20px] desktop:px-[137px] mt-[170px]'>\n <div className='text-center'>\n <span className='base-p-large-title'>Agendemos una reunión</span>\n </div>\n <Meeting type='alicia'/>\n </div>\n </div>\n );\n};\n\nexport default withAliciaSettings(HomePage);","import React, { useEffect, useState, useRef } from 'react';\nimport { useNavigate, useLocation, Link } from 'react-router-dom';\nimport { signOut } from \"aws-amplify/auth\"\nimport { Button } from '@/components/base/Button';\n\n\nexport const Navbar = ({ company_image }) => {\n const navigate = useNavigate();\n const location = useLocation();\n const currentPath = location.pathname;\n const [section, setSection] = useState(null);\n const [isPanelVisible, setIsPanelVisible] = useState(false);\n const phoneNavbarRef = useRef(null);\n\n const isPath = (path) => {\n return path == currentPath || path + '/' == currentPath;\n }\n\n const togglePanelVisibility = () => {\n setIsPanelVisible(!isPanelVisible);\n };\n\n useEffect(() => {\n if (isPath('/alicia/panel')) {\n setSection('Vista general');\n } else if (isPath('/alicia/panel/sonido') || isPath('/alicia/panel/movimiento')) {\n setSection('Configuraciones');\n } else if (isPath('/alicia/panel/contacto')) {\n setSection('Contacto');\n }\n }, [currentPath]);\n\n useEffect(() => {\n const closePanelIfClickOuside = (e) => {\n if (phoneNavbarRef.current && !phoneNavbarRef.current.contains(e.target)) {\n setIsPanelVisible(false);\n }\n }\n document.addEventListener('mousedown', closePanelIfClickOuside);\n\n return () => {\n document.removeEventListener('mousedown', closePanelIfClickOuside);\n };\n }, [])\n\n \n\n const handleSignOut = async () => {\n await signOut()\n navigate('/alicia/sign-in');\n }\n\n const exitSvg = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H12V5H5V19H12V21H5ZM16 17L14.625 15.55L17.175 13H9V11H17.175L14.625 8.45L16 7L21 12L16 17Z\" fill=\"white\"/>\n </svg> \n )\n \n return (\n <> \n <div className='hidden tablet:block'>\n <div className='flex justify-end mt-[38px] mb-[33px] pl-[20px] pr-[30px]'>\n <Button \n name='Cerrar sesión' \n onClick={handleSignOut}\n type='alicia-pink'\n svgContent={exitSvg}\n svgPosition='left'\n cls='h-[40px] w-[213px]'\n containerStyle={{\n boxShadow: \"0px 2px 4px 0px rgba(0, 0, 0, 0.25)\",\n background: \"var(--botones-cn-degradado, linear-gradient(180deg, #DB1F6B -5.68%, #C21455 100%))\",\n border: \"none\" \n }}\n textStyle={{fontSize: \"20px\", textAlign: \"right\", paddingRight: \"20px\" }}\n />\n </div>\n </div>\n <div className='hidden max-tablet:block py-[8px] mb-[36px] relative' style={{ background: \"#FFF\" }} ref={phoneNavbarRef}>\n <div className='flex items-center mx-[20px]'>\n <svg className='w-[36px] h-[24px] shrink-0 cursor-pointer' viewBox=\"0 0 36 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" onClick={togglePanelVisibility}>\n <path d=\"M0 24H36V20H0V24ZM0 14H36V10H0V14ZM0 0V4H36V0H0Z\" fill=\"#181818\"/>\n </svg> \n <span className='base-p-small-title ml-[23px]' style={{ fontSize: '20px', fontWeight: '600'}}>{section}</span>\n <div className='flex grow justify-end mr-[3px]'>\n <img className='max-w-[48px] w-full aspect-square rounded-full object-cover' src={company_image} />\n </div>\n </div>\n <div \n className={`absolute top-[58px] z-50 rounded-[8px] pt-[22px] pb-[16px] px-[16px] max-w-[284px] w-full ${isPanelVisible ? '' : 'hidden'}`} \n style={{ background: \"#FFF\", boxShadow: \"0px 4px 4px 0px rgba(0, 0, 0, 0.25)\" }}\n >\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Vista general</span>\n <Link to='/alicia/panel'>\n <div className='flex py-[10px] pr-[10px] pl-[24px] gap-[10px]'>\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19H9V13H15V19H18V10L12 5.5L6 10V19ZM4 21V9L12 3L20 9V21H13V15H11V21H4Z\" fill={isPath('/alicia/panel') ? '#DB1F6B' : '#181818'}/>\n </svg> \n <span className='base-p-small-text'>Home</span>\n </div>\n </Link>\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Configuraciones</span>\n <Link to='/alicia/panel/sonido'>\n <div className='flex py-[10px] pr-[10px] pl-[24px] gap-[10px]'>\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 20.7251V18.6751C15.5 18.2418 16.7083 17.4084 17.625 16.1751C18.5417 14.9418 19 13.5418 19 11.9751C19 10.4084 18.5417 9.00843 17.625 7.7751C16.7083 6.54176 15.5 5.70843 14 5.2751V3.2251C16.0667 3.69176 17.75 4.7376 19.05 6.3626C20.35 7.9876 21 9.85843 21 11.9751C21 14.0918 20.35 15.9626 19.05 17.5876C17.75 19.2126 16.0667 20.2584 14 20.7251ZM3 15.0001V9.0001H7L12 4.0001V20.0001L7 15.0001H3ZM14 16.0001V7.9501C14.7833 8.31676 15.3958 8.86676 15.8375 9.6001C16.2792 10.3334 16.5 11.1334 16.5 12.0001C16.5 12.8501 16.2792 13.6376 15.8375 14.3626C15.3958 15.0876 14.7833 15.6334 14 16.0001ZM10 8.8501L7.85 11.0001H5V13.0001H7.85L10 15.1501V8.8501Z\"\n fill={isPath('/alicia/panel/sonido') ? '#DB1F6B' : '#181818'}\n />\n </svg> \n <span className='base-p-small-text'>Sonido</span>\n </div>\n </Link>\n <Link to='/alicia/panel/movimiento'>\n <div className='flex py-[10px] pr-[10px] pl-[24px] gap-[10px]'>\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 22V20H20V22H4ZM12 19L8 15L9.4 13.6L11 15.15V8.85L9.4 10.4L8 9L12 5L16 9L14.6 10.4L13 8.85V15.15L14.6 13.6L16 15L12 19ZM4 4V2H20V4H4Z\" fill={isPath('/alicia/panel/movimiento') ? '#DB1F6B' : '#181818'}/>\n </svg> \n <span className='base-p-small-text'>Movimiento</span>\n </div>\n </Link>\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Contacto</span>\n <Link to='/alicia/panel/contacto'>\n <div className='flex py-[10px] pr-[10px] pl-[24px] gap-[10px]'>\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path \n d=\"M12 22L11.75 19H11.5C9.13333 19 7.125 18.175 5.475 16.525C3.825 14.875 3 12.8667 3 10.5C3 8.13333 3.825 6.125 5.475 4.475C7.125 2.825 9.13333 2 11.5 2C12.6833 2 13.7875 2.22083 14.8125 2.6625C15.8375 3.10417 16.7375 3.7125 17.5125 4.4875C18.2875 5.2625 18.8958 6.1625 19.3375 7.1875C19.7792 8.2125 20 9.31667 20 10.5C20 11.75 19.7958 12.95 19.3875 14.1C18.9792 15.25 18.4208 16.3167 17.7125 17.3C17.0042 18.2833 16.1625 19.175 15.1875 19.975C14.2125 20.775 13.15 21.45 12 22ZM14 18.35C15.1833 17.35 16.1458 16.1792 16.8875 14.8375C17.6292 13.4958 18 12.05 18 10.5C18 8.68333 17.3708 7.14583 16.1125 5.8875C14.8542 4.62917 13.3167 4 11.5 4C9.68333 4 8.14583 4.62917 6.8875 5.8875C5.62917 7.14583 5 8.68333 5 10.5C5 12.3167 5.62917 13.8542 6.8875 15.1125C8.14583 16.3708 9.68333 17 11.5 17H14V18.35ZM11.475 15.975C11.7583 15.975 12 15.875 12.2 15.675C12.4 15.475 12.5 15.2333 12.5 14.95C12.5 14.6667 12.4 14.425 12.2 14.225C12 14.025 11.7583 13.925 11.475 13.925C11.1917 13.925 10.95 14.025 10.75 14.225C10.55 14.425 10.45 14.6667 10.45 14.95C10.45 15.2333 10.55 15.475 10.75 15.675C10.95 15.875 11.1917 15.975 11.475 15.975ZM10.75 12.8H12.25C12.25 12.3 12.3 11.95 12.4 11.75C12.5 11.55 12.8167 11.1833 13.35 10.65C13.65 10.35 13.9 10.025 14.1 9.675C14.3 9.325 14.4 8.95 14.4 8.55C14.4 7.7 14.1125 7.0625 13.5375 6.6375C12.9625 6.2125 12.2833 6 11.5 6C10.7667 6 10.15 6.20417 9.65 6.6125C9.15 7.02083 8.8 7.51667 8.6 8.1L10 8.65C10.0833 8.36667 10.2417 8.0875 10.475 7.8125C10.7083 7.5375 11.05 7.4 11.5 7.4C11.95 7.4 12.2875 7.525 12.5125 7.775C12.7375 8.025 12.85 8.3 12.85 8.6C12.85 8.88333 12.7667 9.1375 12.6 9.3625C12.4333 9.5875 12.2333 9.81667 12 10.05C11.4167 10.55 11.0625 10.9458 10.9375 11.2375C10.8125 11.5292 10.75 12.05 10.75 12.8Z\"\n fill={isPath('/alicia/panel/contacto') ? '#DB1F6B' : '#181818'}\n />\n </svg> \n <span className='base-p-small-text'>Contacto</span>\n </div>\n </Link>\n </div>\n </div>\n </>\n \n );\n};","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\n\nexport const LateralNavbar = ({ company_image }) => {\n const location = useLocation();\n const currentPath = location.pathname;\n\n const isPath = (path) => {\n return path == currentPath || path + '/' == currentPath;\n }\n\n return (\n <div className='flex flex-col items-center'>\n <img className='max-w-[120px] w-full aspect-square rounded-full object-cover' src={company_image} />\n <div className='w-full mt-[50px] mr-[16px]'>\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Vista general</span>\n <Link \n to='/alicia/panel' \n className='flex py-[10px] pl-[24px] pr-[10px] gap-[10px] my-[16px]'\n style={{ background: isPath('/alicia/panel') ? \"var(--botones-cn-degradado, linear-gradient(180deg, #DB1F6B -5.68%, #C21455 100%))\": \"\", borderRadius: isPath('/alicia/panel') ? '30px' : \"\" }}\n >\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19H9V13H15V19H18V10L12 5.5L6 10V19ZM4 21V9L12 3L20 9V21H13V15H11V21H4Z\" fill={isPath('/alicia/panel') ? 'white' : '#181818'}/>\n </svg> \n <span className='base-p-small-text' style={{ color: isPath('/alicia/panel') ? 'white' : '#181818' }}>Home</span>\n </Link>\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Configuraciones</span>\n <Link \n to='/alicia/panel/sonido' \n className='flex py-[10px] pl-[24px] pr-[10px] gap-[10px] mt-[8px]'\n style={{ background: isPath('/alicia/panel/sonido') ? \"var(--botones-cn-degradado, linear-gradient(180deg, #DB1F6B -5.68%, #C21455 100%))\": \"\", borderRadius: isPath('/alicia/panel/sonido') ? '30px' : \"\" }}\n >\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path \n d=\"M14 20.7251V18.6751C15.5 18.2418 16.7083 17.4084 17.625 16.1751C18.5417 14.9418 19 13.5418 19 11.9751C19 10.4084 18.5417 9.00843 17.625 7.7751C16.7083 6.54176 15.5 5.70843 14 5.2751V3.2251C16.0667 3.69176 17.75 4.7376 19.05 6.3626C20.35 7.9876 21 9.85843 21 11.9751C21 14.0918 20.35 15.9626 19.05 17.5876C17.75 19.2126 16.0667 20.2584 14 20.7251ZM3 15.0001V9.0001H7L12 4.0001V20.0001L7 15.0001H3ZM14 16.0001V7.9501C14.7833 8.31676 15.3958 8.86676 15.8375 9.6001C16.2792 10.3334 16.5 11.1334 16.5 12.0001C16.5 12.8501 16.2792 13.6376 15.8375 14.3626C15.3958 15.0876 14.7833 15.6334 14 16.0001ZM10 8.8501L7.85 11.0001H5V13.0001H7.85L10 15.1501V8.8501Z\" \n fill={isPath('/alicia/panel/sonido') ? 'white' : '#181818'}\n />\n </svg> \n <span className='base-p-small-text' style={{ color: isPath('/alicia/panel/sonido') ? 'white' : '#181818' }}>Sonido</span>\n </Link>\n <Link \n to='/alicia/panel/movimiento' \n className='flex py-[10px] pl-[24px] pr-[10px] gap-[10px] mb-[44px]'\n style={{ background: isPath('/alicia/panel/movimiento') ? \"var(--botones-cn-degradado, linear-gradient(180deg, #DB1F6B -5.68%, #C21455 100%))\": \"\", borderRadius: isPath('/alicia/panel/movimiento') ? '30px' : \"\" }}\n >\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 22V20H20V22H4ZM12 19L8 15L9.4 13.6L11 15.15V8.85L9.4 10.4L8 9L12 5L16 9L14.6 10.4L13 8.85V15.15L14.6 13.6L16 15L12 19ZM4 4V2H20V4H4Z\" fill={isPath('/alicia/panel/movimiento') ? 'white' : '#181818'}/>\n </svg> \n <span className='base-p-small-text' style={{ color: isPath('/alicia/panel/movimiento') ? 'white' : '#181818' }}>Movimiento</span>\n </Link>\n <span className='base-p-small-text' style={{ fontWeight: \"700\" }}>Contacto</span>\n <Link \n to='/alicia/panel/contacto' \n className='flex py-[10px] pl-[24px] pr-[10px] gap-[10px] mt-[8px]'\n style={{ background: isPath('/alicia/panel/contacto') ? \"var(--botones-cn-degradado, linear-gradient(180deg, #DB1F6B -5.68%, #C21455 100%))\": \"\", borderRadius: isPath('/alicia/panel/contacto') ? '30px' : \"\" }}\n >\n <svg className='w-[24px] h-[24px] shrink-0' viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path \n d=\"M12 22L11.75 19H11.5C9.13333 19 7.125 18.175 5.475 16.525C3.825 14.875 3 12.8667 3 10.5C3 8.13333 3.825 6.125 5.475 4.475C7.125 2.825 9.13333 2 11.5 2C12.6833 2 13.7875 2.22083 14.8125 2.6625C15.8375 3.10417 16.7375 3.7125 17.5125 4.4875C18.2875 5.2625 18.8958 6.1625 19.3375 7.1875C19.7792 8.2125 20 9.31667 20 10.5C20 11.75 19.7958 12.95 19.3875 14.1C18.9792 15.25 18.4208 16.3167 17.7125 17.3C17.0042 18.2833 16.1625 19.175 15.1875 19.975C14.2125 20.775 13.15 21.45 12 22ZM14 18.35C15.1833 17.35 16.1458 16.1792 16.8875 14.8375C17.6292 13.4958 18 12.05 18 10.5C18 8.68333 17.3708 7.14583 16.1125 5.8875C14.8542 4.62917 13.3167 4 11.5 4C9.68333 4 8.14583 4.62917 6.8875 5.8875C5.62917 7.14583 5 8.68333 5 10.5C5 12.3167 5.62917 13.8542 6.8875 15.1125C8.14583 16.3708 9.68333 17 11.5 17H14V18.35ZM11.475 15.975C11.7583 15.975 12 15.875 12.2 15.675C12.4 15.475 12.5 15.2333 12.5 14.95C12.5 14.6667 12.4 14.425 12.2 14.225C12 14.025 11.7583 13.925 11.475 13.925C11.1917 13.925 10.95 14.025 10.75 14.225C10.55 14.425 10.45 14.6667 10.45 14.95C10.45 15.2333 10.55 15.475 10.75 15.675C10.95 15.875 11.1917 15.975 11.475 15.975ZM10.75 12.8H12.25C12.25 12.3 12.3 11.95 12.4 11.75C12.5 11.55 12.8167 11.1833 13.35 10.65C13.65 10.35 13.9 10.025 14.1 9.675C14.3 9.325 14.4 8.95 14.4 8.55C14.4 7.7 14.1125 7.0625 13.5375 6.6375C12.9625 6.2125 12.2833 6 11.5 6C10.7667 6 10.15 6.20417 9.65 6.6125C9.15 7.02083 8.8 7.51667 8.6 8.1L10 8.65C10.0833 8.36667 10.2417 8.0875 10.475 7.8125C10.7083 7.5375 11.05 7.4 11.5 7.4C11.95 7.4 12.2875 7.525 12.5125 7.775C12.7375 8.025 12.85 8.3 12.85 8.6C12.85 8.88333 12.7667 9.1375 12.6 9.3625C12.4333 9.5875 12.2333 9.81667 12 10.05C11.4167 10.55 11.0625 10.9458 10.9375 11.2375C10.8125 11.5292 10.75 12.05 10.75 12.8Z\" \n fill={isPath('/alicia/panel/contacto') ? 'white' : '#181818'}\n /> \n </svg> \n <span className='base-p-small-text' style={{ color: isPath('/alicia/panel/contacto') ? 'white' : '#181818' }}>Contacto</span>\n </Link>\n </div>\n </div>\n );\n};","import React from 'react';\n\n\nexport const Footer = () => {\n return (\n <div className='w-full text-center' style={{ backgroundColor: '#C21455'}}>\n <span className='base-p-small-text' style={{ color: '#FFFFFF'}}>© 2024 Encodelyt</span>\n </div>\n );\n};","import axios from 'axios';\nimport { fetchAuthSession } from 'aws-amplify/auth';\nimport { fastapi } from './base';\n\n\nconst usersApi = axios.create({\n baseURL: `${fastapi.defaults.baseURL}/cognito_users`\n});\n\nconst dashboardsApi = axios.create({\n baseURL: `${fastapi.defaults.baseURL}/dashboards`\n});\n\nconst aliciasApi = axios.create({\n baseURL: `${fastapi.defaults.baseURL}/alicias`\n});\n\nconst gendersApi = axios.create({\n baseURL: `${fastapi.defaults.baseURL}/genders`\n});\n\nconst agesApi = axios.create({\n baseURL: `${fastapi.defaults.baseURL}/ages`\n});\n\n\n// Obtiene el id token y el access token de un usuario logeado.\nexport const getUserTokens = async () => {\n const session = await fetchAuthSession();\n // Sin el toString obtengo la cookie sin codificar.\n const accessToken = session.tokens.accessToken.toString();\n const idToken = session.tokens.idToken.toString();\n return [accessToken, idToken]\n}\n\n// Obtiene al usuario de Cognito actual guardado en la base de datos.\nexport const getCurrentCognitoUser = async () => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await usersApi.get(\n '/me', {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n return response.data;\n};\n\n// Obtiene la url firmada de un dashboard a partir de su id.\nexport const getDashboardUrl = async (dashboardId) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await dashboardsApi.get(\n `/${dashboardId}/url`, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n return response.data;\n};\n\n// Obtiene el primer Alicia al cual la compañía del usuario logeado tiene acceso.\nexport const getAliciaLastEvent = async (aliciaId) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.get(\n `/${aliciaId}/events/latest`, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n return response.data;\n};\n\n// Obtiene el volumen actual de un Alicia dado su id.\nexport const getAliciaVolume = async (aliciaId) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.get(\n `/${aliciaId}/config/volume`, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Actualiza el volumen de un Alicia dado su id.\nexport const updateAliciaVolume = async (aliciaId, payload) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.put(\n `/${aliciaId}/config/volume`, payload, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Obtiene el movimiento actual de un Alicia dado su id.\nexport const getAliciaMovement = async (aliciaId) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.get(\n `/${aliciaId}/config/movement`, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Actualiza el movimiento de un Alicia dado su id.\nexport const updateAliciaMovement = async (aliciaId, payload) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.put(\n `/${aliciaId}/config/movement`, payload, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Obtiene la lista de géneros disponibles.\nexport const getGenders = async () => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await gendersApi.get(\n '/', {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Obtiene la lista de edades disponibles.\nexport const getAges = async () => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await agesApi.get(\n '/', {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Obtiene la lista de segmentos de sonido actuales de un Alicia dado su id.\nexport const getAliciaSoundSegments = async (aliciaId) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.get(\n `/${aliciaId}/config/sound_segments`, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Actualiza lista de segmentos de sonido de un Alicia dado su id.\nexport const updateAliciaSoundSegments = async (aliciaId, payload) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.put(\n `/${aliciaId}/config/sound_segments`, payload, {\n headers: {\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n return responseData;\n}\n\n// Sube un nuevo sonido a un segmento de sonido dado el id el alicia, el id del género y el id de la edad.\nexport const uploaAliciaSoundSegmentSound = async (aliciaId, genderId, ageId, formData) => {\n const [accessToken, idToken] = await getUserTokens();\n const response = await aliciasApi.put(`/${aliciaId}/config/sound_segments/${genderId}/${ageId}/sound`, formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'Authorization': `Bearer ${accessToken}`\n }\n })\n const responseData = response.data;\n if (responseData.error) {\n throw Error(responseData.error.name);\n }\n}","import React, { useState, useEffect} from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport { fetchUserAttributes } from 'aws-amplify/auth';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Navbar } from '@/components/alicia/panel/Navbar';\nimport { LateralNavbar } from '@/components/alicia/panel/LateralNavbar';\nimport { Footer } from '@/components/alicia/panel/Footer';\nimport { getCurrentCognitoUser, getUserTokens } from '@/api/cognito-users'\n\n\nconst withAliciaAuthenticatedSettings = (Component) => {\n return function withAliciaAuthenticatedSettings(props) {\n const navigate = useNavigate();\n const [user, setUser] = useState(null);\n const [userTokens, setUserTokens] = useState([]);\n\n useEffect(() => {\n const verifyUser = async () => {\n try {\n const userAttributes = await fetchUserAttributes();\n let cognitoUser = await getCurrentCognitoUser();\n cognitoUser = {...cognitoUser, ...userAttributes};\n setUser(cognitoUser);\n if (cognitoUser.is_admin) {\n const tokens = await getUserTokens();\n setUserTokens(tokens);\n }\n } catch {\n navigate('/alicia/sign-in');\n }\n }\n verifyUser();\n }, []);\n\n return (\n <HelmetProvider>\n <Helmet>\n <title>αlicia\n \n \n
\n
\n {user ? (\n user.is_admin && userTokens ? (\n
\n \n

ACCESS TOKEN

\n
\n {userTokens[0]}\n
\n

ID TOKEN

\n

{userTokens[1]}

\n
\n ) : user.company && user.company.alicias.length ? (\n <>\n
\n \n
\n
\n \n
\n
\n {user ? : }\n
\n\n
\n
\n \n ) : null\n ) : (\n
\n \n
\n )\n }\n
\n
\n
\n \n );\n }\n};\n\nexport default withAliciaAuthenticatedSettings;","import React, { useState, useEffect } from 'react';\nimport withAliciaAuthenticatedSettings from '@/hocs/withAliciaAuthenticatedSettings'\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { asyncFoldTry } from '@/api/base';\nimport { getAliciaLastEvent, getDashboardUrl } from '@/api/cognito-users';\n\n\nconst HomePage = ({user}) => {\n const [isAliciaLoading, setIsAliciaLoading] = useState(true);\n const [isDashboardLoading, setIsDashboardLoading] = useState(true);\n const [aliciaLastEvent, setAliciaLastEvent] = useState(null);\n const [active, setActive] = useState(null);\n const [date, setDate] = useState(null);\n const [dashboards, setDashboards] = useState([]);\n \n useEffect(() => {\n setIsAliciaLoading(true);\n const fetchData = async () => {\n const data = await getAliciaLastEvent(user.company.alicias[0].id);\n const dateObject = new Date(data.data_timestamp);\n const now = new Date();\n const difference = now - dateObject;\n const tenMinutes = 10 * 60 * 1000;\n const activeStatus = difference <= tenMinutes ? 'Conectado' : 'Desconectado'; \n const day = String(dateObject.getDate()).padStart(2, '0');\n const month = String(dateObject.getMonth() + 1).padStart(2, '0'); \n const year = dateObject.getFullYear();\n setAliciaLastEvent(data);\n setActive(activeStatus);\n setDate(`${day}/${month}/${year}`);\n }\n asyncFoldTry(fetchData, () => setIsAliciaLoading(false), () => setIsAliciaLoading(false));\n }, [])\n\n useEffect(() => {\n setIsDashboardLoading(true);\n const fetchData = async () => {\n const dashboardDataPromises = user.company.dashboards.map(async (dashboard) => await getDashboardUrl(dashboard.id));\n const dashboardData = await Promise.all(dashboardDataPromises);\n setDashboards(dashboardData);\n }\n asyncFoldTry(fetchData, () => setIsDashboardLoading(false), () => setIsDashboardLoading(false));\n }, [])\n\n return (\n
\n <>\n
\n Vista general\n
\n
\n Mis datos\n
\n
\n
\n {/* User Info Desktop */}\n
\n
\n {user.company ? user.company.name : ''}\n {user.given_name} {user.family_name}\n {user.email}\n
\n
\n {/* User Info Phone */}\n
\n
\n {user.company ? user.company.name : ''}\n {user.given_name} {user.family_name}\n {user.email}\n
\n {/* Alicia Info Phone */}\n {!isAliciaLoading ? (\n <>\n
\n
\n \n \n \n {user.company.alicias[0].id}\n
\n / {aliciaLastEvent?.customer_id}\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n Conectada a la red:\n {aliciaLastEvent?.ssid_wifi}\n
\n
\n \n ) : (\n
\n \n
\n )}\n
\n
\n {/* Alicia Status Phone */}\n
\n {!isAliciaLoading ? (\n
\n
\n \n \n \n Estado del robot: \n
\n {active}\n \n \n \n \n \n \n \n \n \n
\n
\n Última actualización: {date}\n
\n ) : }\n \n
\n {/* Alicia Info & Status Desktop */}\n
\n {!isAliciaLoading ? (\n <>\n
\n \n \n \n {user.company.alicias[0].id}\n / {aliciaLastEvent?.customer_id}\n
\n
\n \n \n \n \n \n \n \n \n \n \n Conectada a la red: {aliciaLastEvent?.ssid_wifi}\n
\n
\n \n \n \n Estado del robot: \n
\n {active}\n \n \n \n \n \n \n \n \n \n
\n Última actualización: {date}\n
\n \n ) : }\n
\n
\n
\n Reporte\n
\n
\n {!isDashboardLoading ? (\n dashboards.map((dashboardUrl, index) => (\n
\n \n
\n ))\n ):
}\n
\n \n
\n );\n};\n\nexport default withAliciaAuthenticatedSettings(HomePage);","import React from 'react';\n\n\nexport const SoundSegmentDropDown = ({ index, fieldValue, fieldSetter, options, width, openedDropDowns, openedDropDownsSetter }) => {\n \n const handleOpen = () => {\n if (index == null) return;\n const actualOpenState = openedDropDowns[index];\n let updatedOpenedDropDowns;\n if (actualOpenState === false) {\n updatedOpenedDropDowns = Array.from({ length: openedDropDowns.length }).fill(false);\n updatedOpenedDropDowns[index] = true;\n } else {\n updatedOpenedDropDowns = [...openedDropDowns];\n updatedOpenedDropDowns[index] = false;\n }\n openedDropDownsSetter(updatedOpenedDropDowns);\n }\n\n const handleOption = (option) => {\n if (index == null) return;\n fieldSetter(option);\n const updatedOpenedDropDowns = [...openedDropDowns];\n updatedOpenedDropDowns[index] = false;\n openedDropDownsSetter(updatedOpenedDropDowns);\n }\n\n return (\n <>\n {/* Desktop drop down */}\n
\n
\n {fieldValue}\n \n \n \n {index != null && openedDropDowns != null && openedDropDowns[index] ? (\n
\n {options.map((option, key) => (\n
handleOption(option)}>\n {option}\n
\n ))}\n
\n ) : null} \n
\n
\n {/* Phone drop down */}\n
\n
\n
\n \n \n \n {fieldValue}\n {index != null && openedDropDowns != null && openedDropDowns[index] ? (\n
\n {options.map((option, key) => (\n
handleOption(option)}>\n {option}\n
\n ))}\n
\n ) : null} \n
\n
\n\n
\n \n \n );\n}","import React, {useState } from 'react';\n\n\nexport const SoundSegmentSwitch = ({ fieldValue, fieldSetter }) => {\n const [checked, setChecked] = useState(fieldValue);\n\n const handleChange = () => {\n if (!fieldSetter) return;\n const newChecked = !checked;\n setChecked(newChecked);\n fieldSetter(newChecked);\n };\n\n return (\n
\n {checked ? 'Activo' : 'Inactivo'}\n \n
\n ) \n}","import React, {useState, useRef } from 'react';\nimport { asyncFoldTry } from '@/api/base';\nimport { uploaAliciaSoundSegmentSound } from '@/api/cognito-users';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { SoundSegmentDropDown } from '@/components/alicia/panel/SoundSegmentDropDown';\nimport { SoundSegmentSwitch } from '@/components/alicia/panel/SoundSegmentSwitch';\n\n\nexport const SoundSegment = ({ soundSegment, index, soundSegments, soundSegmentsSetter, openedDropDowns, openedDropDownsSetter, genders, ages, aliciaId }) => {\n const fileInputRef = useRef(null);\n const [isFileUploading, setIsFileUploading] = useState(false);\n\n // Modifica un fieldName con un nuevo fieldValue del soundSegment actual en la lista de soundSegments\n const updateSegmentField = (fieldName, fieldValue) => {\n const updatedSegments = JSON.parse(JSON.stringify(soundSegments));\n // Si es el segmento por defecto, sólo se puede actualizar el sound_name\n if (soundSegment.default) {\n if (fieldName === 'sound_name') {\n updatedSegments.default[fieldName] = fieldValue\n soundSegmentsSetter(updatedSegments);\n }\n }\n // Si es un segmento cualquiera puede editar todos los campos\n else {\n updatedSegments.custom[index].new_segment[fieldName] = fieldValue;\n soundSegmentsSetter(updatedSegments);\n }\n };\n\n // Elimina un segmento de la lista global a partir de su id.\n const removeSegment = () => {\n if (!soundSegment.default) {\n const updatedSegments = JSON.parse(JSON.stringify(soundSegments));\n updatedSegments.custom = updatedSegments.custom.filter((_, soundSegmentIndex) => soundSegmentIndex !== index);\n soundSegmentsSetter(updatedSegments);\n }\n };\n\n const canUploadFile = () => {\n return soundSegment.default || ( soundSegment.old_segment &&\n Object.keys(soundSegment.old_segment).filter(field => field != 'sound_name').every(field => soundSegment.old_segment[field] == soundSegment.new_segment[field]));\n }\n\n const handleUploadIconClick = () => {\n if (canUploadFile()) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileUpload = async (event) => {\n if (!canUploadFile()) return;\n const file = event.target.files[0];\n if (!file) return;\n const formData = new FormData();\n const genderId = soundSegment.default ? genders[soundSegment.gender] : genders[soundSegment.new_segment.gender];\n const ageId = soundSegment.default ? ages[soundSegment.age] : ages[soundSegment.new_segment.age];\n formData.append('file', file);\n const uploadFile = async () => await uploaAliciaSoundSegmentSound(aliciaId, genderId, ageId, formData);\n setIsFileUploading(true);\n await asyncFoldTry(uploadFile, null, () => updateSegmentField('sound_name', file.name));\n setIsFileUploading(false);\n }\n\n return (\n
\n
\n \n \n \n Archivo:\n
\n {isFileUploading ? (\n \n ) : (\n \n {soundSegment.default ? (soundSegment.sound_name ? soundSegment.sound_name : '-') : (soundSegment.new_segment.sound_name ? soundSegment.new_segment.sound_name : '-')}\n \n )}\n
\n \n \n \n \n
\n
\n Género:\n updateSegmentField('gender', fieldValue)} \n options={soundSegment.default ? null : Object.keys(genders)} \n width={85} \n openedDropDowns={soundSegment.default ? null : openedDropDowns}\n openedDropDownsSetter={soundSegment.default ? null : openedDropDownsSetter}\n />\n
\n
\n Edad:\n updateSegmentField('age', fieldValue)}\n options={soundSegment.default ? null : Object.keys(ages)} \n width={100} \n openedDropDowns={soundSegment.default ? null : openedDropDowns}\n openedDropDownsSetter={soundSegment.default ? null : openedDropDownsSetter}\n />\n
\n
\n \n
\n Estado:\n updateSegmentField('active', fieldValue)}\n />\n
\n
\n
\n {!soundSegment.default ? (\n <>\n removeSegment()}>\n \n \n
removeSegment()}>\n
\n removeSegment()}>\n \n \n
\n
\n \n ) : null} \n
\n
\n
\n
\n )\n}","import React, { useState, useEffect } from 'react';\nimport { SoundSegment } from '@/components/alicia/panel/SoundSegment';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\n\n\nexport const SoundSegmentTable = ({ isLoading, soundSegments, soundSegmentsSetter, genders, ages, aliciaId }) => {\n const [openedDropDowns, setOpenedDropDowns] = useState([]);\n\n useEffect(() => {\n if (!soundSegments.custom) return;\n setOpenedDropDowns(Array.from({ length: 2*soundSegments.custom.length }).fill(false));\n }, [soundSegments]);\n\n // Agrega un segmento sin old_segment a la lista global.\n const addSegment = () => {\n const newGender = Object.keys(genders).find(gender => gender != 'ANY');\n const newAge = Object.keys(ages).find(age => age != 'ANY');\n const newSegment = {'gender': newGender, 'age': newAge, 'active': true};\n const updatedSegments = JSON.parse(JSON.stringify(soundSegments));\n updatedSegments.custom.push({'new_segment': newSegment});\n soundSegmentsSetter(updatedSegments);\n };\n\n return (\n <>\n {isLoading ? (\n \n ) : (\n
\n
\n \n
\n {soundSegments.custom.map((soundSegment, index) => (\n
\n \n
\n ))}\n
addSegment()}\n >\n \n \n \n
\n
\n )}\n \n )\n};","import React, { useState, useEffect, useRef } from 'react';\n\n\nexport const VolumeSelector = ({ initialValue, valueSetter, width }) => {\n const [value, setValue] = useState(initialValue);\n const [isDragging, setIsDragging] = useState(false);\n const pickerRef = useRef(null);\n\n const handleMouseClick = (event) => {\n event.preventDefault();\n const rect = pickerRef.current.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n const percent = offsetX / rect.width;\n const clampedPercent = Math.max(0, Math.min((width-5)/width, percent));\n const newValue = clampedPercent * 100;\n const roundedValue = Math.round(newValue);\n setValue(roundedValue);\n valueSetter(Math.round(roundedValue * width/(width-5)));\n }\n\n useEffect(() => {\n setValue(initialValue);\n }, [initialValue])\n\n useEffect(() => {\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging])\n\n const handleMouseMove = (event) => {\n event.preventDefault();\n if (isDragging) {\n handleMouseClick(event);\n }\n };\n\n const handleMouseDown = (event) => {\n setIsDragging(true);\n handleMouseClick(event);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n };\n\n return (\n
\n
\n
\n
\n \n );\n};","import React, { useState, useEffect } from 'react';\nimport withAliciaAuthenticatedSettings from '@/hocs/withAliciaAuthenticatedSettings';\nimport { SoundSegmentTable } from '@/components/alicia/panel/SoundSegmentTable';\nimport { VolumeSelector } from '@/components/alicia/panel/VolumeSelector';\nimport { asyncFoldTry } from '@/api/base';\nimport { getAliciaVolume, updateAliciaVolume, getGenders, getAges, getAliciaSoundSegments, updateAliciaSoundSegments } from '@/api/cognito-users';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Button } from '@/components/base/Button';\n\n\nconst SoundPage = ({user}) => {\n const [volume, setVolume] = useState(null);\n const [genders, setGenders] = useState(null);\n const [ages, setAges] = useState(null);\n const [soundSegments, setSoundSegments] = useState({});\n const [isSoundSegmentsLoading, setIsSoundSegmentsLoading] = useState(true);\n const [isSaving, setIsSaving] = useState(false);\n\n useEffect(() => {\n const fetchData = async () => {\n const data = await getAliciaVolume(user.company.alicias[0].id);\n setVolume(data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n setIsSoundSegmentsLoading(true);\n const gendersData = await getGenders();\n const agesData = await getAges();\n const genderIdsByValue = gendersData.reduce((acc, current) => ({ ...acc, [current.value]: current.id }), {});\n const ageIdsByValue = agesData.reduce((acc, current) => ({ ...acc, [current.value]: current.id }), {});\n setGenders(genderIdsByValue);\n setAges(ageIdsByValue);\n const data = await getAliciaSoundSegments(user.company.alicias[0].id);\n const customSoundSegments = data.filter(soundSegment => soundSegment.default === false).map(soundSegment => ({'old_segment': soundSegment, 'new_segment': soundSegment}));\n const defaultSoundSegment = data.find(soundSegment => soundSegment.default === true);\n setSoundSegments({'default': defaultSoundSegment, 'custom': customSoundSegments});\n setIsSoundSegmentsLoading(false);\n }\n asyncFoldTry(fetchData, () => setIsSoundSegmentsLoading(false));\n }, []);\n\n const handleSave = async () => {\n const soundSegmentPayload = soundSegments.custom.map(soundSegment => {\n const segmentPayload = {\n new_segment: {\n gender_id: genders[soundSegment.new_segment.gender], \n age_id: ages[soundSegment.new_segment.age], \n active: soundSegment.new_segment.active\n }\n }\n if (soundSegment.old_segment) {\n segmentPayload.old_segment = {\n gender_id: genders[soundSegment.old_segment.gender], \n age_id: ages[soundSegment.old_segment.age], \n active: soundSegment.old_segment.active\n }\n }\n return segmentPayload;\n })\n await asyncFoldTry(async () => {\n setIsSaving(true);\n const volumeData = await updateAliciaVolume(user.company.alicias[0].id, {volume: volume});\n setVolume(volumeData);\n const data = await updateAliciaSoundSegments(user.company.alicias[0].id, soundSegmentPayload);\n const customSoundSegments = data.filter(soundSegment => soundSegment.default === false).map(soundSegment => ({'old_segment': soundSegment, 'new_segment': soundSegment}));\n const defaultSoundSegment = data.find(soundSegment => soundSegment.default === true);\n setSoundSegments({'default': defaultSoundSegment, 'custom': customSoundSegments});\n setIsSaving(false);\n }, (errorMessage) => {\n setIsSaving(false); \n alert(errorMessage);\n })\n }\n\n return (\n
\n
\n Configuraciones\n
\n
\n \n \n \n Volumen\n
\n
\n
\n \n \n \n Volumen\n
\n
\n \n {volume}\n
\n
\n
\n \n \n \n Sonido:\n
\n \n
\n
\n {isSaving ? (\n \n ): (\n
\n
\n
\n )\n};\n\nexport default withAliciaAuthenticatedSettings(SoundPage);","import React, { useState, useEffect } from 'react';\nimport withAliciaAuthenticatedSettings from '@/hocs/withAliciaAuthenticatedSettings';\nimport { asyncFoldTry } from '@/api/base';\nimport { getAliciaMovement, updateAliciaMovement } from '@/api/cognito-users';\nimport { LoadingWheel } from '@/components/base/LoadingWheel';\nimport { Button } from '@/components/base/Button';\n\n\nconst MovementPage = ({user}) => {\n const [movement, setMovement] = useState(null);\n const [isSaving, setIsSaving] = useState(false);\n\n useEffect(() => {\n const fetchData = async () => {\n const data = await getAliciaMovement(user.company.alicias[0].id);\n setMovement(data);\n }\n asyncFoldTry(fetchData);\n }, []);\n\n const handleSave = async () => {\n await asyncFoldTry(async () => {\n setIsSaving(true);\n const data = await updateAliciaMovement(user.company.alicias[0].id, {movement: movement});\n setMovement(data);\n setIsSaving(false);\n }, () => setIsSaving(false))\n }\n\n const RadioButton = ({ id, option }) => (\n
\n \n \n {option === movement ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n \n \n \n
\n )\n\n const Row = ({id, optionName, optionValue, svg}) => (\n <>\n
setMovement(optionValue)}\n >\n
\n {svg}\n {optionName}\n
\n
\n \n
\n
\n \n )\n\n return (\n
\n
\n Configuraciones\n
\n
\n
\n \n \n \n Movimiento\n
\n {/* Desktop */}\n
\n {/* Movement */}\n
\n \n \n \n )}/>\n
\n
\n \n \n \n )}/>\n
\n {/* Custom movement */}\n
\n \n \n \n Movimientos personalizados\n
\n
\n \n \n \n )}/>\n
\n
\n \n \n \n )}/>\n
\n
\n {/* Phone */}\n
\n {/* Movement */}\n
\n \n \n \n )}/>\n
\n
\n \n \n \n )}/>\n
\n {/* Custom movement */}\n
\n \n \n \n Movimientos personalizados\n
\n
\n \n \n \n )}/>\n
\n
\n \n \n \n )}/>\n
\n
\n {/* Save button */}\n
\n
\n {isSaving ? (\n \n ): (\n
\n
\n
\n
\n )\n};\n\nexport default withAliciaAuthenticatedSettings(MovementPage);","import React from 'react';\nimport { Meeting } from '@/components/base/Meeting';\nimport withAliciaAuthenticatedSettings from '@/hocs/withAliciaAuthenticatedSettings'\n\n\nconst ContactPage = () => {\n return (\n
\n
\n Contacto\n
\n
\n \n \n \n \n \n \n Contacto\n
\n
\n
\n ¿Tienes alguna pregunta o comentario?\n
\n \n Completa el formulario a continuación y te responderemos lo antes posible.\n \n
\n
\n \n
\n \n
\n
\n
\n );\n};\n\nexport default withAliciaAuthenticatedSettings(ContactPage);","import React from 'react';\nimport { Button } from '@/components/base/Button';\nimport { useNavigate } from 'react-router';\n\n\nexport const NotFoundPage = () => {\n const navigate = useNavigate();\n\n return (\n
\n
\n
\n
\n \n Error 404\n \n
\n \n Lo sentimos, la página que buscas no existe\n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n );\n};","import { useEffect } from 'react';\nimport { BrowserRouter, Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { trackPageView } from '@/api/base';\nimport ScrollToTop from '@/components/base/ScrollToTop';\nimport EncodelytHomePage from '@/pages/encodelyt/HomePage';\nimport EncodelytBlogPage from '@/pages/encodelyt/BlogPage';\nimport EncodelytBlogPostPage from '@/pages/encodelyt/BlogPostPage';\nimport EncodelytServicePage from '@/pages/encodelyt/ServicePage';\nimport EncodelytSuccessShowcasePage from '@/pages/encodelyt/SuccessShowcasePage';\nimport AliciaSignInPage from '@/pages/alicia/SignInPage';\nimport AliciaHomePage from '@/pages/alicia/HomePage';\nimport AliciaPanelHomePage from '@/pages/alicia/panel/HomePage';\nimport AliciaPanelSoundPage from '@/pages/alicia/panel/SoundPage';\nimport AliciaPanelMovementPage from '@/pages/alicia/panel/MovementPage';\nimport AliciaPanelContactPage from '@/pages/alicia/panel/ContactPage';\nimport { NotFoundPage } from '@/pages/NotFoundPage';\nimport \"@/styles/App.css\";\n\n\nconst GAWrapper = () => {\n const location = useLocation();\n\n useEffect(() => {\n const timer = setTimeout(() => {\n const availablePaths = ['/', '/blog', '/blog/', '/alicia', '/alicia/', '/alicia/sign-in', '/alicia/sign-in/'];\n if (availablePaths.includes(location.pathname) || location.pathname.startsWith('/servicios') ) {\n trackPageView(location);\n }\n }, 250); \n\n return () => clearTimeout(timer);\n\n }, [location]);\n\n return null;\n}\n\nfunction App() {\n return (\n \n \n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } /> \n } /> \n } /> \n } /> \n } /> \n } />\n }\n />\n \n \n \n \n )\n}\n\nexport default App","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App.jsx'\nimport { Amplify } from 'aws-amplify';\nimport outputs from '../amplify_outputs.json';\nimport { initializeGA } from '@/api/base';\n\n\nAmplify.configure(outputs);\ninitializeGA();\nReactDOM.createRoot(document.getElementById('root')).render(\n \n \n ,\n)\n"],"file":"assets/index-8080db2c.js"}