{"version":3,"file":"static/js/991.e36b785d.chunk.js","mappings":"+RAUe,SAASA,IACtB,OAA8BC,EAAAA,EAAAA,UAAyB,IAAG,eAAnDC,EAAO,KAAEC,EAAU,KAC1B,GAA8BF,EAAAA,EAAAA,UAAsB,MAAK,eAAlDG,EAAO,KAAEC,EAAU,KAa1B,OATAC,EAAAA,EAAAA,YAAU,WACRC,IAAAA,IAAe,GAAD,OAAIC,6BAAgC,wBAAuB,SAACC,EAAOC,GAC1ED,GAAON,EAAWO,EAAOC,KAAKC,KAAKF,OAC1C,IACAH,IAAAA,IAAe,GAAD,OAAIC,6BAAgC,2BAA0B,SAACC,EAAOC,GAC7ED,GAAOJ,EAAWK,EAAOC,KAAKC,KAAKR,QAC1C,GACF,GAAG,KAGD,iCACE,UAACS,EAAA,EAAO,YACN,iBAAKC,UAAU,MAAK,WAClB,cAAGA,UAAU,QAAO,UAClB,SAACC,EAAA,GAAI,CAACC,EAAE,mBAEV,cAAGF,UAAU,WAAU,UACrB,SAACC,EAAA,GAAI,CAACC,EAAE,sBAEV,wBACE,SAACD,EAAA,GAAI,CAACC,EAAE,4BAGZ,cAAGC,KAzBST,sIAyBQU,OAAO,SAASJ,UAAU,eAAc,UAC1D,SAACC,EAAA,GAAI,CAACC,EAAE,qBAGZ,SAACH,EAAA,EAAO,WACN,gBAAKC,UAAU,+CAA8C,UAC3D,iBAAKA,UAAU,wCAAwCK,MAAO,CAAEC,UAAW,GAAI,WAC7E,cAAGN,UAAU,WAAU,UACrB,SAACC,EAAA,GAAI,CAACC,EAAE,kCAEV,wBACE,SAACD,EAAA,GAAI,CAACC,EAAE,sCAEV,gBAAKF,UAAU,OAAM,SACpBZ,GAAU,8BAAGA,EAAUA,EAAQmB,KAAI,SAACA,EAAKC,GAAC,OAAK,SAACC,EAAA,GAAU,CAASF,IAAK,IAAIE,EAAAA,GAAIF,IAAhBC,EAAwB,KAAI,SAAC,IAAY,CAACR,UAAU,WAAWU,KAAK,YAAgB,SAAC,IAAY,CAACV,UAAU,WAAWU,KAAK,mBAKnM,UAACX,EAAA,EAAO,YACN,cAAGC,UAAU,WAAU,UACrB,SAACC,EAAA,GAAI,CAACC,EAAE,wBAEV,SAACD,EAAA,GAAI,CAACC,EAAE,yBAAyBS,WAAW,mBAC3CrB,IACC,iCACE,cAAGU,UAAU,mBAAkB,UAC7B,SAACC,EAAA,GAAI,CAACC,EAAE,2BAEV,SAACU,EAAA,EAAS,CAACC,KAAMvB,EAASU,UAAU,MAAK,UACvC,cAAGA,UAAU,cAAa,UACxB,SAACC,EAAA,GAAI,CAACC,EAAE,6BAKhB,SAAC,KAAI,CAACY,GAAG,QAAQd,UAAU,cAAa,UACtC,SAACC,EAAA,GAAI,CAACC,EAAE,8BAKlB,C,wHC1CYa,E,uCAIX,SAJWA,GAAAA,EAAS,oBAATA,EAAS,wBAATA,EAAS,QAIpB,CAJWA,IAAAA,EAAS,KAMd,IAAMN,EAAG,WAId,WAAYO,IAAgB,oBAFrBA,UAAI,EAGTC,KAAKD,KAAOA,CACd,CAIC,OAJA,8BAED,SAAcT,GACZ,OAAOU,KAAKD,OAAST,EAAIS,IAC3B,KAAC,EAVa,GAcD,SAASE,EAAWC,GACjC,IAAQC,GAAgBC,EAAAA,EAAAA,MAAhBD,YAER,OACE,kBAAMpB,UAAS,MAASsB,QAAS,kBAAMH,EAAMG,SAAWH,EAAMI,SAAWR,EAAUS,UAAYL,EAAMG,QAAQH,EAAMZ,IAAI,EAAEkB,gBAAYC,EAAWC,KAAMR,EAAMG,SAAWH,EAAMI,SAAWR,EAAUS,SAAW,SAAW,QAASI,UAAW,EAAE,WAC5O,gBAAK5B,UAAU,YAAY6B,IAAG,mCAA8BV,EAAMZ,IAAIS,KAAKc,cAAa,QAAQC,IAAKX,EAAY,QAAD,OAASD,EAAMZ,IAAIS,UACnI,iBAAMhB,UAAS,qBAAgBmB,EAAMI,QAAUR,EAAUiB,SACzD,kBAAMhC,UAAU,WAAU,WACxB,SAAC,KAAI,CAACE,EAAC,eAAUiB,EAAMZ,IAAIS,QAC1BG,EAAMc,WACL,iBAAMjC,UAAU,oBAAmB,UACjC,SAAC,KAAI,CAACE,EAAC,oBAAeiB,EAAMc,kBAIhCd,EAAMe,OAAyB,IAAhBf,EAAMe,SAAgB,iBAAMlC,UAAU,YAAW,SAAEmB,EAAMe,UAGhF,C,yFC3EA,SAASC,EAAehB,GACpB,OACI,gBAAKnB,UAAS,kBAAamB,EAAMiB,QAAU,kBAAoB,IAAMC,MAAM,6BAA6BC,OAAO,aAAaC,QAAQ,eAAeC,MAAM,OAAOC,oBAAoB,OAAM,UACtL,iBACIC,EAAE,0JAIlB,CAEe,SAAS3C,EAAQoB,GAC5B,IAAMT,EAAOS,EAAMT,MAAQ,YAC3B,OACI,qBAASV,UAAS,0BAAqBU,EAAI,YAAIS,EAAMnB,WAAaK,MAAOc,EAAMd,MAAM,UACvE,YAATK,IAAsB,SAACyB,EAAc,CAACC,SAAS,KAChD,gBAAKpC,UAAU,wBAAuB,UAClC,gBAAKA,UAAS,wBAAmBmB,EAAMwB,kBAAmB,SAAExB,EAAMyB,aAE5D,YAATlC,IAAsB,SAACyB,EAAc,CAACC,SAAS,MAG5D,C,+HCPe,SAASxB,EAAUO,GAC9B,IAAM0B,EAAK,IAAIC,KAAK3B,EAAMN,MAAQkC,MAASC,KAAK,EAAG,OAAOC,UAAUC,WAAY,IAAIJ,MAAOI,UAE3F,GAA0B/D,EAAAA,EAAAA,UAAS0D,GAAM,GAAE,eAApCM,EAAK,KAAEC,EAAQ,KACtB,GAAgCjE,EAAAA,EAAAA,UAAiB0D,GAAG,eAA7CQ,EAAQ,KAAEC,EAAW,KAEpBlC,GAAgBC,EAAAA,EAAAA,MAAhBD,YA2CR,OAbA5B,EAAAA,EAAAA,YAAU,WACN,IAAM+D,EAAWC,aAAY,WACzB,IAAMtD,EAAI,IAAI4C,KAAK3B,EAAMN,MAAQkC,MAASC,KAAK,EAAG,OAAOC,UAAUC,WAAY,IAAIJ,MAAOI,UAC1FI,EAAYpD,GACRA,GAAK,IACLuD,cAAcF,GACdH,GAAS,GACLjC,EAAMuC,SAASvC,EAAMuC,UAEjC,GAAG,KACH,OAAO,kBAAMD,cAAcF,EAAU,CACzC,GAAG,KAGC,iBAAKvD,UAAS,oBAAemD,EAAQ,kBAAoB,GAAE,YAAIhC,EAAMnB,WAAa,IAAK,UAClFmD,GAAShC,EAAMyB,UACdO,GA5CK,SAACQ,GACZ,IAAIjB,EAAIK,IAAAA,SAAgBY,EAAM,gBAC9B,IAAKA,GAAgB,GAARA,IAAcjB,GAAKA,EAAEkB,YAAc,EAAG,MAAO,MAC1D,IAAMhE,EAAwB,GAGxBiE,EAAOC,KAAKC,MAAMrB,EAAEsB,UACtBH,EAAO,GAAGjE,EAAOqE,KAAK,GAAD,OAAIJ,EAAI,YAAezC,EAAXyC,EAAO,EAAgB,iBAAgC,mBAC5FnB,EAAIA,EAAEwB,SAASL,EAAM,QAGrB,IAAMM,EAAQL,KAAKC,MAAMrB,EAAE0B,YACvBD,EAAQ,GAAKvE,EAAOyE,OAAS,IAAGzE,EAAOqE,KAAK,GAAD,OAAIE,EAAK,YAAgB/C,EAAZ+C,EAAQ,EAAgB,kBAAiC,oBACrHzB,EAAIA,EAAEwB,SAASC,EAAO,SAGtB,IAAMG,EAAUR,KAAKC,MAAMrB,EAAE6B,cACzBD,EAAU,GAAK1E,EAAOyE,OAAS,IAAGzE,EAAOqE,KAAK,GAAD,OAAIK,EAAO,YAAkBlD,EAAdkD,EAAU,EAAgB,oBAAmC,sBAC7H5B,EAAIA,EAAEwB,SAASI,EAAS,WAGxB,IAAME,EAAUV,KAAKC,MAAMrB,EAAEkB,aAI7B,OAHIY,EAAU,GAAK5E,EAAOyE,OAAS,IAAGzE,EAAOqE,KAAK,GAAD,OAAIrE,EAAOyE,OAAS,EAAC,UAAMjD,EAAY,iBAAgB,KAAM,IAAE,OAAGoD,EAAO,YAAkBpD,EAAdoD,EAAU,EAAgB,oBAAmC,sBAC3L9B,EAAIA,EAAEwB,SAASM,EAAS,WAEjB5E,EAAO6E,KAAK,KACvB,CAkBmBC,CAAOrB,KAG9B,C","sources":["pages/Home.tsx","partials/Map.tsx","partials/Section.tsx","utils/CountDown.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport superagent from \"superagent\";\r\nimport Section from \"../partials/Section\";\r\nimport CountDown from \"../utils/CountDown\";\r\nimport I18n from \"../utils/I18n\";\r\nimport ReactLoading from \"react-loading\";\r\nimport { Link } from \"react-router-dom\";\r\nimport MapElement, { MapName, Map } from \"../partials/Map\";\r\nimport \"../assets/PuristaMedium.woff\";\r\n\r\nexport default function Home(): React.ReactElement {\r\n const [maplist, setMaplist] = useState>([]);\r\n const [endDate, setEndDate] = useState(null);\r\n\r\n const serverUrl = process.env.REACT_APP_BATTLELOG_URL;\r\n\r\n useEffect(() => {\r\n superagent.get(`${process.env.REACT_APP_API_SERVER}/vote/last/settings`, (error, result) => {\r\n if (!error) setMaplist(result.body.data.result);\r\n });\r\n superagent.get(`${process.env.REACT_APP_API_SERVER}/vote/current/settings`, (error, result) => {\r\n if (!error) setEndDate(result.body.data.endDate);\r\n });\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n {maplist ? <>{maplist ? maplist.map((map, i) => ) : } : }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n

} />\r\n {endDate && (\r\n <>\r\n

\r\n \r\n

\r\n \r\n

\r\n \r\n

\r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import { useState } from \"react\";\r\nimport I18n, { useI18n } from \"../utils/I18n\";\r\n\r\nexport type GamemodeName = \"ConquestLarge0\" | \"ConquestSmall0\";\r\nexport type MapName =\r\n | \"MP_Abandoned\"\r\n | \"MP_Damage\"\r\n | \"MP_Flooded\"\r\n | \"MP_Journey\"\r\n | \"MP_Naval\"\r\n | \"MP_Prison\"\r\n | \"MP_Resort\"\r\n | \"MP_Siege\"\r\n | \"MP_TheDish\"\r\n | \"MP_Tremors\"\r\n | \"XP0_Caspian\"\r\n | \"XP0_Firestorm\"\r\n | \"XP0_Metro\"\r\n | \"XP0_Oman\"\r\n | \"XP1_001\"\r\n | \"XP1_002\"\r\n | \"XP1_003\"\r\n | \"XP1_004\"\r\n | \"XP2_001\"\r\n | \"XP2_002\"\r\n | \"XP2_003\"\r\n | \"XP2_004\"\r\n | \"XP3_MarketPl\"\r\n | \"XP3_Prpganda\"\r\n | \"XP3_UrbanGdn\"\r\n | \"XP3_WtrFront\"\r\n | \"XP4_Arctic\"\r\n | \"XP4_SubBase\"\r\n | \"XP4_Titan\"\r\n | \"XP4_WlkrFtry\"\r\n | \"XP5_Night_01\"\r\n | \"XP6_CMP\"\r\n | \"XP7_Valley\";\r\n\r\nexport enum MapStatus {\r\n ACTIVE = \"map-active\",\r\n DISABLED = \"map-disabled\",\r\n NONE = \"\",\r\n}\r\n\r\nexport class Map {\r\n\r\n public name: MapName;\r\n\r\n constructor(name: MapName) {\r\n this.name = name;\r\n }\r\n\r\n public equals(map: Map): boolean {\r\n return this.name === map.name;\r\n }\r\n\r\n}\r\n\r\nexport default function MapElement(props: { status?: MapStatus; count?: number | null; gamemode?: GamemodeName | null; map: Map, onClick?: (map: Map) => void }): React.ReactElement {\r\n const { getI18nText } = useI18n();\r\n\r\n return (\r\n props.onClick && props.status !== MapStatus.DISABLED && props.onClick(props.map)} onKeyPress={undefined} role={props.onClick && props.status !== MapStatus.DISABLED ? \"button\" : \"group\"} tabIndex={-1}>\r\n {getI18nText(`maps.${props.map.name}`)}\r\n \r\n \r\n \r\n {props.gamemode && (\r\n \r\n \r\n \r\n )}\r\n \r\n {(props.count || props.count === 0) && {props.count}}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nfunction SectionDivider(props: {reverse: boolean; style?: React.CSSProperties;}): React.ReactElement {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function Section(props: { type?: \"primary\"|\"secondary\", children?: React.ReactNode, style?: React.CSSProperties, className?:string, contentClassName?:string}): React.ReactElement {\r\n const type = props.type || \"secondary\";\r\n return (\r\n
\r\n {type !== \"primary\" && }\r\n
\r\n
{props.children}
\r\n
\r\n {type !== \"primary\" && }\r\n
\r\n );\r\n}\r\n","import moment from \"moment\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport I18n, { PropsWithLocation, useI18n } from \"./I18n\";\r\n\r\nexport interface CountDownTexts {\r\n day: string | unknown;\r\n days: string | unknown;\r\n hour: string | unknown;\r\n hours: string | unknown;\r\n minute: string | unknown;\r\n minutes: string | unknown;\r\n second: string | unknown;\r\n seconds: string | unknown;\r\n and: string | unknown;\r\n}\r\n\r\nexport default function CountDown(props: PropsWithLocation & { className?: string; children?: React.ReactNode; date: Date; onEnded?: () => void }): React.ReactElement {\r\n const tl = new Date(props.date || moment().add(-1, \"day\").toDate()).getTime() - new Date().getTime();\r\n\r\n const [ended, setEnded] = useState(tl <= 0);\r\n const [timeLeft, setTimeLeft] = useState(tl);\r\n\r\n const { getI18nText } = useI18n();\r\n\r\n const format = (time: number): string => {\r\n let d = moment.duration(time, \"milliseconds\");\r\n if (!time || time == 0 || !d || d.asSeconds() < 1) return \"...\";\r\n const result: Array = [];\r\n\r\n //Days\r\n const days = Math.floor(d.asDays());\r\n if (days > 0) result.push(`${days} ${days > 1 ? getI18nText(\"countdown.days\") : getI18nText(\"countdown.day\")}`);\r\n d = d.subtract(days, \"days\");\r\n\r\n //Hours\r\n const hours = Math.floor(d.asHours());\r\n if (hours > 0 || result.length > 0) result.push(`${hours} ${hours > 1 ? getI18nText(\"countdown.hours\") : getI18nText(\"countdown.hour\")}`);\r\n d = d.subtract(hours, \"hours\");\r\n\r\n //Minutes\r\n const minutes = Math.floor(d.asMinutes());\r\n if (minutes > 0 || result.length > 0) result.push(`${minutes} ${minutes > 1 ? getI18nText(\"countdown.minutes\") : getI18nText(\"countdown.minute\")}`);\r\n d = d.subtract(minutes, \"minutes\");\r\n\r\n //Seconds\r\n const seconds = Math.floor(d.asSeconds());\r\n if (seconds > 0 || result.length > 0) result.push(`${result.length > 0 ? `${getI18nText(\"countdown.and\")} ` : \"\"}${seconds} ${seconds > 1 ? getI18nText(\"countdown.seconds\") : getI18nText(\"countdown.second\")}`);\r\n d = d.subtract(seconds, \"seconds\");\r\n\r\n return result.join(\", \");\r\n };\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n const t = new Date(props.date || moment().add(-1, \"day\").toDate()).getTime() - new Date().getTime();\r\n setTimeLeft(t);\r\n if (t <= 0) {\r\n clearInterval(interval);\r\n setEnded(true);\r\n if (props.onEnded) props.onEnded();\r\n }\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n return (\r\n
\r\n {ended && props.children}\r\n {!ended && format(timeLeft)}\r\n
\r\n );\r\n}\r\n"],"names":["Home","useState","maplist","setMaplist","endDate","setEndDate","useEffect","superagent","process","error","result","body","data","Section","className","I18n","t","href","target","style","flexBasis","map","i","Map","type","component","CountDown","date","to","MapStatus","name","this","MapElement","props","getI18nText","useI18n","onClick","status","DISABLED","onKeyPress","undefined","role","tabIndex","src","toLowerCase","alt","NONE","gamemode","count","SectionDivider","reverse","xmlns","height","viewBox","width","preserveAspectRatio","d","contentClassName","children","tl","Date","moment","add","toDate","getTime","ended","setEnded","timeLeft","setTimeLeft","interval","setInterval","clearInterval","onEnded","time","asSeconds","days","Math","floor","asDays","push","subtract","hours","asHours","length","minutes","asMinutes","seconds","join","format"],"sourceRoot":""}