{"version":3,"sources":["components/MapButtons.tsx","components/Common.tsx","components/AdditionalText.tsx","components/Container.tsx","images/icon_download.webp","components/DownloadBanner.tsx","components/FooterV2.tsx","images/people/dima-sayess.pwcimage.webp","images/people/melissa-rizk.pwcimage.webp","components/GetInTouch.tsx","images/linkedIn.gif","images/people/bajhat-el-darwivhe.pwcimage.jpg","images/people/tarek-el-zein.pwcimage.jpg","components/Header.tsx","images/dei-banner.jpg","components/HeaderBanner.tsx","components/IntroSection.tsx","services/index.ts","components/Modal.tsx","utils/contants.ts","components/MapLegend.tsx","components/Section.tsx","components/SidebarV2.tsx","components/SpiderChart.tsx","components/YearSlider.tsx","images/ellipse-grey.svg","images/ellipse-red.svg","images/striped-circle.png","visuals/DigitalEconomyMaturity.tsx","utils/format.ts","utils/lerp.ts","visuals/Map.tsx","visuals/Pillars.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["ButtonToggleValue","TextContainer","styled","div","props","noMargin","Title","h1","emphasis","Subtitle","h3","PlayButton","viewBox","style","height","d","PauseButton","CloseIcon","onClick","fill","className","altProps","points","HamburgerMenu","open","HamburgerContainer","AdditionalTextContainer","AdditionalText","Container","DownloadContainer","a","MainLink","Image","img","Content","h2","DownloadText","small","DownloadBanner","href","target","src","downloadIcon","BreadCrumbContainer","BreadcrumbList","ul","BreadCrumbItem","li","FooterLinksContainer","FooterLinks","Footer","zIndex","position","id","rel","paddingLeft","GetInTouchContainer","GridContainer","SocialFollow","SocialsContainer","span","SocialIcon","ContactUsContainer","ContactUsText","ContactList","PersonCard","Details","Name","Text","EmailContainer","LinkedIn","EmailLink","ContactCard","contact","image","alt","name","profilePageLink","designation","location","linkedIn","emailLink","GetInTouch","contactPersons","DimaSayessImage","MellissaRizkImage","map","person","link","BurgerMenu","HeaderContainer","NavContainer","nav","isActive","HeaderEl","MenuList","show","BackSubMenu","button","LogoContainer","BreadCrumbItemsList","Header","useState","setIsActive","isSubMenu","setIsSubMenu","isIndustries","setIsIndustries","isFunctions","setIsFunctions","isSolutions","setIsSolutions","isInsights","setIsInsights","isAboutUs","setIsAboutUs","isCareers","setIsCareers","isIdeation","setIsIdeation","clearAll","sliderActiveHeight","marginTop","backgroundColor","paddingTop","textDecoration","isMobile","window","innerWidth","e","preventDefault","showLogo","margin","width","VideoContainer","section","video","HeadingContainer","Heading","SubHeading","Category","HeaderBanner","bannerImage","IntroSectionContainer","DlButton","ButtonContainer","IntroSection","BASE_URL","getTopCountries","fetch","method","result","ok","success","error","statusText","json","getDigitalEconomyStages","getCountries","getCompareValues","countryName","firstCountry","data","foundation","talent","innovation","experience","localization","getDmiPillars","countryCode","year","dmiPillars","getGccOecdScore","dmiScore","ModalContainer","ModalBody","Modal","children","SpacedButtonContainer","ToggleButtonsContainer","ToggleButtons","selected","ModalToggle","StyledModal","ModalHeader","ModalCloseButton","SelectContainer","StyledSelect","Select","ChartContainer","StyledRadarChart","Radar","MapButtons","allCountries","resetToggles","handleButtonToggle","initialChartData","labels","datasets","hidden","label","borderColor","borderWidth","pointRadius","borderJoinStyle","initialSelectOption","value","buttonToggle","setbuttonToggle","showModel","setShowModal","countries","setCountries","countryA","setcountryA","countryB","setcountryB","chartData","setChartData","chartLoading","setChartLoading","useEffect","dot","color","alignItems","display","borderRadius","content","marginRight","border","colourStyles","control","styles","option","placeholder","input","singleValue","chartOptions","scale","r","suggestedMin","max","ticks","stepSize","scales","pointLabels","font","size","fontColor","fontStyle","lineHeight","maintainAspectRatio","plugins","legend","country","code","countryACompareValues","countryBCompareValues","dataset","countryAIndex","findIndex","o","countryBIndex","fontSize","options","onChange","DigitalLearner","toggleValue","newValue","DigitalIntelligent","DigitalDisruptors","CountryGpsCoords","gpsLat","gpsLong","ColorValues","red","ButtonWrapper","LegendButton","LegendWrapper","MapLegend","handleLegendClick","selectedValue","index","SectionWipeDiv","Section","SubPillarColors","SidebarOverlay","SidebarContainer","StyledCloseIcon","ContentContainer","GridItemContainer","bgColor","spaced","Flag","CountryName","Country","toLowerCase","CircleContainer","PillarName","SubPillarContainer","SubPillarName","SubPillarProgress","SubPillarScore","SubPillarBar","progress","SubPillar","subPillar","subPillarName","score","Pillar","pillar","text","buildStyles","textSize","textColor","pathColor","trailColor","strokeLinecap","strokeWidth","pillarName","subPillars","SidebarV2","pillars","handleClose","opacity","StyledSvg","svg","SpiderChart","stage","gcc5PlotStrokeRef","useRef","gcc5PlotFillRef","gcc4PlotFillRef","gcc3PlotFillRef","point1Label","point2Label","point3Label","point4Label","point5Label","animatePosition","gsap","timeline","STROKE_OFFSET_ARRAY","totalLength","current","getTotalLength","to","strokeDasharray","strokeDashoffset","plotFillArray","forEach","svgFill","i","fillOpacity","play","xmlns","transform","x","y","ref","SliderTrack","SliderThumb","SliderTrackContainer","RangeContainer","PlayButtonContainer","YearSlider","handleSliderChange","MAX","MIN","setValue","isPlaying","setIsPlaying","intervalIdRef","setInterval","clearInterval","marginLeft","newVal","length","values","step","min","renderTrack","onMouseDown","onTouchStart","renderThumb","isDragged","boxShadow","registerPlugin","ScrollTrigger","DigitalMaturityContainer","VisualContainer","Background","MetricContainer","UnderVisualText","MetricCircle","multiplier","CountryType","DmiValue","GrowthValue","MetricTextContainer","TopContainer","DigitalEconomyMaturity","gccValues","oecdValues","gccOecdValues","setGccOecdValues","maturityContainerRef","leftMetricImgRef","leftMetricRef","rightMetricImgRef","rightMetricRef","underVisualTextRef","oecdDmiRef","oecdgrowthRef","gccDmiRef","gccGrowthRef","gccDmiValue","oecdDmiValue","gccOecdValuesResponse","maturityContainer","leftMetricEl","leftMetricImgEl","rightMetricEl","rightMetricImgEl","underVisualTextEl","oecdDmiEl","oecdgrowthEl","gccDmiEl","gccGrowthEl","getAnimationStartEnd","scrollTrigger","trigger","markers","start","end","scrub","animateText","fromTo","duration","innerHTML","snap","flexDirection","stripedCircle","ellipseGrey","ellipseRed","formatCountryClassnames","replaceAll","lerp","clamp","Math","rangeMap","x1","y1","x2","y2","invlerp","rangeMapArray","dest","Array","_","lerpArray","item","Card","CardContent","IndexContainer","Index","MaturityIndex","CircleIndicator","StyledMapButtons","StyledMapLegend","StyledYearSlider","Map","initialButtonToggle","initialTopCountries","maturityIndex","mapRef","mapContainerRef","countriesContainerRef","topCountries","setTopCountries","opacityMap","setOpacityMap","scaleMap","setScaleMap","setAllCountries","economyStages","setEconomyStages","setYear","setButtonToggle","showSidebar","setShowSidebar","sidebarData","setSidebarData","sidebarCountry","setSidebarCountry","sidebarCode","setSidebarCode","resetToggle","setResetToggle","legendValue","setLegendValue","countryResult","maxValue","minValue","countriesContainer","mapObj","mapBounds","$node","querySelector","getBoundingClientRect","slice","countryGps","formattedCountryName","mapOffset","$mapObject","latLngToPoint","countryNode","countryBounds","yValue","xValue","background","ease","handleRegionClick","console","log","dmiPillarsResult","find","sort","b","localeCompare","draggable","zoomButtons","zoomOnScroll","containerStyle","padding","left","containerClassName","regionStyle","initial","stroke","regionsSelectable","onRegionTipShow","event","el","tooltipEl","economyStage","digitalEconomyStagePerYearItem","undefined","rank","onRegionClick","series","stagesPerYear","filteredStages","filter","floor","ceil","regions","attribute","getMapSeries","num","Intl","NumberFormat","notation","compactDisplay","format","FullPageContainer","inView","FullPageSection","PillarTitle","PillarText","DummyElement","SpiderChartContainer","StyledSpiderChart","TitleContainer","Pillars","currentStage","setCurrentStage","useInView","threshold","fpContainerRef","fpContainerInView","section0Ref","section0InView","section1Ref","section1InView","section2Ref","section2InView","section3Ref","section3InView","section4Ref","section4InView","section5Ref","section5InView","bottom","paddingBottom","FullHeightDiv","AppContainer","App","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.bf07c274.chunk.js","sourcesContent":["import { Chart } from \"chart.js\";\n// import ChartJsPluginDatalabels from \"chartjs-plugin-datalabels\";\nimport { useEffect, useState } from \"react\";\nimport { Radar } from \"react-chartjs-2\";\nimport Select from \"react-select\";\nimport { getCompareValues } from \"services\";\nimport styled, { css } from \"styled-components\";\nimport { Country } from \"visuals/Map\";\nimport { CloseIcon } from \"./Common\";\nimport Modal from \"./Modal\";\n\n// Chart.register(ChartJsPluginDatalabels);\n\ninterface MapButtonProps {\n className?: string;\n allCountries: Country[];\n resetToggles?: boolean;\n handleButtonToggle: (_: ButtonToggleValue, value: boolean) => void;\n}\n\nexport enum ButtonToggleValue {\n DigitalLearner,\n DigitalIntelligent,\n DigitalDisruptors,\n}\n\nexport interface ButtonToggle {\n button: ButtonToggleValue | null;\n value: boolean;\n}\n\ninterface ToggleItemProps {\n selected?: boolean;\n}\n\ninterface SelectOptions {\n value: string;\n label: string;\n}\n\ninterface ChartData {\n labels: string[];\n datasets: ChartDataset[];\n}\n\ninterface ChartDataset {\n hidden: boolean;\n label: string;\n data?: number[];\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n pointRadius: number;\n borderJoinStyle: string;\n // datalabels: any;\n}\n\nconst SpacedButtonContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 30px;\n\n @media (max-width: 768px) {\n flex-direction: column-reverse;\n }\n`;\n\nconst ToggleButtonsContainer = styled.div`\n border: 1px solid #cecece;\n padding: 5px;\n border-radius: 50px;\n display: flex;\n\n @media (max-width: 768px) {\n border-radius: 30px;\n flex-direction: column;\n margin-top: 20px;\n }\n`;\n\nconst ToggleButtons = styled.button`\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 18px;\n line-height: 44px;\n text-align: center;\n letter-spacing: -0.5px;\n color: ${(props) => (props.selected ? \"#ffffff\" : \"#464646\")};\n padding: 0 40px;\n border: none;\n background-color: ${(props) => (props.selected ? \"#000000\" : \"#efefef\")};\n cursor: pointer;\n\n :first-child {\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px;\n }\n :last-child {\n border-top-right-radius: 50px;\n border-bottom-right-radius: 50px;\n }\n\n @media (min-width: 768px) {\n :hover {\n color: #ffffff;\n background-color: #000000;\n }\n }\n\n @media (max-width: 768px) {\n :first-child {\n border-top-left-radius: 30px;\n border-top-right-radius: 30px;\n border-bottom-left-radius: 0px;\n }\n :last-child {\n border-bottom-left-radius: 30px;\n border-bottom-right-radius: 30px;\n border-top-right-radius: 0px;\n }\n }\n`;\n\nconst ModalToggle = styled.button`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 18px;\n line-height: 44px;\n text-align: center;\n letter-spacing: -0.5px;\n color: #ffffff;\n padding: 0 40px;\n border: none;\n background-color: #000000;\n cursor: pointer;\n border-radius: 50px;\n`;\n\nconst StyledModal = styled(Modal)`\n @media (max-width: 768px) {\n width: 90vw;\n height: 70vh;\n }\n\n @media (min-width: 768px) {\n width: 550px;\n height: 370px;\n }\n @media (min-width: 992px) {\n width: 770px;\n height: 515px;\n }\n @media (min-width: 1200px) {\n width: 970px;\n height: 650px;\n }\n`;\n\nconst ModalHeader = styled.div`\n height: 72px;\n display: flex;\n justify-content: space-between;\n background-color: #000;\n padding: 0 30px;\n align-items: center;\n\n & span {\n color: #fff;\n font-size: 24px;\n font-weight: \"bold\";\n }\n\n @media (max-width: 768px) {\n padding: 0px 15px;\n\n & span {\n font-size: 20px;\n }\n }\n`;\n\nconst ModalCloseButton = styled.button`\n border: none;\n background-color: transparent;\n cursor: pointer;\n`;\n\nconst ModalBody = styled.div`\n padding: 30px 60px;\n text-align: left;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n @media (max-width: 768px) {\n padding: 10px 15px;\n }\n`;\n\nconst SelectContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin: 20px 0;\n\n @media (max-width: 768px) {\n flex-direction: column;\n margin: 10px 0;\n }\n`;\n\nconst StyledSelect = styled(Select)`\n flex-grow: 1;\n :first-child {\n margin-right: 20px;\n }\n :last-child {\n margin-left: 20px;\n }\n\n @media (max-width: 768px) {\n margin-bottom: 20px;\n :first-child {\n margin-right: 0px;\n }\n :last-child {\n margin-left: 0px;\n }\n }\n`;\n\nconst ChartContainer = styled.div`\n flex-grow: 1;\n`;\n\nconst StyledRadarChart = styled(Radar)`\n height: 100%;\n`;\n\nconst MapButtons = ({\n className,\n allCountries,\n resetToggles,\n handleButtonToggle,\n}: MapButtonProps) => {\n // Initial values\n const initialChartData: ChartData = {\n labels: [\n \"Digital foundations\",\n \"Digital talent\",\n \"Digital innovation\",\n \"Digital adoption\",\n \"Digital localization\",\n ],\n datasets: [\n {\n hidden: true,\n label: \"countryA\",\n data: [0, 0, 0, 0, 0],\n backgroundColor: \"#DB536A33\",\n borderColor: \"#DB536A\",\n borderWidth: 5,\n pointRadius: 0,\n borderJoinStyle: \"round\",\n // datalabels: {\n // color: \"#FF6384\",\n // backgroundColor: \"rgba(255, 255, 255, 0.7)\",\n // align: \"start\",\n // },\n },\n {\n hidden: true,\n label: \"countryB\",\n data: [0, 0, 0, 0, 0],\n backgroundColor: \"rgba(144, 144, 144, 0.1)\",\n borderColor: \"#CFCFCF\",\n borderWidth: 5,\n pointRadius: 0,\n borderJoinStyle: \"round\",\n // datalabels: {\n // color: \"#909090\",\n // backgroundColor: \"rgba(255, 255, 255, 0.7)\",\n // align: \"end\",\n // },\n },\n ],\n };\n const initialSelectOption: SelectOptions = {\n label: \"\",\n value: \"\",\n };\n\n // Component state\n const [buttonToggle, setbuttonToggle] = useState({\n button: null,\n value: false,\n });\n const [showModel, setShowModal] = useState(false);\n const [countries, setCountries] = useState();\n const [countryA, setcountryA] = useState(initialSelectOption);\n const [countryB, setcountryB] = useState(initialSelectOption);\n const [chartData, setChartData] = useState(initialChartData);\n const [chartLoading, setChartLoading] = useState(true);\n\n useEffect(() => {\n if (resetToggles) {\n setbuttonToggle({\n button: null,\n value: false,\n });\n }\n }, [resetToggles]);\n\n // Configs\n const dot = (color: string) => ({\n alignItems: \"center\",\n display: \"flex\",\n\n \":before\": {\n backgroundColor: `${color}33`,\n borderRadius: 10,\n content: '\"\"',\n display: \"block\",\n marginRight: 8,\n border: `2px solid ${color}`,\n height: 10,\n width: 10,\n },\n });\n\n const colourStyles = (color = \"#DB536A\") => ({\n control: (styles: any): React.CSSProperties => ({\n ...styles,\n backgroundColor: \"white\",\n }),\n option: (styles: any): React.CSSProperties => {\n return {\n ...styles,\n ...dot(color),\n };\n },\n placeholder: (styles: any): React.CSSProperties => ({\n ...styles,\n ...dot(color),\n color: \"#000\",\n }),\n input: (styles: any): React.CSSProperties => ({ ...styles, ...dot(color) }),\n singleValue: (styles: any): React.CSSProperties => ({\n ...styles,\n ...dot(color),\n }),\n });\n\n const chartOptions = {\n scale: {\n r: {\n suggestedMin: 0,\n max: 100,\n },\n ticks: {\n stepSize: 20,\n },\n },\n scales: {\n r: {\n pointLabels: {\n font: {\n size: window.innerWidth <= 768 ? 14 : 18,\n fontColor: \"#ffffff\",\n fontStyle: \"bold\",\n lineHeight: 1,\n },\n },\n },\n },\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n },\n // datalabels: {\n // color: \"#FF6384\",\n // backgroundColor: \"rgba(255, 255, 255, 0.9)\",\n // borderRadius: 60,\n // align: \"end\",\n // font: {\n // size: window.innerWidth <= 768 ? 18 : 20,\n // },\n // },\n },\n };\n\n // Effects\n useEffect(() => {\n (async () => {\n setCountries(\n allCountries.map((country) => {\n return {\n value: country.code ?? country.country,\n label: country.country,\n };\n })\n );\n })();\n }, [allCountries]);\n\n useEffect(() => {\n (async () => {\n setChartLoading(true);\n\n const countryACompareValues = await getCompareValues(countryA.label);\n const countryBCompareValues = await getCompareValues(countryB.label);\n\n let dataset = chartData.datasets;\n\n const countryAIndex = dataset.findIndex((o) => o.label === \"countryA\");\n if (countryACompareValues.success && countryAIndex !== -1) {\n dataset[countryAIndex].data = countryACompareValues.data;\n dataset[countryAIndex].hidden = false;\n }\n\n const countryBIndex = dataset.findIndex((o) => o.label === \"countryB\");\n if (countryBCompareValues.success && countryBIndex !== -1) {\n dataset[countryBIndex].data = countryBCompareValues.data;\n dataset[countryBIndex].hidden = false;\n }\n\n setChartData({\n ...initialChartData,\n datasets: dataset,\n });\n (countryACompareValues.success || countryBCompareValues.success) &&\n setChartLoading(false);\n })();\n }, [countryA, countryB]);\n\n return (\n <>\n \n \n Compare and contrast\n setShowModal(false)}>\n \n \n \n \n \n Select comparatives\n \n \n {\n setcountryA(selected);\n }}\n placeholder={() => \"Type to search\"}\n />\n {\n setcountryB(selected);\n }}\n />\n \n \n {chartLoading &&\n (!countryA.value || !countryB.value\n ? \"Select countries to compare\"\n : \"Loading\")}\n {!chartLoading && (\n \n )}\n \n \n \n\n \n \n {\n const toggleValue =\n buttonToggle.button === ButtonToggleValue.DigitalLearner\n ? !buttonToggle.value\n : true;\n\n const newValue = {\n button: ButtonToggleValue.DigitalLearner,\n value: toggleValue,\n };\n setbuttonToggle(newValue);\n handleButtonToggle(newValue.button, newValue.value);\n }}\n >\n Digital learners\n \n {\n const toggleValue =\n buttonToggle.button === ButtonToggleValue.DigitalIntelligent\n ? !buttonToggle.value\n : true;\n\n const newValue = {\n button: ButtonToggleValue.DigitalIntelligent,\n value: toggleValue,\n };\n setbuttonToggle(newValue);\n handleButtonToggle(newValue.button, newValue.value);\n }}\n >\n Digital adopters\n \n {\n const toggleValue =\n buttonToggle.button === ButtonToggleValue.DigitalDisruptors\n ? !buttonToggle.value\n : true;\n\n const newValue = {\n button: ButtonToggleValue.DigitalDisruptors,\n value: toggleValue,\n };\n setbuttonToggle(newValue);\n handleButtonToggle(newValue.button, newValue.value);\n }}\n >\n Digital disruptors\n \n \n setShowModal(true)}>\n Compare and contrast\n \n \n \n );\n};\n\nexport default MapButtons;\n","import styled from \"styled-components\";\n\nexport const TextContainer = styled.div<{ noMargin?: boolean }>`\n width: 60%;\n /* margin-bottom: ${(props) => (props.noMargin ? \"0\" : \"30px\")}; */\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const Title = styled.h1<{ emphasis?: boolean }>`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: ${(props) => (props.emphasis ? \"28px\" : \"28px\")};\n line-height: 37px;\n letter-spacing: -0.44px;\n color: #000000;\n margin: 0;\n text-align: left;\n margin-bottom: 20px;\n\n @media (max-width: 768px) {\n font-size: 22px;\n }\n`;\n\nexport const Subtitle = styled.h3`\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 18px;\n line-height: 30px;\n letter-spacing: -0.44px;\n color: #212121;\n text-align: left;\n margin-bottom: 35px;\n\n @media (max-width: 768px) {\n font-size: 18px;\n }\n`;\n\nexport const PlayButton = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const PauseButton = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const CloseIcon = (props: JSX.IntrinsicElements[\"svg\"]) => {\n const { onClick, fill, className } = props;\n const altProps = props as Omit<\n JSX.IntrinsicElements[\"svg\"],\n \"onClick\" | \"fill\" | \"className\"\n >;\n\n return (\n \n \n \n \n \n );\n};\n\ninterface HamburgerMenuProps {\n open: boolean;\n onClick: () => void;\n}\nexport const HamburgerMenu = ({ open, onClick }: HamburgerMenuProps) => {\n const HamburgerContainer = styled.div`\n position: relative;\n margin: auto 0 auto 0;\n width: 30px;\n height: 18px;\n transition: 0.5s ease-in-out;\n cursor: pointer;\n transform: rotate(0);\n\n & span {\n display: block;\n position: absolute;\n height: 2px;\n width: 100%;\n border-radius: 9px;\n opacity: 1;\n left: 0;\n transition: transform 0.25s ease-in-out;\n transform: rotate(0);\n background: ${(props) => (props.open ? \"#dedede;\" : \"#464646\")};\n\n &:nth-child(1) {\n top: ${(props) => (props.open ? 8 : 0)}px;\n transform: rotate(${(props) => (props.open ? 135 : 0)}deg);\n }\n &:nth-child(2) {\n top: 8px;\n opacity: ${(props) => (props.open ? 0 : 1)};\n }\n &:nth-child(3) {\n top: ${(props) => (props.open ? 8 : 16)}px;\n transform: rotate(${(props) => (props.open ? -135 : 0)}deg);\n }\n }\n `;\n\n return (\n \n \n \n \n \n );\n};\n","import { Container } from \"components\";\nimport styled from \"styled-components\";\nimport { Subtitle, TextContainer, Title } from \"./Common\";\n\ninterface AdditionalTextProps {\n className?: string;\n}\n\nconst AdditionalTextContainer = styled.div`\n width: 100%;\n background-color: rgb(245, 245, 245);\n padding: 55px 0;\n\n ::before {\n content: \"\";\n position: absolute;\n width: 114%;\n height: 20px;\n top: 0;\n left: -7%;\n background-color: transparent;\n box-shadow: 0px -10px 10px 0px rgba(70, 70, 70, 1);\n }\n`;\n\nconst AdditionalText = ({ className }: AdditionalTextProps) => {\n return (\n \n \n \n Leaping across the digital gap\n \n Participating in the digital economy is no longer a choice. It is\n the core engine for economic growth. To make the leap, GCC countries\n will need to build adaptive regulatory frameworks, aggressively\n develop talent, expand innovation capacity, and increase local\n production of digital goods and services. By leaping across the\n digital gap and transitioning into digital disruptors, GCC countries\n will increase the digital economy’s contribution to the overall\n economy from 12.2% to 13.4%, implying an aggregate regional GDP\n growth of US$138 billion.\n \n \n \n \n );\n};\n\nexport default AdditionalText;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n\n @media (min-width: 768px) {\n width: 750px;\n }\n @media (min-width: 992px) {\n width: 970px;\n }\n @media (min-width: 1200px) {\n width: 1170px;\n }\n @media (min-width: 1400px) {\n width: 1370px;\n }\n`;\n\nexport default Container;\n","export default __webpack_public_path__ + \"static/media/icon_download.5dc92407.webp\";","import styled from \"styled-components\";\nimport downloadIcon from \"../images/icon_download.webp\";\n\nconst ChevronUrl =\n \"https://www.strategyand.pwc.com/etc.clientlibs/pwc/clientlibs/rebrand-clientlibs/components-colors/resources/images/common/Right_Chevron.svg\";\n\ninterface DownloadBannerProps {\n className?: string;\n}\n\nconst DownloadContainer = styled.a`\n display: flex;\n width: 100%;\n background-color: hsl(350, 65.38%, 59.21%);\n padding: 55px 0;\n border-bottom: 1px solid #fff;\n cursor: pointer;\n text-decoration: none;\n justify-content: center;\n\n :hover {\n background-color: hsl(350, 65%, 50%);\n }\n`;\n\nconst MainLink = styled.div`\n display: flex;\n justify-content: center;\n width: 45%;\n\n @media (max-width: 768px) {\n width: 100%;\n padding: 0 15px;\n }\n`;\n\nconst Image = styled.img`\n margin: 0 30px 0 15px;\n height: 60px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst Content = styled.h2`\n color: #fff;\n font-size: 25px;\n font-weight: bold;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n display: block;\n position: relative;\n margin: 0 5px;\n\n ::after {\n content: \"\";\n width: 20px;\n height: 20px;\n display: inline-block;\n background-image: url(${ChevronUrl});\n position: relative;\n right: -7px;\n transform: translateX(0);\n transition: transform 0.2s ease;\n }\n\n ${DownloadContainer}:hover &::after {\n transform: translateX(100%);\n }\n`;\n\nconst DownloadText = styled.small`\n display: block;\n width: 100%;\n color: #fff;\n font-weight: normal;\n font-size: 18px;\n line-height: 30px;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n`;\n\nconst DownloadBanner = ({ className }: DownloadBannerProps) => {\n return (\n \n \n \n \n Download the full report\n Energizing the digital economy in the Gulf countries: From digital\n adopters to digital disruptors\n \n \n \n );\n};\n\nexport default DownloadBanner;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Container from \"./Container\";\n\nconst BreadCrumbContainer = styled.div``;\n\nconst BreadcrumbList = styled.ul`\n flex-wrap: nowrap;\n\n @media (max-width: 768px) {\n overflow: scroll;\n }\n`;\n\nconst BreadCrumbItem = styled.li`\n margin-left: 0;\n\n a {\n color: rgb(255, 255, 255);\n line-height: 19.2px;\n font-size: 15px;\n font-family: \"PwC Helvetica Neue\", Arial, sans-serif;\n }\n\n :not(:first-child)::before {\n background: url(\"https://www.strategyand.pwc.com/etc.clientlibs/pwc/clientlibs/rebrand-clientlibs/components-colors/resources/images/newfooter/breadcrumb__arrow--lightgrey.png\")\n 0 0 no-repeat;\n height: 15px;\n content: \"\";\n display: inline-block;\n margin: 0 20px -3px 10px;\n color: #c7c8ca;\n padding: 0;\n width: 8px;\n }\n`;\n\nconst FooterLinksContainer = styled.div`\n padding-bottom: 40px;\n`;\n\nconst FooterLinks = styled.div`\n a {\n color: #fff;\n text-decoration: none;\n margin-right: 25px;\n font-size: 18px;\n line-height: 22px;\n margin-bottom: 20px;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n\n :hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst Footer = () => {\n return (\n \n
\n \n \n \n
\n \n \n Office locations\n \n \n Alumni\n \n \n Contact us\n \n \n
\n
\n
\n
\n
\n
\n
\n \n

\n © 2019 - 2021 PwC. All rights reserved. PwC refers to the\n PwC network and/or one or more of its member firms, each\n of which is a separate legal entity. Please see{\" \"}\n \n www.pwc.com/structure\n {\" \"}\n for further details.\n

\n \n
  • \n \n Privacy statement\n \n
  • \n
  • \n \n Terms of use\n \n
  • \n
  • \n \n Cookies info\n \n
  • \n
  • \n \n About site provider\n \n
  • \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default Footer;\n","export default __webpack_public_path__ + \"static/media/dima-sayess.pwcimage.9a41f902.webp\";","export default __webpack_public_path__ + \"static/media/melissa-rizk.pwcimage.807270d0.webp\";","import { Container } from \"components\";\nimport styled from \"styled-components\";\nimport LinkedInImage from \"../images/linkedIn.gif\";\n\nimport BahjatElDarwivheImage from \"../images/people/bajhat-el-darwivhe.pwcimage.jpg\";\nimport TarekElZeinImage from \"../images/people/tarek-el-zein.pwcimage.jpg\";\nimport DimaSayessImage from \"../images/people/dima-sayess.pwcimage.webp\";\nimport MellissaRizkImage from \"../images/people/melissa-rizk.pwcimage.webp\";\n\ninterface GetInTouchProps {\n className?: string;\n}\n\ninterface SocialLink {\n name: string;\n link: string;\n image: string;\n}\n\ninterface ContactPerson {\n name: string;\n profilePageLink: string;\n image: string;\n designation: string;\n location: string;\n linkedIn: string;\n emailLink: string;\n}\n\nconst GetInTouchContainer = styled.div`\n width: 100%;\n background-color: #ffffff;\n padding: 55px 0;\n`;\n\nconst GridContainer = styled.div`\n display: grid;\n grid-template-columns: 3fr 1fr;\n\n @media (max-width: 768px) {\n grid-template-columns: 1fr;\n gap: 30px;\n }\n`;\n\nconst SocialFollow = styled.div``;\nconst FollowText = styled.span`\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n font-size: 28px;\n color: #2d2d2d;\n display: block;\n margin-bottom: 25px;\n padding: 0 5px 0 5px;\n padding-left: 0;\n`;\nconst SocialsContainer = styled.div``;\nconst SocialIcon = styled.a`\n margin: 0 10px 0 0;\n\n & img {\n width: 22px;\n height: 22px;\n }\n`;\n\nconst ContactUsContainer = styled.div``;\nconst ContactUsText = styled.h2`\n font-size: 20px;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n color: #7d7d7d;\n font-weight: bold;\n margin-top: 0;\n margin-bottom: 34px;\n`;\nconst ContactList = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n\n @media (max-width: 768px) {\n grid-template-columns: 1fr;\n }\n`;\n\nconst PersonCard = styled.div`\n display: flex;\n`;\nconst Image = styled.div`\n & img {\n height: 105px;\n width: 105px;\n }\n`;\nconst Details = styled.div`\n padding: 0 20px;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\nconst Name = styled.a`\n font-size: 22px;\n color: #2d2d2d;\n line-height: 1.2;\n font-family: \"PwC ITC Charter\", Georgia, Serif;\n text-decoration: none;\n margin-bottom: 5px;\n\n :hover span {\n border-bottom: 2px solid #a32020;\n color: #e0301e;\n }\n`;\nconst Text = styled.span`\n color: #464646;\n font-size: 16px;\n line-height: 1;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n margin-bottom: 5px;\n`;\nconst EmailContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nconst LinkedIn = styled.a`\n height: 24px;\n width: 24px;\n\n & img {\n height: 24px;\n width: 24px;\n }\n`;\nconst EmailLink = styled.a`\n margin-left: 10px;\n padding-bottom: 2px;\n color: #414141;\n font-weight: bold;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n font-size: 18px;\n text-decoration: none;\n\n :hover {\n padding-bottom: 0;\n border-bottom: 2px solid #a32020;\n color: #a32020;\n }\n`;\n\nconst ContactCard = ({ contact }: { contact: ContactPerson }) => {\n return (\n \n \n {contact.name}\n \n
    \n \n {contact.name}\n \n \n {contact.designation} {contact.location}\n \n \n \n \"LinkedIn\"\n \n Email\n \n
    \n
    \n );\n};\n\nconst GetInTouch = ({ className }: GetInTouchProps) => {\n const socialLinks: SocialLink[] = [\n {\n name: \"Twitter\",\n image:\n \"https://www.strategyand.pwc.com/content/pwc/script/network/follow/follow_twitter.png\",\n link: \"https://twitter.com/strategyandME\",\n },\n {\n name: \"LinkedIn\",\n image:\n \"https://www.strategyand.pwc.com/content/pwc/script/network/follow/follow_linkedin.png\",\n link: \"https://www.linkedin.com/company/strategyandme/\",\n },\n {\n name: \"Facebook\",\n image:\n \"https://www.strategyand.pwc.com/content/pwc/script/network/follow/follow_facebook.png\",\n link: \"http://www.facebook.com/strategybusiness\",\n },\n {\n name: \"YouTube\",\n image:\n \"https://www.strategyand.pwc.com/content/pwc/script/network/follow/follow_youtube.png\",\n link: \"http://www.youtube.com/user/strategyand\",\n },\n ];\n\n const contactPersons: ContactPerson[] = [\n {\n name: \"Bahjat El Darwiche\",\n profilePageLink:\n \"https://www.strategyand.pwc.com/m1/en/contacts/b/bahjat-eldarwiche.html\",\n designation: \"Partner, Strategy&\",\n location: \"Middle East\",\n image: BahjatElDarwivheImage,\n linkedIn: \"https://www.linkedin.com/in/bahjat-el-darwiche-3a52231\",\n emailLink:\n \"https://www.strategyand.pwc.com/15/en/content/pwc/global/forms/contactUsNew.html?parentPagePath=/content/pwc/15/en/ideation-center/ic-research/2021/digital-economy-index&style=pwc&territory=15&contactLink=/content/pwc/15/en/contacts/b/bahjat-eldarwiche\",\n },\n {\n name: \"Tarek El Zein\",\n profilePageLink:\n \"https://www.strategyand.pwc.com/m1/en/contacts/t/tarek-el-zein.html\",\n designation: \"Partner, Strategy&\",\n location: \"Middle East\",\n image: TarekElZeinImage,\n linkedIn: \"https://www.linkedin.com/in/tarekelzein\",\n emailLink:\n \"https://www.strategyand.pwc.com/15/en/content/pwc/global/forms/contactUsNew.html?parentPagePath=/content/pwc/15/en/ideation-center/ic-research/2021/digital-economy-index&style=pwc&territory=15&contactLink=/content/pwc/15/en/contacts/t/tarek-el-zein\",\n },\n {\n name: \"Dima Sayess\",\n profilePageLink:\n \"https://www.strategyand.pwc.com/m1/en/contacts/d/dima-sayess.html\",\n designation: \"Partner, Strategy&\",\n location: \"Middle East\",\n image: DimaSayessImage,\n linkedIn: \"https://www.linkedin.com/in/dima-sayess-4a17a310/\",\n emailLink:\n \"https://www.strategyand.pwc.com/15/en/content/pwc/global/forms/contactUsNew.html?parentPagePath=/content/pwc/15/en/ideation-center/ic-research/2021/digital-economy-index-v2&style=pwc&territory=15&contactLink=/content/pwc/15/en/contacts/d/dima-sayess\",\n },\n {\n name: \"Melissa Rizk\",\n profilePageLink:\n \"https://www.strategyand.pwc.com/m1/en/contacts/m/melissa-rizk.html\",\n designation: \"Senior Fellow, Ideation Center, Strategy&\",\n location: \"Middle East\",\n image: MellissaRizkImage,\n linkedIn: \"https://www.linkedin.com/in/melissa-rizk/\",\n emailLink:\n \"https://www.strategyand.pwc.com/15/en/content/pwc/global/forms/contactUsNew.html?parentPagePath=/content/pwc/15/en/ideation-center/ic-research/2021/digital-economy-index&style=pwc&territory=15&contactLink=/content/pwc/15/en/contacts/m/melissa-rizk\",\n },\n ];\n\n return (\n \n \n \n \n Contact us\n \n {contactPersons.map((person) => (\n \n ))}\n \n \n \n Follow us\n \n {socialLinks.map((link) => (\n \n {link.name}\n \n ))}\n \n \n \n \n \n );\n};\n\nexport default GetInTouch;\n","export default \"data:image/gif;base64,R0lGODlhGAAYALMAAACJ0KDT7UCn3PD4/HC95RCQ01Cu3zCf2cDi84DE6P///5DM6yCY1mC14v///wAAACH5BAEHAA4ALAAAAAAYABgAAAReEMhJq7046827/xWRHCCVKMrAlBKCKgILnOkqN6O8FYJQaDQFwIVqvBSLTHB4bBowSyIKMXgFoC8migBgvBBYlFYo+YaF0on5Es2Wp+exGs7Opt8KcF18B6x1gIEbEQA7\"","export default \"data:image/jpeg;base64,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\"","export default \"data:image/jpeg;base64,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\"","import React, { useState } from \"react\";\nimport { Container } from \"components\";\nimport styled, { CSSProperties } from \"styled-components\";\nimport { HamburgerMenu } from \"./Common\";\n\nconst BurgerMenu = styled.div`\n display: none;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nconst HeaderContainer = styled(Container)`\n max-width: 1600px;\n width: 100%;\n padding: 0 30px;\n\n @media (max-width: 768px) {\n position: relative;\n margin: 0;\n width: 100%;\n padding: 0;\n }\n`;\n\nconst NavContainer = styled.nav<{ isActive?: boolean }>`\n align-items: center;\n width: 90%;\n justify-content: center;\n display: flex;\n\n ul {\n margin-bottom: 0;\n margin-top: 1rem;\n }\n\n @media (max-width: 768px) {\n display: ${(props) => (props.isActive ? \"block\" : \"none\")};\n position: absolute;\n top: calc(100% + 10px);\n z-index: 1;\n width: 100%;\n left: 0px;\n }\n`;\n\nconst HeaderEl = styled.div`\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`;\n\nconst MenuList = styled.ul<{ show?: boolean }>`\n display: flex;\n\n li a {\n font-size: 18px;\n line-height: 27px;\n font-family: \"PwC Helvetica Neue\", arial, serif;\n color: #000;\n /* color: rgb(70, 70, 70); */\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n padding: 0;\n margin: 0;\n display: ${(props) => (props.show ? \"flex\" : \"none\")};\n /*opacity: ${(props) => (props.show ? 1 : 0)}; */\n\n & > li {\n width: 100%;\n position: relative;\n margin: auto 0;\n\n &:hover {\n background-color: #464646;\n }\n\n & > a {\n display: block;\n width: 100%;\n padding: 15px 30px 15px 15px;\n position: relative;\n\n &::after {\n content: \"\\u276f\";\n position: absolute;\n right: 18px;\n }\n }\n }\n }\n`;\n\nconst BackSubMenu = styled.button`\n height: 53px;\n font-family: \"PwC Helvetica Neue\";\n font-size: 1.375rem;\n color: #dedede;\n line-height: 19.5px;\n letter-spacing: -0.12px;\n margin: 0 auto 0 0;\n line-height: 59px;\n padding: 0 15px 0 20px;\n display: flex;\n align-items: center;\n flex-flow: row nowrap;\n cursor: pointer;\n background-color: transparent;\n border: none;\n outline: none;\n text-decoration: none;\n position: relative;\n\n ::before {\n content: \"\\u276e\";\n position: absolute;\n left: 0;\n }\n`;\n\nconst LogoContainer = styled.a`\n text-decoration: none;\n\n img {\n width: 130px;\n margin: 25px 3px 14px 0;\n }\n`;\n\nconst BreadCrumbContainer = styled.div<{ isActive: boolean }>`\n position: relative;\n padding: 6px 0px;\n display: flex;\n flex-flow: row nowrap;\n max-width: 1600px;\n width: 100%;\n margin: auto;\n transition: opacity 0.25s ease-in-out;\n border-top: 1px solid rgba(242, 242, 242, 0.85);\n\n opacity: ${(props) => (props.isActive ? 0 : 1)};\n\n @media (max-width: 768px) {\n padding: 6px 15px;\n overflow: scroll;\n }\n`;\n\nconst BreadCrumbItemsList = styled.div`\n display: flex;\n white-space: nowrap;\n flex-flow: row nowrap;\n opacity: 1;\n transition: opacity 0.25s ease-in-out;\n overflow: hidden;\n flex-shrink: 0;\n align-self: center;\n\n a {\n font-size: 14px;\n margin-right: 15px;\n padding-right: 15px;\n color: rgb(70, 70, 70);\n font-weight: bold;\n line-height: 1.8;\n font-family: \"PwC Helvetica Neue\", arial, serif;\n text-decoration: none;\n position: relative;\n\n :hover {\n text-decoration: underline;\n }\n\n ::after {\n content: \"\";\n background-image: url(\"https://www.strategyand.pwc.com/etc.clientlibs/pwc/clientlibs/rebrand-clientlibs/components-colors/resources/images/slim-header-v2/chevron-dark.svg\");\n width: 9px;\n height: 6px;\n background-repeat: no-repeat;\n background-size: contain;\n transform: translateY(-50%) rotate(-90deg);\n fill: #000;\n stroke-width: 1;\n position: absolute;\n top: 50%;\n right: -5px;\n }\n\n :last-child::after {\n display: none;\n }\n }\n`;\n\nconst Header = () => {\n const [isActive, setIsActive] = useState(false);\n const [isSubMenu, setIsSubMenu] = useState(true);\n const [isIndustries, setIsIndustries] = useState(false);\n const [isFunctions, setIsFunctions] = useState(false);\n const [isSolutions, setIsSolutions] = useState(false);\n const [isInsights, setIsInsights] = useState(false);\n const [isAboutUs, setIsAboutUs] = useState(false);\n const [isCareers, setIsCareers] = useState(false);\n const [isIdeation, setIsIdeation] = useState(false);\n\n const clearAll = () => {\n setIsActive(false);\n setIsSubMenu(false);\n setIsIndustries(false);\n setIsFunctions(false);\n setIsSolutions(false);\n setIsInsights(false);\n setIsAboutUs(false);\n setIsCareers(false);\n };\n\n const sliderHeight: CSSProperties = {\n height: \"0\",\n };\n\n const sliderActiveHeight: CSSProperties = {\n height: isFunctions || isInsights || isAboutUs ? \"582px\" : \"475px\",\n marginTop: \"-38px\",\n };\n\n const showLogo = () => {\n if (isActive) {\n const isMobile = window.innerWidth <= 768;\n if (isSubMenu || !isMobile) {\n return \"logo\";\n } else if (isMobile) {\n return (\n {\n e.preventDefault();\n clearAll();\n setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n Menu\n \n );\n }\n } else {\n return \"logo\";\n }\n };\n\n return (\n \n
    \n \n \n \n {showLogo()}\n \n \n {\n if (isActive) clearAll();\n else {\n setIsActive(true);\n setIsSubMenu(true);\n }\n }}\n />\n \n \n \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsIndustries(true);\n }}\n >\n Industries\n \n
  • \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsFunctions(true);\n }}\n >\n Functions\n \n
  • \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsSolutions(true);\n }}\n >\n Solutions\n \n
  • \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsInsights(true);\n }}\n >\n Insights\n \n
  • \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsAboutUs(true);\n }}\n >\n About Us\n \n
  • \n
  • \n {\n clearAll();\n setIsActive(true);\n setIsCareers(true);\n }}\n >\n Careers\n \n
  • \n
    \n
    \n {window.innerWidth > 768 &&
    {\"\"}
    }\n
    \n\n \n \n Home\n \n Ideation Center\n \n \n Research\n \n \n Energizing the digital economy in the Gulf countries: From\n digital adopters to digital disruptors\n \n \n \n
    \n\n \n
    \n
    clearAll()} />\n \n {isIndustries && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n
    \n
    \n
    \n \n Industries\n \n
    \n \n
    \n
    \n\n
    \n

    Featured

    \n\n
    \n \n \n

    Travel and tourism

    \n \n
    \n\n
    \n \n \n

    Sustainability and environment

    \n \n
    \n
    \n
    \n
    \n )}\n\n {isFunctions && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n
    \n
    \n
    \n \n Functions\n \n
    \n \n
    \n
    \n\n
    \n

    Featured

    \n\n
    \n \n \n

    Global organisation strategy

    \n \n
    \n\n
    \n \n \n

    Global product and service innovation

    \n \n
    \n\n
    \n \n \n

    Global technology strategy

    \n \n
    \n
    \n
    \n
    \n )}\n\n {isSolutions && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n )}\n\n {isInsights && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n \n
    \n \n \n
    \n
    \n\n \n
    \n
    \n
    \n setIsIdeation(false)}\n alt=\"Back\"\n />\n {\n e.preventDefault();\n setIsIdeation(false);\n }}\n >\n Insights\n \n
    \n \n Ideation Centre\n \n
    \n \n
    \n \n\n
    \n

    Featured

    \n\n
    \n \n \n

    Sustainable mobility

    \n \n
    \n\n
    \n \n \n

    The dawn of green hydrogen

    \n \n
    \n\n
    \n \n \n

    Skin in the game

    \n \n
    \n
    \n \n \n )}\n\n {isAboutUs && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n
    \n
    \n
    \n \n About us\n \n
    \n \n
    \n
    \n\n
    \n

    Featured

    \n\n
    \n \n \n

    Our heritage

    \n \n
    \n\n
    \n \n \n

    Press room

    \n \n
    \n\n
    \n \n \n

    Our Middle East offices

    \n \n
    \n
    \n
    \n \n )}\n\n {isCareers && (\n \n {\n clearAll();\n window.innerWidth <= 768 && setIsActive(true);\n setIsSubMenu(true);\n }}\n >\n
    \n
    \n
    \n
    \n \n Careers\n \n
    \n \n
    \n
    \n\n
    \n

    Featured

    \n\n
    \n \n \n

    Qadat

    \n \n
    \n
    \n
    \n \n )}\n \n \n \n \n );\n};\n\nexport default Header;\n","export default __webpack_public_path__ + \"static/media/dei-banner.7b0b2166.jpg\";","import styled from \"styled-components\";\nimport Container from \"./Container\";\nimport bannerImage from \"../images/dei-banner.jpg\";\n\nconst VideoContainer = styled.section`\n position: relative;\n overflow: hidden;\n display: block;\n height: 539px;\n margin: 0 auto;\n width: 100%;\n z-index: 100;\n\n ::after {\n content: \"\";\n background-image: url(\"https://www.strategyand.pwc.com/etc.clientlibs/settings/wcm/designs/pwc/rebrand-clientlibs/component-colors-strategyand/resources/images/hero-promo-overlay-black--largedesktop-2400-optimised.svg\");\n background-size: cover;\n display: block;\n content: \" \";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n z-index: -1;\n opacity: 0.8;\n background-repeat: no-repeat;\n background-position: 100% 100%;\n }\n\n @media (max-width: 768px) {\n height: 350px;\n }\n`;\n\nconst Video = styled.video`\n position: absolute;\n width: 100%;\n top: 0;\n object-fit: cover;\n height: 100%;\n z-index: -1;\n`;\n\nconst Image = styled.img`\n position: absolute;\n width: 100%;\n top: 0;\n object-fit: cover;\n height: 100%;\n z-index: -1;\n background-color: #00030b;\n`;\n\nconst HeadingContainer = styled.div`\n display: flex;\n height: 100%;\n justify-content: center;\n flex-direction: column;\n position: relative;\n`;\n\nconst Heading = styled.h2`\n font-family: \"PwC ITC Charter\";\n font-weight: normal;\n font-size: 40px;\n line-height: 52px;\n letter-spacing: 0.3px;\n color: #ffffff;\n`;\n\nconst SubHeading = styled.h3`\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n font-weight: normal;\n font-size: 20px;\n line-height: 32px;\n letter-spacing: 0.3px;\n color: #ffffff;\n`;\n\nconst Category = styled.h3`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 18px;\n line-height: 27px;\n letter-spacing: 0.3px;\n color: #ffffff;\n text-transform: uppercase;\n`;\n\nconst HeaderBanner = () => {\n return (\n \n {/* false}\n preload=\"auto\"\n id=\"myVideo\"\n style={{ position: \"absolute\", width: \"100%\" }}\n >\n \n */}\n\n \"DEI\n\n \n \n Ideation Center Insight\n \n Energizing the digital economy in the Gulf countries\n \n From digital adopters to digital disruptors\n \n \n \n );\n};\n\nexport default HeaderBanner;\n","import { Container } from \"components\";\nimport styled from \"styled-components\";\nimport { Subtitle, TextContainer, Title } from \"./Common\";\n\ninterface IntroSectionProps {\n className?: string;\n}\n\nconst DownloadButtonIconWhite = `https://www.strategyand.pwc.com/etc.clientlibs/pwc/clientlibs/rebrand-clientlibs/components-colors/resources/images/cta-btn-images/icon-external-link-white.svg`;\nconst DownloadButtonIconBlack = `https://www.strategyand.pwc.com/etc.clientlibs/pwc/clientlibs/rebrand-clientlibs/components-colors/resources/images/cta-btn-images/icon-external-link-black.svg`;\n\nconst IntroSectionContainer = styled.div`\n width: 100%;\n background-color: rgb(245, 245, 245);\n padding: 55px 0;\n`;\n\nconst DlButton = styled.a`\n font-size: 16px;\n font-weight: bold;\n line-height: 18px;\n padding: 14px 23px;\n margin: 20px 25px 0 0;\n background: transparent;\n border: 1px solid #7d7d7d;\n color: #2d2d2d;\n text-decoration: none;\n transition: all 0.2s ease-out;\n font-family: \"PwC Helvetica Neue\", Arial, Sans-Serif;\n\n :hover {\n background: #7d7d7d;\n color: #fff;\n margin-right: 21px;\n\n i {\n margin-left: 14px;\n background-image: url(${DownloadButtonIconWhite});\n }\n }\n\n i {\n margin-left: 10px;\n width: 14px;\n height: 14px;\n display: inline-block;\n background-repeat: no-repeat;\n transition: all 0.3s ease;\n background-image: url(${DownloadButtonIconBlack});\n }\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n margin-top: 40px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst IntroSection = ({ className }: IntroSectionProps) => {\n return (\n \n \n \n \n \n Economic expansion and resilience are increasingly dependent on\n digital maturity. As the digital economy rewrites economic growth\n stories, GCC countries have an opening to leap forward as\n disruptors.\n \n \n \n \n \n Download the report\n \n \n {/* \n Download the Arabic report\n \n */}\n \n \n \n );\n};\n\nexport default IntroSection;\n","// const BASE_URL = \"https://digitaleconomydev.azurewebsites.net/api\"; // stg\n// const BASE_URL = \"https://digitaleconomyindex-api.azurewebsites.net/api\"; // uat\nconst BASE_URL = \"https://prod-dei-api.azurewebsites.net/api\"; // prod\n\nexport const getTopCountries = async () => {\n const result = await fetch(`${BASE_URL}/DMI/GetTopCountries`, {\n method: \"GET\",\n });\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n return await result.json();\n};\n\nexport const getDigitalEconomyStages = async () => {\n const result = await fetch(`${BASE_URL}/DMI/GetDigitalEconomyStagesByYear`, {\n method: \"GET\",\n });\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n return await result.json();\n};\n\nexport const getCountries = async () => {\n const result = await fetch(`${BASE_URL}/Lookup/GetCountriesWithCode`, {\n method: \"GET\",\n });\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n return await result.json();\n};\n\ninterface FirstCountry {\n foundation: number;\n talent: number;\n localization: number;\n experience: number;\n innovation: number;\n}\nexport const getCompareValues = async (countryName: string) => {\n const result = await fetch(\n `${BASE_URL}/DMI/GetCompareCountries?FirstCountry=${countryName}`,\n {\n method: \"GET\",\n }\n );\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n const { firstCountry }: { firstCountry: FirstCountry } = await result.json();\n\n return {\n success: true,\n data: [\n firstCountry.foundation,\n firstCountry.talent,\n firstCountry.innovation,\n firstCountry.experience,\n firstCountry.localization,\n ],\n };\n};\n\nexport interface DmiSubPillar {\n subPillarName: string;\n score: number;\n}\nexport interface DmiPillar {\n pillarName: string;\n score: number;\n subPillars: DmiSubPillar[];\n}\n\nexport const getDmiPillars = async (countryCode: string, year: number) => {\n const result = await fetch(\n `${BASE_URL}/DMI/GetDMIPillarByCountryCodeAndYears?countryCode=${countryCode}&year=${year}`,\n {\n method: \"GET\",\n }\n );\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n const dmiPillars: DmiPillar[] = await result.json();\n\n return {\n success: true,\n data: dmiPillars,\n };\n};\n\nexport interface GccOecdScore {\n gccValues: number;\n oecdValues: number;\n}\nexport const getGccOecdScore = async () => {\n const result = await fetch(`${BASE_URL}/DMI/GetGCC_OECDDMI`, {\n method: \"GET\",\n });\n\n if (!result.ok) {\n return {\n success: false,\n error: result.statusText,\n };\n }\n\n const dmiScore: GccOecdScore = await result.json();\n\n return {\n success: true,\n data: dmiScore,\n };\n};\n","import { useEffect } from \"react\";\nimport styled from \"styled-components\";\n\ninterface ModalProps {\n show: boolean;\n children: any;\n className?: string;\n}\n\nconst ModalContainer = styled.div<{ show: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: ${(props) => (props.show ? \"block\" : \"none\")};\n overflow: ${(props) => (props.show ? \"hidden\" : \"auto\")};\n z-index: 1000;\n`;\n\nconst ModalBody = styled.section`\n position: fixed;\n background: white;\n width: 80%;\n height: auto;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst Modal = ({ show, children, className }: ModalProps) => {\n // useEffect(() => {\n // if (show) {\n // document.body.style.overflow = \"hidden\";\n // } else {\n // document.body.style.overflow = \"auto\";\n // }\n // }, [show]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default Modal;\n","export const CountryGpsCoords = [\n {\n country: \"United States\",\n gpsLat: 39.91,\n gpsLong: -77.02,\n },\n {\n country: \"China\",\n gpsLat: 39.55,\n gpsLong: 116.2,\n },\n {\n country: \"Japan\",\n gpsLat: 35.6762,\n gpsLong: 139.6503,\n },\n {\n country: \"United Kingdom\",\n gpsLat: 51.36,\n gpsLong: -0.05,\n },\n {\n country: \"Germany\",\n gpsLat: 52.3,\n gpsLong: 13.25,\n },\n {\n country: \"Korea\",\n gpsLat: 37.31,\n gpsLong: 126.58,\n },\n {\n country: \"France\",\n gpsLat: 48.5,\n gpsLong: 2.2,\n },\n {\n country: \"Brazil\",\n gpsLat: -15.47,\n gpsLong: -47.55,\n },\n {\n country: \"Canada\",\n gpsLat: 45.27,\n gpsLong: -75.42,\n },\n {\n country: \"Italy\",\n gpsLat: 41.54,\n gpsLong: 12.29,\n },\n {\n country: \"India\",\n gpsLat: 28.37,\n gpsLong: 77.13,\n },\n {\n country: \"Australia\",\n gpsLat: -35.15,\n gpsLong: 149.08,\n },\n {\n country: \"Russia\",\n gpsLat: 55.45,\n gpsLong: 37.35,\n },\n {\n country: \"Spain\",\n gpsLat: 40.25,\n gpsLong: -3.45,\n },\n {\n country: \"Mexico\",\n gpsLat: 19.2,\n gpsLong: -99.1,\n },\n {\n country: \"Indonesia\",\n gpsLat: -6.09,\n gpsLong: 106.49,\n },\n {\n country: \"Saudi Arabia\",\n gpsLat: 24.41,\n gpsLong: 46.42,\n },\n {\n country: \"Islamic Republic of Iran\",\n gpsLat: 35.44,\n gpsLong: 51.3,\n },\n {\n country: \"Netherlands\",\n gpsLat: 52.23,\n gpsLong: 4.54,\n },\n {\n country: \"Switzerland\",\n gpsLat: 46.57,\n gpsLong: 7.28,\n },\n];\n\nexport const ColorValues = {\n red: [\n \"#fae5e9\",\n \"#f4cbd2\",\n \"#efb2bc\",\n \"#eba0ad\",\n \"#e68797\",\n \"#e06d80\",\n \"#db536a\",\n \"#d93954\",\n \"#a32020\",\n \"#6e2a35\",\n ],\n};\n","import styled from \"styled-components\";\nimport { ColorValues } from \"utils/contants\";\n\ninterface LegendItemProps {\n value?: number;\n color: string;\n}\n\nconst ButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-end;\n margin-right: 5px;\n cursor: default;\n flex-grow: 1;\n\n :last-child {\n margin-right: 0;\n }\n\n @media (max-width: 768px) {\n margin-right: 2px;\n }\n`;\n\nconst LegendButton = styled.button<\n LegendItemProps & { selected: boolean | null }\n>`\n width: 100%;\n height: 20px;\n background-color: ${(props) => props.color};\n border-style: none;\n cursor: default;\n transform: scaleY(${(props) => (props.selected ? 1.3 : 1)});\n transition: transform 0.2s ease-in-out;\n\n ${ButtonWrapper}:first-child & {\n border-top-left-radius: 25px;\n border-bottom-left-radius: 25px;\n }\n ${ButtonWrapper}:last-child & {\n border-top-right-radius: 25px;\n border-bottom-right-radius: 25px;\n }\n\n ${ButtonWrapper}:hover & {\n transform: scaleY(1.3);\n }\n`;\n\nconst LegendWrapper = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nconst MapLegend = ({\n handleLegendClick,\n className,\n selectedValue,\n}: {\n handleLegendClick: (index: number) => void;\n className?: string;\n selectedValue?: number;\n}) => {\n return (\n \n {ColorValues.red.map((color, index) => {\n const value = (index + 1) * 10;\n\n return (\n handleLegendClick(value)} key={value}>\n {value}\n \n \n );\n })}\n \n );\n};\n\nexport default MapLegend;\n","import styled from \"styled-components\";\n\ninterface SectionProps {\n children: any;\n zIndex?: number;\n height?: \"viewport\" | \"component\";\n}\n\nconst SectionWipeDiv = styled.div`\n scroll-snap-align: start;\n position: relative;\n`;\n\nconst Section = ({ children = \"viewport\", zIndex }: SectionProps) => {\n return {children};\n};\n\nexport default Section;\n","import { DmiPillar, DmiSubPillar } from \"services\";\nimport styled from \"styled-components\";\nimport \"flag-icon-css/css/flag-icon.min.css\";\nimport { CircularProgressbar, buildStyles } from \"react-circular-progressbar\";\nimport \"react-circular-progressbar/dist/styles.css\";\nimport { CloseIcon } from \"./Common\";\n\ninterface SidebarProps {\n show: boolean;\n country: string;\n pillars: DmiPillar[];\n handleClose: () => void;\n className?: string;\n code: string;\n}\n\ninterface SidebarContainerProps {\n show: boolean;\n}\n\nconst SubPillarColors = [\"#A32020\", \"#E68797\", \"#F4CBD2\"];\n\nconst SidebarOverlay = styled.div`\n position: fixed;\n height: 100%;\n width: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: ${(props) => (props.show ? \"101\" : \"-1\")};\n display: ${(props) => (props.show ? \"block\" : \"none\")};\n opacity: ${(props) => (props.show ? \"1\" : \"0\")};\n transition: opacity 0.3s ease-in-out;\n`;\n\nconst SidebarContainer = styled.div`\n position: fixed;\n height: 100%;\n width: 350px;\n background-color: #ebebeb;\n right: ${(props) => (props.show ? \"0\" : \"-100vw\")};\n top: 0;\n bottom: 0;\n z-index: 102;\n padding: 10px;\n transition: right 0.2s ease-in-out;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: scroll;\n padding: 50px 10px;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n ::-webkit-scrollbar {\n display: none;\n }\n\n @media (max-width: 768px) {\n width: 100vw;\n padding: 100px 20px;\n }\n`;\n\nconst StyledCloseIcon = styled(CloseIcon)`\n position: absolute;\n height: 18px;\n top: -36px;\n right: 10px;\n cursor: pointer;\n`;\n\nconst ContentContainer = styled.div`\n position: relative;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px 10px;\n width: 100%;\n max-height: 100%;\n margin: auto;\n\n @media (max-width: 768px) {\n gap: 20px 20px;\n }\n`;\n\nconst GridItemContainer = styled.div<{ bgColor: string; spaced: boolean }>`\n background-color: ${(props) => props.bgColor};\n padding: 15px;\n border-radius: 10px;\n height: 200px;\n display: flex;\n flex-direction: column;\n justify-content: ${(props) =>\n props.spaced ? \"space-between\" : \"flex-start\"};\n box-shadow: 0px 100px 80px rgba(180, 180, 180, 0.07),\n 0px 41.7776px 33.4221px rgba(168, 168, 168, 0.0503198),\n 0px 22.3363px 17.869px rgba(165, 165, 165, 0.0417275),\n 0px 12.5216px 10.0172px rgba(176, 176, 176, 0.035),\n 0px 6.6501px 5.32008px rgba(171, 171, 171, 0.0282725),\n 0px 2.76726px 2.21381px rgba(170, 170, 170, 0.0196802);\n`;\n\nconst Flag = styled.div`\n & span.flag-icon {\n width: 40px;\n height: 40px;\n border-radius: 50% !important;\n }\n`;\n\nconst CountryName = styled.div`\n color: #ffffff;\n font-family: Arial;\n font-weight: bold;\n font-size: 24px;\n line-height: 28px;\n`;\n\nconst Country = ({ name, code }: { name: string; code: string }) => {\n return (\n \n \n \n \n {name}\n \n );\n};\n\nconst CircleContainer = styled.div`\n width: 40px;\n`;\n\nconst PillarName = styled.span`\n color: #000000;\n font-family: Arial;\n font-weight: bold;\n font-size: 14px;\n line-height: 18px;\n margin: 5px 0 0;\n`;\n\nconst SubPillarContainer = styled.div``;\n\nconst SubPillarName = styled.div`\n color: #717171;\n font-family: Arial;\n font-weight: normal;\n font-size: 11px;\n line-height: 18px;\n`;\n\nconst SubPillarProgress = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\n\nconst SubPillarScore = styled.div`\n color: #212121;\n font-family: Arial;\n font-weight: normal;\n font-size: 14px;\n line-height: 18px;\n margin-right: 5px;\n`;\n\nconst SubPillarBar = styled.div<{ progress: number; color: string }>`\n flex-grow: 1;\n position: relative;\n width: 100%;\n flex-basis: 50%;\n\n ::before,\n ::after {\n content: \"\";\n position: absolute;\n top: -2.5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n }\n ::after {\n background-color: ${(props) => props.color};\n width: ${(props) => `${props.progress}%` || \"0\"};\n height: 6px;\n top: -3px;\n }\n`;\n\nconst SubPillar = ({\n subPillar,\n color,\n}: {\n subPillar: DmiSubPillar;\n color: string;\n}) => {\n return (\n \n {subPillar.subPillarName}\n \n {subPillar.score}\n \n \n \n );\n};\n\nconst Pillar = ({ pillar }: { pillar: DmiPillar }) => {\n return (\n \n \n \n \n {pillar.pillarName}\n {pillar.subPillars.map((subPillar, index) => (\n \n ))}\n \n );\n};\n\nconst SidebarV2 = ({\n country,\n code,\n pillars,\n handleClose,\n show,\n className,\n}: SidebarProps) => {\n return (\n
    \n \n \n \n \n \n {pillars.map((pillar) => (\n \n ))}\n \n \n
    \n );\n};\n\nexport default SidebarV2;\n","import { useEffect, useRef } from \"react\";\nimport gsap from \"gsap\";\nimport styled from \"styled-components\";\n\nconst StyledSvg = styled.svg`\n .cls-1 {\n opacity: 0.9;\n }\n\n .cls-10,\n .cls-2 {\n fill: none;\n }\n\n .cls-2 {\n stroke: #fff;\n stroke-width: 2px;\n opacity: 0.12;\n }\n\n .cls-2,\n .cls-5,\n .cls-7 {\n stroke-linejoin: round;\n }\n\n .cls-3,\n .cls-4,\n .cls-6 {\n fill: #fff;\n }\n\n .cls-3 {\n opacity: 0.2;\n }\n\n .cls-4 {\n font-size: 20px;\n font-family: Arial-BoldMT, Arial;\n font-weight: 700;\n }\n\n .cls-5,\n .cls-9 {\n fill: rgba(219, 83, 106, 0.2);\n }\n\n .cls-10,\n .cls-5 {\n stroke: #db536a;\n }\n\n .cls-5,\n .cls-7 {\n stroke-width: 9.218px;\n }\n\n .cls-7 {\n fill: rgba(144, 144, 144, 0.3);\n stroke: #909090;\n }\n\n .cls-8 {\n fill: #909090;\n }\n\n .cls-10 {\n stroke-linecap: round;\n stroke-width: 10px;\n stroke-dasharray: 1358;\n }\n\n .cls-11 {\n fill: rgba(219, 83, 106, 0);\n }\n\n .cls-12 {\n fill: rgba(70, 70, 70, 0.8);\n }\n\n .cls-13 {\n fill: #db536a;\n }\n`;\n\nconst SpiderChart = ({\n className,\n stage,\n}: {\n className?: string;\n stage: number;\n}) => {\n const gcc5PlotStrokeRef = useRef(null);\n const gcc5PlotFillRef = useRef(null);\n const gcc4PlotFillRef = useRef(null);\n const gcc3PlotFillRef = useRef(null);\n\n const point1Label = useRef(null);\n const point2Label = useRef(null);\n const point3Label = useRef(null);\n const point4Label = useRef(null);\n const point5Label = useRef(null);\n\n const animatePosition = gsap.timeline();\n\n useEffect(() => {\n const STROKE_OFFSET_ARRAY = [1, 0.999, 0.802, 0.634, 0.407, 0];\n\n const totalLength = gcc5PlotStrokeRef.current!.getTotalLength();\n\n // Stroke animation\n if (stage === 0) {\n animatePosition.to(\n gcc5PlotStrokeRef.current,\n {\n opacity: 0,\n strokeDasharray: totalLength,\n strokeDashoffset: totalLength * STROKE_OFFSET_ARRAY[stage],\n },\n 0\n );\n } else {\n animatePosition.to(\n gcc5PlotStrokeRef.current,\n {\n opacity: 1,\n strokeDasharray: totalLength,\n strokeDashoffset: totalLength * STROKE_OFFSET_ARRAY[stage],\n },\n 0\n );\n }\n\n // Fill animation\n const plotFillArray = [\n gcc5PlotFillRef.current!,\n gcc4PlotFillRef.current!,\n gcc3PlotFillRef.current!,\n ];\n if (stage > 2) {\n plotFillArray.forEach((svgFill, i) => {\n if (i === 5 - stage) {\n animatePosition.to(\n svgFill,\n {\n fillOpacity: 0.2,\n },\n 0\n );\n } else {\n animatePosition.to(\n svgFill,\n {\n fillOpacity: 0,\n },\n 0\n );\n }\n });\n } else {\n plotFillArray.forEach((svgFill, i) => {\n animatePosition.to(\n svgFill,\n {\n fillOpacity: 0,\n },\n 0\n );\n });\n }\n\n // Label animation\n const labelArray = [\n point1Label.current!,\n point2Label.current!,\n point3Label.current!,\n point4Label.current!,\n point5Label.current!,\n ];\n\n labelArray.forEach((label, index) => {\n if (index <= stage - 1) {\n animatePosition.to(\n label,\n {\n opacity: 1,\n },\n 0\n );\n } else {\n animatePosition.to(\n label,\n {\n opacity: 0,\n },\n 0\n );\n }\n });\n\n animatePosition.play();\n }, [stage, animatePosition]);\n\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 \n \n \n \n \n \n \n Digital\n \n \n foundations\n \n \n \n \n Digital\n \n \n localisation\n \n \n \n \n Digital\n \n \n adoption\n \n \n \n \n Digital\n \n \n innovation\n \n \n \n \n Digital\n \n \n talent\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 \n \n \n \n \n \n );\n};\n\nexport default SpiderChart;\n","import { useEffect, useRef, useState } from \"react\";\nimport { Range } from \"react-range\";\nimport styled from \"styled-components\";\nimport { PauseButton, PlayButton } from \"./Common\";\n\nconst SliderTrack = styled.div`\n height: 10px;\n width: 100%;\n border-radius: 10px;\n align-self: center;\n background-color: #e6e6e6;\n`;\n\nconst SliderThumb = styled.div`\n height: 40px;\n width: 40px;\n border-radius: 50%;\n background-color: #d93954;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: box-shadow ease-in-out 0.2s;\n border: none;\n outline: none;\n`;\n\nconst SliderTrackContainer = styled.div`\n height: 36px;\n display: flex;\n width: 100%;\n opacity: 0.7;\n\n :hover {\n opacity: 1;\n }\n`;\n\nconst RangeContainer = styled.div`\n display: flex;\n align-items: center;\n margin-top: 10px;\n`;\n\nconst PlayButtonContainer = styled.div`\n cursor: pointer;\n`;\n\nconst YearSlider = ({\n handleSliderChange,\n className,\n}: {\n handleSliderChange: (value: number) => void;\n className?: string;\n}) => {\n const MAX = 2020,\n MIN = 2010,\n STEP = 1;\n\n const [value, setValue] = useState(2020);\n const [isPlaying, setIsPlaying] = useState(false);\n\n const intervalIdRef = useRef(0);\n\n useEffect(() => {\n if (isPlaying) {\n intervalIdRef.current = setInterval(() => {\n let newValue = MIN;\n\n if (value + 1 === MAX) {\n setIsPlaying(false);\n newValue = value + 1;\n } else if (value >= MAX) {\n newValue = MIN;\n } else {\n newValue = value + STEP;\n }\n\n setValue(newValue);\n handleSliderChange(newValue);\n }, 1000);\n } else {\n clearInterval(intervalIdRef.current);\n }\n\n return () => clearInterval(intervalIdRef.current);\n }, [isPlaying, value, handleSliderChange]);\n\n return (\n
    \n Selected year: {value}\n \n setIsPlaying(!isPlaying)}>\n {isPlaying ? : }\n \n {MIN}\n {\n if (newVal && newVal.length > 0) {\n setValue(newVal[0]);\n handleSliderChange(newVal[0]);\n }\n }}\n values={[value]}\n step={1}\n min={2010}\n max={2020}\n renderTrack={({ props, children }) => (\n \n {children}\n \n )}\n renderThumb={({ props, isDragged }) => (\n \n )}\n />\n {MAX}\n \n
    \n );\n};\n\nexport default YearSlider;\n","export default __webpack_public_path__ + \"static/media/ellipse-grey.9fc7034b.svg\";","export default __webpack_public_path__ + \"static/media/ellipse-red.1af9645c.svg\";","export default __webpack_public_path__ + \"static/media/striped-circle.48142b7c.png\";","import gsap from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { Subtitle, TextContainer, Title } from \"../components/Common\";\nimport Container from \"../components/Container\";\nimport ellipseGrey from \"../images/ellipse-grey.svg\";\nimport ellipseRed from \"../images/ellipse-red.svg\";\nimport stripedCircle from \"../images/striped-circle.png\";\nimport { GccOecdScore, getGccOecdScore } from \"../services\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nconst DigitalMaturityContainer = styled.div`\n position: relative;\n width: 100%;\n background-color: #ffffff;\n\n ::after {\n content: \"\";\n position: absolute;\n width: 114%;\n height: 20px;\n bottom: 0;\n left: -7%;\n background-color: transparent;\n box-shadow: 0px 10px 10px 0px rgba(70, 70, 70, 1);\n }\n`;\n\nconst VisualContainer = styled.div`\n display: flex;\n position: relative;\n width: 100%;\n height: 70%;\n margin-top: -5%;\n`;\n\nconst Background = styled.img`\n position: absolute;\n margin: auto;\n left: 0;\n right: 0;\n height: 70%;\n top: 0;\n bottom: 0;\n\n @media (max-width: 768px) {\n height: 50%;\n }\n`;\n\ninterface MetricProps {\n position?: \"left\" | \"right\";\n color?: string;\n multiplier?: number;\n value?: number;\n growth?: number;\n type?: string;\n}\n\nconst MetricContainer = styled.div`\n flex-grow: 1;\n position: relative;\n color: ${(props) => props.color};\n text-align: ${(props) => props.position};\n flex-basis: 50%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: clip;\n`;\n\nconst UnderVisualText = styled.div`\n position: absolute;\n bottom: 10%;\n width: 50%;\n\n & span {\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 18px;\n line-height: 1.3;\n letter-spacing: -0.4px;\n color: #000000;\n }\n\n @media (max-width: 768px) {\n position: relative;\n bottom: 0;\n width: 100%;\n margin-bottom: 2rem;\n }\n`;\n\nconst MetricCircle = styled.img`\n height: ${(props) => (props.multiplier ?? 1) * 40}%;\n position: absolute;\n ${(props) => props.position}: 2px;\n\n @media (max-width: 768px) {\n height: ${(props) => (props.multiplier ?? 1) * 40}%;\n }\n`;\n\nconst CountryType = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 24px;\n line-height: 2;\n letter-spacing: -0.44px;\n\n @media (max-width: 768px) {\n font-size: 20px;\n line-height: 1;\n }\n`;\n\nconst DmiValue = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 46px;\n line-height: 1;\n letter-spacing: -0.44px;\n\n @media (max-width: 768px) {\n font-size: 35px;\n line-height: 1.2;\n }\n`;\n\nconst GrowthValue = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 24px;\n line-height: 2;\n letter-spacing: -0.44px;\n\n & b {\n font-weight: bold;\n font-family: Arial;\n }\n\n @media (max-width: 768px) {\n padding-top: 10px;\n font-size: 20px;\n line-height: 1.2;\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst MetricTextContainer = styled.div`\n display: grid;\n grid-template-rows: 1fr 1fr;\n`;\n\nconst TopContainer = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n\n ::after {\n content: \"\";\n position: absolute;\n bottom: -5px;\n width: 98%;\n height: 2px;\n background-color: ${(props) => props.color};\n ${(props) => (props.position === \"right\" ? \"left: 2%\" : \"\")}\n }\n`;\n\nconst DigitalEconomyMaturity = () => {\n const initialGccOecd: GccOecdScore = {\n gccValues: 0,\n oecdValues: 0,\n };\n const underImageText = `Note: Growth rates are CAGR for the 2010-2019 period.`;\n\n const [gccOecdValues, setGccOecdValues] = useState(initialGccOecd);\n const maturityContainerRef = useRef(null);\n const leftMetricImgRef = useRef(null);\n const leftMetricRef = useRef(null);\n const rightMetricImgRef = useRef(null);\n const rightMetricRef = useRef(null);\n const underVisualTextRef = useRef(null);\n const oecdDmiRef = useRef(null);\n const oecdgrowthRef = useRef(null);\n const gccDmiRef = useRef(null);\n const gccGrowthRef = useRef(null);\n\n const gccDmiValue = gccOecdValues.gccValues || 56;\n const oecdDmiValue = gccOecdValues.oecdValues || 44;\n\n useEffect(() => {\n (async () => {\n const gccOecdValuesResponse = await getGccOecdScore();\n if (!gccOecdValuesResponse.success) {\n return;\n }\n setGccOecdValues(gccOecdValuesResponse.data!);\n })();\n }, []);\n\n useEffect(() => {\n const maturityContainer = maturityContainerRef.current;\n const leftMetricEl = leftMetricRef.current;\n const leftMetricImgEl = leftMetricImgRef.current;\n const rightMetricEl = rightMetricRef.current;\n const rightMetricImgEl = rightMetricImgRef.current;\n const underVisualTextEl = underVisualTextRef.current;\n const oecdDmiEl = oecdDmiRef.current;\n const oecdgrowthEl = oecdgrowthRef.current;\n const gccDmiEl = gccDmiRef.current;\n const gccGrowthEl = gccGrowthRef.current;\n\n const getAnimationStartEnd = () => {\n if (window.innerWidth <= 768) {\n return [\"70% bottom\", \"80% center\"];\n } else if (window.innerWidth <= 1300) {\n return [\"center bottom\", \"60% center\"];\n } else {\n return [\"center bottom\", \"60% center\"];\n }\n };\n\n const animatePosition = gsap.timeline({\n scrollTrigger: {\n trigger: maturityContainer,\n markers: false,\n start: getAnimationStartEnd()[0],\n end: getAnimationStartEnd()[1],\n scrub: true,\n },\n });\n\n const animateText = gsap.timeline({\n scrollTrigger: {\n trigger: maturityContainer,\n markers: false,\n start: getAnimationStartEnd()[0],\n end: getAnimationStartEnd()[1],\n scrub: true,\n },\n });\n\n animatePosition.fromTo(\n underVisualTextEl,\n { x: 100, opacity: 0 },\n { x: 0, opacity: 1, duration: 1 },\n 0\n );\n animatePosition.fromTo(\n leftMetricImgEl,\n { x: 100, opacity: 0 },\n { x: 0, opacity: 1, duration: 1 },\n 0\n );\n animatePosition.fromTo(\n leftMetricEl,\n { x: 100, opacity: 0 },\n { x: 0, opacity: 1, duration: 1 },\n 0\n );\n animatePosition.fromTo(\n rightMetricImgEl,\n { x: -100, opacity: 0 },\n { x: 0, opacity: 1, duration: 1 },\n 0\n );\n animatePosition.fromTo(\n rightMetricEl,\n { x: -100, opacity: 0 },\n { x: 0, opacity: 1, duration: 1 },\n 0\n );\n animateText.fromTo(\n oecdDmiEl,\n { innerHTML: 4 },\n {\n snap: { innerHTML: 1 },\n innerHTML: oecdDmiValue,\n },\n 0\n );\n animateText.fromTo(\n gccDmiEl,\n { innerHTML: 2 },\n {\n snap: { innerHTML: 1 },\n innerHTML: gccDmiValue,\n },\n 0\n );\n animateText.fromTo(\n oecdgrowthEl,\n { innerHTML: 0.32 },\n {\n snap: { innerHTML: 0.01 },\n innerHTML: 3.85,\n },\n 0\n );\n animateText.fromTo(\n gccGrowthEl,\n { innerHTML: 0.71 },\n {\n snap: { innerHTML: 0.01 },\n innerHTML: 5.63,\n },\n 0\n );\n }, [gccDmiValue, oecdDmiValue]);\n\n return (\n \n \n \n The GCC is ripe for disruption\n \n DEI scores reveal the majority of GCC countries are digital\n adopters. The DEI also indicates GCC countries are growing their\n digital economies almost twice as fast as advanced economies,\n potentially catching up with OECD levels in five years. While that\n is promising news, they will need to transition from adoption to\n disruption.\n \n \n\n \n A maturing digital economy\n \n\n \n \n\n \n \n \n \n OECD\n \n {gccOecdValues.oecdValues || \" \"}\n \n \n
    \n \n Growth:{\" \"}\n \n {3.85}%\n \n \n
    \n
    \n
    \n\n \n \n \n \n GCC\n \n {gccOecdValues.gccValues || \" \"}\n \n \n
    \n \n Growth:{\" \"}\n \n {5.63}%\n \n \n
    \n
    \n
    \n
    \n \n {underImageText}\n \n \n
    \n );\n};\n\nexport default DigitalEconomyMaturity;\n","export function formatNumber(num: number) {\n return new Intl.NumberFormat('en', {\n notation: \"compact\",\n compactDisplay: \"long\"\n }).format(num)\n}\n\nexport function formatCountryClassnames(country: string) {\n return country\n .replaceAll(/[\\s-.]/g, \"\")\n .toLowerCase()\n}","export const lerp = (x: number, y: number, a: number) => x * (1 - a) + y * a;\n\nexport const invlerp = (x: number, y: number, a: number) => clamp((a - x) / (y - x));\n\nexport const clamp = (a: number, min = 0, max = 1) => Math.min(max, Math.max(min, a));\n\nexport const rangeMap = (\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n a: number\n) => lerp(x2, y2, invlerp(x1, y1, a));\n\nexport const lerpArray = (x: number, y: number, length: number) => {\n return new Array(length).fill(0).map((_, index) => {\n return lerp(x, y, index * 1 / length)\n });\n}\n\nexport const rangeMapArray = (src: { x: number, y: number }, dest: { x: number, y: number }, length: number) => {\n return lerpArray(src.x, src.y, length).map((item) => {\n return rangeMap(src.x, src.y, dest.x, dest.y, item)\n });\n}","import { VectorMap } from \"@nexxt-intelligence/react-jvectormap\";\nimport { ButtonToggle, ButtonToggleValue } from \"components/MapButtons\";\nimport gsap from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\nimport { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n Container,\n MapButtons,\n MapLegend,\n Sidebar,\n YearSlider,\n} from \"../components\";\nimport { Subtitle, TextContainer, Title } from \"../components/Common\";\nimport {\n DmiPillar,\n getCountries,\n getDigitalEconomyStages,\n getDmiPillars,\n getTopCountries,\n} from \"../services\";\nimport { ColorValues, CountryGpsCoords } from \"../utils/contants\";\nimport { formatCountryClassnames, formatNumber } from \"../utils/format\";\nimport { rangeMapArray } from \"../utils/lerp\";\n\ngsap.registerPlugin(ScrollTrigger);\n\ninterface TopCountry {\n country: string;\n countryCode: string;\n maturityIndex: number;\n}\n\nexport interface Country {\n country: string;\n code: string | null;\n}\n\ninterface EconomyStagePerYear {\n country: string;\n maturityIndex: number;\n rank: number;\n countryCode: string;\n}\n\ninterface EconomyStages {\n year: number;\n digitalEconomyStagePerYearItem: EconomyStagePerYear[];\n}\n\nconst GridContainer = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr 1fr;\n gap: 10px 10px;\n margin-top: 50px;\n\n @media (max-width: 768px) {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst Card = styled.div`\n background-color: #fff;\n height: 120px;\n position: relative;\n`;\n\nconst CardContent = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n position: relative;\n left: 10px;\n`;\n\nconst IndexContainer = styled.div`\n width: 20%;\n height: 100%;\n position: absolute;\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 12px;\n line-height: 30px;\n text-align: center;\n color: #ececec;\n /* border: 5px solid #ececec; */\n /* border-left: 0;\n border-top: 0; */\n\n ::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n background-color: #ececec;\n clip-path: polygon(\n 0 0 /* left top */,\n 100% 0 /* right top */,\n 30% 100% /* right bottom */,\n 0 100% /* left bottom */\n );\n }\n\n ::after {\n content: \"#\";\n color: #ffffff;\n font-size: 30px;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n top: 10px;\n }\n`;\n\nconst Index = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 26px;\n line-height: 1;\n text-align: center;\n color: #ececec;\n position: absolute;\n left: 95%;\n top: 10px;\n`;\n\nconst CountryName = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 14px;\n line-height: 18px;\n text-align: center;\n padding: 0 0 10px 0;\n color: #464646;\n`;\n\nconst MaturityIndex = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 14px;\n line-height: 18px;\n text-align: center;\n padding: 10px 0 0 0;\n color: #000000;\n text-transform: capitalize;\n`;\n\nconst CircleIndicator = styled.div`\n border-radius: 75px;\n width: 10px;\n height: 10px;\n opacity: 1;\n`;\n\nconst StyledMapButtons = styled(MapButtons)``;\n\nconst StyledMapLegend = styled(MapLegend)`\n margin-bottom: 30px;\n`;\n\nconst StyledYearSlider = styled(YearSlider)`\n text-align: center;\n margin-bottom: 55px;\n`;\n\nconst Map = () => {\n const initialDmiPillars: DmiPillar[] = [\n {\n pillarName: \"Pillar\",\n score: 0,\n subPillars: [\n {\n score: 0,\n subPillarName: \"Sub Pillar\",\n },\n ],\n },\n ];\n\n const initialButtonToggle: ButtonToggle = {\n button: null,\n value: false,\n };\n\n const initialTopCountries: TopCountry[] = new Array(20).fill({\n country: \"-\",\n countryCode: \"-\",\n maturityIndex: 0,\n });\n\n const mapRef: any = useRef();\n const mapContainerRef = useRef(null);\n const countriesContainerRef = useRef(null);\n\n const [topCountries, setTopCountries] =\n useState(initialTopCountries);\n const [opacityMap, setOpacityMap] = useState([]);\n const [scaleMap, setScaleMap] = useState([]);\n const [allCountries, setAllCountries] = useState([]);\n const [economyStages, setEconomyStages] = useState([]);\n const [year, setYear] = useState(2020);\n const [buttonToggle, setButtonToggle] =\n useState(initialButtonToggle);\n const [showSidebar, setShowSidebar] = useState(false);\n const [sidebarData, setSidebarData] =\n useState(initialDmiPillars);\n const [sidebarCountry, setSidebarCountry] = useState(\"\");\n const [sidebarCode, setSidebarCode] = useState(\"\");\n const [resetToggle, setResetToggle] = useState(false);\n const [legendValue, setLegendValue] = useState(-1);\n\n useEffect(() => {\n (async () => {\n const countryResult: Country[] = await getCountries();\n setAllCountries(countryResult);\n\n const economyStages: EconomyStages[] = await getDigitalEconomyStages();\n setEconomyStages(economyStages);\n })();\n }, []);\n\n // Top Countries api call\n useEffect(() => {\n (async () => {\n const countryResult: TopCountry[] = await getTopCountries();\n setTopCountries([]);\n\n const maxValue = Math.max(...countryResult.map((o) => o.maturityIndex));\n const minValue = Math.min(...countryResult.map((o) => o.maturityIndex));\n\n setOpacityMap(\n rangeMapArray(\n { x: maxValue, y: minValue },\n { x: 1, y: 0.1 },\n countryResult.length\n )\n );\n setScaleMap(\n rangeMapArray(\n { x: maxValue, y: minValue },\n { x: 1, y: 0.1 },\n countryResult.length\n )\n );\n setTopCountries(countryResult);\n })();\n }, []);\n\n useEffect(() => {\n const countriesContainer = countriesContainerRef.current!;\n const mapObj = mapRef.current!;\n\n const mapNode: HTMLDivElement = mapObj.$node[0].querySelector(\n \".jvectormap-container\"\n );\n const mapBounds = mapNode.getBoundingClientRect();\n\n const getAnimationStartEnd = () => {\n if (window.innerWidth <= 768) {\n return [\"0% center\", \"60% bottom\"];\n } else if (window.innerWidth <= 1300) {\n return [\"-25% center\", \"80% bottom\"];\n } else {\n return [\"-15% center\", \"110% bottom\"];\n }\n };\n\n const animatePosition = gsap.timeline({\n scrollTrigger: {\n trigger: countriesContainer,\n markers: false,\n start: () => getAnimationStartEnd()[0],\n end: () => getAnimationStartEnd()[1],\n scrub: true,\n },\n });\n\n topCountries.slice(0, 15).forEach((country, index) => {\n const countryGps = CountryGpsCoords[index];\n const formattedCountryName = formatCountryClassnames(country.country);\n\n const mapOffset: DOMRect = mapObj.$mapObject.latLngToPoint(\n countryGps.gpsLat,\n countryGps.gpsLong\n );\n\n const countryNode = countriesContainer.querySelector(\n `.country.c-${formattedCountryName} .circleIndicator`\n )!;\n const countryBounds = countryNode.getBoundingClientRect();\n\n const yValue =\n mapBounds.y -\n (countryBounds.y + countryBounds.height / 2) +\n mapOffset.y;\n const xValue =\n mapBounds.x - (countryBounds.x + countryBounds.width / 2) + mapOffset.x;\n\n animatePosition.fromTo(\n countryNode,\n {\n y: yValue,\n x: xValue,\n width: \"1px\",\n height: \"1px\",\n border: \"1px solid #000\",\n background: \"transparent\",\n opacity: 1,\n ease: \"power1.inOut\",\n },\n {\n y: 0,\n x: 0,\n width: 45 * scaleMap[index],\n height: 45 * scaleMap[index],\n border: \"10px solid #a32020\",\n background: \"#f5bfc4\",\n opacity: opacityMap[index],\n },\n 0\n );\n });\n }, [topCountries]);\n\n const showTooltip = (event: Event, el: HTMLDivElement[], code: string) => {\n const tooltipEl = el[0];\n const economyStage = economyStages\n .find((o) => o.year === year)\n ?.digitalEconomyStagePerYearItem.find((o) => o.countryCode === code);\n\n if (\n !economyStage ||\n economyStage.maturityIndex === undefined ||\n code === \"\"\n ) {\n tooltipEl.innerHTML = \"\";\n tooltipEl.style.opacity = \"0\";\n } else {\n tooltipEl.style.opacity = \"1\";\n tooltipEl.innerHTML = `
    \n
    \n
    \n ${economyStage?.maturityIndex}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ${economyStage?.country}
    \n
    \n DEI rank (${year})\n ${economyStage?.rank}/${\n allCountries.length - 5\n }\n
    \n
    \n
    `;\n }\n };\n\n const handleButtonToggle = (button: ButtonToggleValue, value: boolean) => {\n setLegendValue(-1);\n setButtonToggle({ button, value });\n };\n\n const handleLegendClick = (index: number) => {\n setResetToggle(true);\n setButtonToggle(initialButtonToggle);\n\n index === legendValue ? setLegendValue(-1) : setLegendValue(index);\n console.log(index);\n };\n\n const getMapSeries = () => {\n const scale: any = {};\n const values: any = {};\n\n const stagesPerYear = economyStages.find(\n (o) => o.year === year\n )?.digitalEconomyStagePerYearItem;\n\n ColorValues.red.forEach((color, index) => {\n scale[`red-${index}`] = color;\n });\n\n let filteredStages = stagesPerYear?.filter((o) => {\n if (legendValue !== -1) {\n return (\n Math.floor((o.maturityIndex - 1) / 10) ===\n Math.floor(legendValue / 10) - 1\n );\n } else if (buttonToggle.value) {\n switch (buttonToggle.button) {\n case ButtonToggleValue.DigitalLearner:\n return o.maturityIndex <= 33;\n case ButtonToggleValue.DigitalIntelligent:\n return o.maturityIndex > 33 && o.maturityIndex <= 60;\n case ButtonToggleValue.DigitalDisruptors:\n return o.maturityIndex > 60;\n }\n }\n return true;\n });\n\n filteredStages?.forEach((item) => {\n values[item.countryCode] = `red-${\n Math.ceil(item.maturityIndex / 10) - 1\n }`;\n });\n\n return {\n regions: [\n {\n scale: scale,\n attribute: \"fill\",\n values,\n },\n ],\n };\n };\n\n const handleRegionClick = async (e: Event, code: string) => {\n console.log(code);\n const dmiPillarsResult = await getDmiPillars(code, year);\n const country = allCountries.find((o) => o.code === code);\n\n if (!dmiPillarsResult.success) {\n return;\n }\n\n if (country) {\n setSidebarCountry(country.country);\n setSidebarCode(country.code as string);\n setSidebarData(dmiPillarsResult.data!);\n setShowSidebar(true);\n }\n };\n\n return (\n <>\n \n \n \n A construct for measuring digital maturity\n \n Our Digital Economy Index (DEI) is a comprehensive and\n evidence-based tool that measures a country’s digital maturity\n based on 86 indicators along five pillars: foundations, talent,\n innovation, adoption, and local production. The DEI allows\n policymakers to assess their country’s digital economic\n development and where they need to focus their efforts to\n encourage growth.\n \n \n We used the DEI to assess 109 countries, which we have ranked into\n three categories: digital learners, digital adopters, and digital\n disruptors.\n \n \n \n Global digital economy rankings\n \n\n {\n setResetToggle(false);\n handleButtonToggle(button, value);\n }}\n allCountries={allCountries.sort((a, b) =>\n a.country.localeCompare(b.country)\n )}\n />\n setShowSidebar(false)}\n />\n \n\n \n {\n setYear(value);\n }}\n />\n \n \n\n \n \n \n \n The digital economy market value is dominated by advanced\n economies\n \n \n Advanced economies lead the globe in digital economy market value,\n with the United States representing more than one third of the\n global sector’s market value. Saudi Arabia’s digital economy\n market value ranks in the top 20 countries globally, making up\n half of the GCC market size.\n \n \n \n \n Digital economy market value (US $) of top 15 countries\n \n \n \n {topCountries.slice(0, 15).map((country, index) => {\n return (\n \n \n {index + 1}\n \n \n \n {formatNumber(country.maturityIndex)}\n \n \n {country.country}\n \n \n );\n })}\n \n \n \n \n );\n};\n\nexport default Map;\n","import { useEffect, useState } from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport styled from \"styled-components\";\nimport { Container, SpiderChart } from \"../components\";\nimport { Subtitle, Title } from \"../components/Common\";\n\ninterface ScrollObserver {\n inView: boolean;\n}\n\nconst GridContainer = styled.div`\n /* display: grid;\n grid-template-columns: 40% 60%;\n grid-template-rows: 1fr;\n gap: 0px 30px;\n grid-template-areas: \". .\"; */\n height: 100%;\n\n @media (max-width: 768px) {\n grid-template-areas: \".\" \".\";\n grid-template-columns: 1fr;\n grid-template-rows: 1fr ${window.innerWidth + 50}px;\n }\n`;\n\nconst FullPageContainer = styled.div`\n /* overflow: ${(props) => (props.inView ? \"scroll\" : \"hidden\")}; */\n /* overflow: scroll; */\n /* scroll-snap-type: y mandatory; */\n /* height: 50%; */\n z-index: 1;\n position: relative;\n width: 40%;\n\n /* scrollbar-width: none;\n -ms-overflow-style: none; */\n\n /* ::-webkit-scrollbar {\n width: 0;\n background: transparent;\n }\n ::-webkit-scrollbar-thumb {\n background: transparent;\n } */\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst FullPageSection = styled.div`\n /* scroll-snap-align: start; */\n height: 70vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n\n :last-child {\n margin-bottom: 20vh;\n }\n\n & > div {\n background-color: #464646;\n padding: 15px 0;\n }\n`;\n\nconst PillarTitle = styled.h3`\n font-family: \"PwC Helvetica Neue\";\n font-weight: bold;\n font-size: 28px;\n line-height: 2;\n letter-spacing: -0.5px;\n color: #db536a;\n margin: 0;\n\n @media (max-width: 768px) {\n font-size: 22px;\n line-height: 2;\n }\n`;\n\nconst PillarText = styled.span`\n font-family: \"PwC Helvetica Neue\";\n font-weight: normal;\n font-size: 20px;\n line-height: 30px;\n letter-spacing: -0.5px;\n color: #ffffff;\n margin-top: 10px;\n\n @media (max-width: 768px) {\n font-size: 18px;\n line-height: 1;\n }\n`;\n\nconst DummyElement = styled.div`\n position: absolute;\n bottom: 500px;\n`;\n\nconst SpiderChartContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\nconst StyledSpiderChart = styled(SpiderChart)`\n position: fixed;\n top: 50%;\n transform: translateY(-50%);\n left: 48vw;\n width: 50vw;\n max-width: 650px;\n padding: 15px;\n\n @media (max-width: 1368px) {\n width: 45vw;\n }\n\n @media (max-width: 768px) {\n width: 100%;\n top: 10%;\n left: 0;\n transform: translateY(40%);\n }\n`;\n\nconst TitleContainer = styled.div`\n position: fixed;\n top: 0%;\n z-index: 2;\n height: 30%;\n width: 30%;\n background-color: #464646;\n\n ::after {\n content: \"\";\n position: absolute;\n width: 120%;\n height: 150px;\n bottom: 0px;\n left: -10%;\n background-color: transparent;\n box-shadow: 0px 90px 50px 10px rgb(70, 70, 70);\n }\n\n @media (max-width: 1800px) {\n width: 35%;\n\n ::after {\n width: 103%;\n left: -3%;\n box-shadow: 0px 50px 35px 15px rgb(70, 70, 70);\n }\n }\n\n @media (max-width: 1700px) {\n width: 37%;\n\n ::after {\n width: 103%;\n left: -3%;\n box-shadow: 0px 50px 35px 15px rgb(70, 70, 70);\n }\n }\n\n @media (max-width: 1450px) {\n width: 45%;\n\n ::after {\n width: 103%;\n left: -3%;\n box-shadow: 0px 30px 35px 15px rgb(70, 70, 70);\n }\n }\n\n @media (max-width: 1300px) {\n width: 50%;\n\n ::after {\n width: 103%;\n left: -3%;\n box-shadow: 0px 30px 35px 15px rgb(70, 70, 70);\n }\n }\n\n @media (max-width: 768px) {\n width: calc(100% - 30px);\n height: 25%;\n\n ::after {\n box-shadow: 0px 40px 40px 15px rgb(70, 70, 70);\n width: 110%;\n left: -10%;\n bottom: 20px;\n }\n }\n`;\n\nconst Pillars = () => {\n const [currentStage, setCurrentStage] = useState(0);\n\n const [fpContainerRef, fpContainerInView] = useInView({\n threshold: 0,\n });\n const [section0Ref, section0InView] = useInView({ threshold: 0 });\n const [section1Ref, section1InView] = useInView({ threshold: 0 });\n const [section2Ref, section2InView] = useInView({ threshold: 0 });\n const [section3Ref, section3InView] = useInView({ threshold: 0 });\n const [section4Ref, section4InView] = useInView({ threshold: 0 });\n const [section5Ref, section5InView] = useInView({ threshold: 0 });\n\n useEffect(() => {\n const inViewArray = [\n section0InView,\n section1InView,\n section2InView,\n section3InView,\n section4InView,\n section5InView,\n ];\n const index = inViewArray.findIndex((o) => o === true);\n setCurrentStage(index === -1 ? currentStage : index);\n }, [\n currentStage,\n section0InView,\n section1InView,\n section2InView,\n section3InView,\n section4InView,\n section5InView,\n ]);\n\n return (\n
    \n \n \n \n\n \n \n \n Targeting the right areas for the highest return\n \n \n To keep pace with advanced economies, GCC countries need to\n evaluate themselves across the five pillars of digital maturity.\n \n
    \n \n \n \n
    \n \n
    \n
    \n \n
    \n Foundations\n \n GCC countries are almost at parity with the OECD in terms of\n foundational technology, thanks to heavy investments in\n digital infrastructure.\n \n
    \n
    \n \n
    \n Talent\n \n GCC countries need to produce more local digital talent by\n investing in STEM education at the secondary school level.\n \n
    \n
    \n \n
    \n Innovation\n \n Most GCC countries lack sufficient R&D and financial resources\n to support innovation, although the number of startups is\n increasing.\n \n
    \n
    \n \n
    \n Adoption\n \n GCC countries almost match the OECD in adoption of digital\n technologies. However, more could be done to encourage online\n consumer transactions.\n \n
    \n
    \n \n
    \n Localization\n \n GCC countries lack adequate localized digital production.\n Digital industry underdevelopment and a lack of resources for\n digital entrepreneurs have created a dependence on imported\n technology and services.\n \n
    \n
    \n
    \n \n \n \n \n \n \n );\n};\n\nexport default Pillars;\n","import styled from \"styled-components\";\nimport \"./App.css\";\nimport {\n AdditionalText,\n DownloadBanner,\n GetInTouch,\n HeaderBanner,\n Section,\n Header,\n Footer,\n IntroSection,\n} from \"./components\";\nimport \"./styles/jvectormap.css\";\nimport \"./styles/tooltipProgressBar.scss\";\nimport { DigitalEconomyMaturity, Map, Pillars } from \"./visuals\";\n\nconst FullHeightDiv = styled.div`\n height: 100%;\n`;\n\nconst AppContainer = styled.div`\n scroll-snap-type: y proximity;\n display: flex;\n flex-direction: column;\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
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n