{"version":3,"sources":["app/reducers/pokedex.reducer.ts","app/reducers/pokemon.reducer.ts","app/constants/search.constants.ts","app/reducers/search.reducer.ts","app/reducers/index.ts","app/store/index.ts","app/contexts/ThemeContext/index.ts","app/components/Header/index.tsx","app/actions/search.action.ts","app/index.tsx","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx","app/constants/pokedex.constants.ts","app/constants/pokemon.constants.ts","app/components/RouterLink/index.tsx","assets/images/svg.ts","utils/index.ts"],"names":["INITIAL_STATE","pokemonList","url","process","error","loading","pokedexReducer","state","action","type","FETCH_POKEDEX_REQUEST","FETCH_POKEDEX_SUCCESS","payload","data","FETCH_POKEDEX_ERROR","SORT_POKEMONS","pokemon","pokemonReducer","FETCH_POKEMON_REQUEST","FETCH_POKEMON_SUCCESS","FETCH_POKEMON_ERROR","SEARCH_REQUEST","SEARCH_SUCCESS","SEARCH_ERROR","results","searchReducer","rootReducer","combineReducers","pokedex","search","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","ThemeContext","React","createContext","theme","toggleTheme","ResultBox","lazy","Header","themeContext","useContext","dispatch","useDispatch","anchorRef","useRef","useState","query","setQuery","SEARCH_ZINDEX","FixedZIndex","resultsZIndex","CompositeZIndex","useSelector","searching","useCallback","value","Promise","resolve","reject","a","axios","get","response","console","log","status","headers","request","message","config","searchAction","then","res","catch","err","debouncedSearch","debounce","handleChange","length","color","rounding","margin","padding","display","alignItems","borderStyle","RouterLink","to","hoverStyle","accessibilityLabel","dangerouslySetSvgPath","pokeballSVGPath","size","inline","flex","paddingX","ref","id","autoComplete","onChange","placeholder","text","icon","onClick","target","githubSVGPath","isEmpty","zIndex","anchor","current","idealDirection","onDismiss","positionRelativeToAnchor","showCaret","fallback","column","show","HomePage","PokemonPage","PageNotFound","App","setTheme","useEffect","localStorage","getItem","colorScheme","Provider","nextTheme","setItem","minHeight","position","justifyContent","top","left","right","bottom","element","path","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","TagManager","initialize","gtmId","ReactDOM","render","StrictMode","document","getElementById","URL","href","origin","addEventListener","fetch","contentType","indexOf","ready","unregister","reload","checkValidServiceWorker","serviceWorkerRegistration","sendToAnalytics","forwardRef","replace","rest","useHref","handleClick","useLinkClickHandler","event","defaultPrevented","__path","whatsappSVGPath","redditSVGPath","pokemonIDGenerator","idString","substring","metrics","delta","name","dataLayer","web_vitals_metric_id","web_vitals_metric_name","web_vitals_metric_value"],"mappings":"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","file":"static/js/main.c107a19e.chunk.js","sourcesContent":["import { Reducer } from \"redux\"\nimport {\n FETCH_POKEDEX_ERROR,\n FETCH_POKEDEX_REQUEST,\n FETCH_POKEDEX_SUCCESS,\n SORT_POKEMONS,\n} from \"../constants/pokedex.constants\"\nimport { PokedexActionTypes, PokedexState } from \"../types/pokedex.types\"\n\nconst INITIAL_STATE: PokedexState = {\n pokemonList: [],\n url: `${process.env.REACT_APP_BASE_URL}/pokemon?limit=12&offset=0`,\n error: null,\n loading: false,\n}\n\nconst pokedexReducer: Reducer = (\n state = INITIAL_STATE,\n action: PokedexActionTypes\n) => {\n switch (action.type) {\n case FETCH_POKEDEX_REQUEST:\n return {\n ...state,\n pokemonList: [...state.pokemonList],\n loading: true,\n error: null,\n }\n case FETCH_POKEDEX_SUCCESS:\n return {\n ...state,\n pokemonList: [...state.pokemonList, ...action.payload.data],\n url: action.payload.url,\n loading: false,\n error: null,\n }\n case FETCH_POKEDEX_ERROR:\n return {\n ...state,\n pokemonList: [...state.pokemonList],\n error: action.payload,\n loading: false,\n }\n case SORT_POKEMONS:\n return {\n ...state,\n pokemonList: action.payload,\n }\n default:\n return state\n }\n}\n\nexport default pokedexReducer\n","import { Reducer } from \"redux\"\nimport { PokemonActionTypes, PokemonState } from \"../types/pokemon.types\"\nimport {\n FETCH_POKEMON_ERROR,\n FETCH_POKEMON_REQUEST,\n FETCH_POKEMON_SUCCESS,\n} from \"../constants/pokemon.constants\"\n\nconst INITIAL_STATE: PokemonState = {\n pokemon: {},\n error: null,\n loading: false,\n}\n\nconst pokemonReducer: Reducer = (\n state = INITIAL_STATE,\n action: PokemonActionTypes\n) => {\n switch (action.type) {\n case FETCH_POKEMON_REQUEST:\n return {\n ...state,\n pokemon: {},\n loading: true,\n error: null,\n }\n case FETCH_POKEMON_SUCCESS:\n return {\n ...state,\n pokemon: action.payload,\n loading: false,\n error: null,\n }\n case FETCH_POKEMON_ERROR:\n return {\n ...state,\n pokemon: {},\n error: action.payload,\n loading: false,\n }\n default:\n return state\n }\n}\n\nexport default pokemonReducer\n","export const SEARCH_REQUEST = \"SEARCH_REQUEST\"\nexport const SEARCH_SUCCESS = \"SEARCH_SUCCESS\"\nexport const SEARCH_ERROR = \"SEARCH_ERROR\"\n","import {\n SEARCH_ERROR,\n SEARCH_REQUEST,\n SEARCH_SUCCESS,\n} from \"../constants/search.constants\"\nimport { SearchActionTypes, SearchState } from \"../types/search.types\"\n\nconst INITIAL_STATE: SearchState = {\n results: [],\n loading: false,\n error: null,\n}\n\nconst searchReducer = (state = INITIAL_STATE, action: SearchActionTypes) => {\n switch (action.type) {\n case SEARCH_REQUEST:\n return {\n ...state,\n results: [],\n loading: true,\n error: null,\n }\n case SEARCH_SUCCESS:\n return {\n ...state,\n loading: false,\n results: action.payload,\n }\n case SEARCH_ERROR:\n return {\n ...state,\n loading: false,\n results: [],\n error: action.payload,\n }\n default:\n return state\n }\n}\n\nexport default searchReducer\n","import { combineReducers } from \"redux\"\nimport pokedexReducer from \"./pokedex.reducer\"\nimport pokemonReducer from \"./pokemon.reducer\"\nimport searchReducer from \"./search.reducer\"\n\nconst rootReducer = combineReducers({\n pokedex: pokedexReducer,\n pokemon: pokemonReducer,\n search: searchReducer,\n})\n\nexport type RootState = ReturnType\n\nexport default rootReducer\n","import { compose, createStore } from \"redux\"\nimport rootReducer from \"../reducers\"\n\nconst composeEnhancers =\n ((window &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) as typeof compose) ||\n compose\n\nconst store = createStore(rootReducer, composeEnhancers())\n\nexport default store\n","import React from \"react\"\nimport { ColorSchemeProviderProps } from \"gestalt\"\n\ninterface ContextProp {\n theme: ColorSchemeProviderProps[\"colorScheme\"]\n toggleTheme: () => void\n}\n\nconst ThemeContext = React.createContext({\n theme: \"light\",\n toggleTheme: () => {},\n})\n\nexport default ThemeContext\n","import React, {\n lazy,\n Suspense,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\"\nimport {\n Box,\n CompositeZIndex,\n FixedZIndex,\n Icon,\n IconButton,\n Layer,\n Pog,\n Popover,\n SearchField,\n SearchFieldProps,\n Spinner,\n Tooltip,\n} from \"gestalt\"\nimport debounce from \"lodash/debounce\"\nimport isEmpty from \"lodash/isEmpty\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport ThemeContext from \"../../contexts/ThemeContext\"\nimport { githubSVGPath, pokeballSVGPath } from \"../../../assets/images/svg\"\nimport RouterLink from \"../RouterLink\"\nimport { RootState } from \"../../reducers\"\nimport {\n SEARCH_ERROR,\n SEARCH_REQUEST,\n SEARCH_SUCCESS,\n} from \"../../constants/search.constants\"\nimport { searchAction } from \"../../actions/search.action\"\n// Lazy Load\nconst ResultBox = lazy(() => import(\"../ResultBox\"))\n\nconst Header: React.FunctionComponent = () => {\n const themeContext = useContext(ThemeContext)\n const dispatch = useDispatch()\n\n const anchorRef = useRef(null)\n\n const [query, setQuery] = useState(\"\")\n\n const SEARCH_ZINDEX = new FixedZIndex(10)\n const resultsZIndex = new CompositeZIndex([SEARCH_ZINDEX])\n\n const { results, searching } = useSelector((state: RootState) => ({\n results: state.search.results,\n searching: state.search.loading,\n }))\n\n const search = useCallback(\n (value) => {\n dispatch({\n type: SEARCH_REQUEST,\n })\n\n const url = `${process.env.REACT_APP_SEARCH_API}${value}`\n\n searchAction(url)\n .then((res) => {\n dispatch({\n type: SEARCH_SUCCESS,\n payload: res,\n })\n })\n .catch((err) => {\n console.error(SEARCH_ERROR, err)\n\n dispatch({\n type: SEARCH_ERROR,\n payload: \"Oops! Something went wrong. Please try again later.\",\n })\n })\n },\n [dispatch]\n )\n\n const debouncedSearch = debounce(search, 500)\n\n const handleChange: SearchFieldProps[\"onChange\"] = useCallback(\n ({ value }) => {\n setQuery(value)\n\n if (value.length) debouncedSearch(value)\n },\n [debouncedSearch]\n )\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 {!isEmpty(query) && (\n \n setQuery(\"\")}\n positionRelativeToAnchor={false}\n size=\"md\"\n showCaret\n >\n \n \n \n }\n >\n \n \n \n \n )}\n \n )\n}\n\nexport default Header\n","import axios from \"axios\"\nimport get from \"lodash/get\"\n\nexport const searchAction = (url: string) => {\n return new Promise(async (resolve, reject) => {\n try {\n const response = await axios.get(url)\n\n const results = get(response, [\"data\"])\n\n resolve(results)\n } catch (err: any) {\n if (err.response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n console.log(err.response.data)\n console.log(err.response.status)\n console.log(err.response.headers)\n } else if (err.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n console.log(err.request)\n } else {\n // Something happened in setting up the request that triggered an Error\n console.log(\"Error\", err.message)\n }\n console.log(err.config)\n\n reject(err)\n }\n })\n}\n","import React, { lazy, Suspense, useEffect, useState } from \"react\"\nimport { Provider } from \"react-redux\"\nimport { BrowserRouter, Route, Routes } from \"react-router-dom\"\nimport {\n Box,\n Container,\n ColorSchemeProvider,\n ColorSchemeProviderProps,\n Spinner,\n} from \"gestalt\"\nimport store from \"./store\"\nimport ThemeContext from \"./contexts/ThemeContext\"\nimport Header from \"./components/Header\"\n// Pages\nconst HomePage = lazy(() => import(\"./pages/HomePage\"))\nconst PokemonPage = lazy(() => import(\"./pages/PokemonPage\"))\nconst PageNotFound = lazy(() => import(\"./pages/404\"))\n\nconst App: React.FunctionComponent = () => {\n const [theme, setTheme] =\n useState(\"light\")\n\n const toggleTheme = () => {\n const nextTheme = theme === \"light\" ? \"dark\" : \"light\"\n localStorage.setItem(\"colorScheme\", nextTheme)\n setTheme(nextTheme)\n }\n\n useEffect(() => {\n if (typeof window === \"undefined\") return\n\n if (localStorage && localStorage.getItem(\"colorScheme\")) {\n const colorScheme = localStorage.getItem(\"colorScheme\")\n\n // @ts-ignore\n setTheme(colorScheme)\n }\n }, [])\n\n return (\n <>\n \n \n \n \n \n \n
\n \n \n \n }\n >\n \n } path=\"/\" />\n } path=\"/pokemon/:slug\" />\n } />\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://cra.link/PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n // eslint-disable-next-line no-param-reassign\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://cra.link/PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { ReportHandler } from \"web-vitals\";\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport TagManager from \"react-gtm-module\"\nimport \"gestalt/dist/gestalt.css\"\nimport \"./assets/css/styles.css\"\nimport App from \"./app\"\nimport * as serviceWorkerRegistration from \"./serviceWorkerRegistration\"\nimport reportWebVitals from \"./reportWebVitals\"\nimport { sendToAnalytics } from \"./utils\"\n\nconst tagManagerArgs = {\n gtmId: process.env.REACT_APP_GTM_ID || \"\",\n}\n\nTagManager.initialize(tagManagerArgs)\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.register()\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals(sendToAnalytics)\n","export const FETCH_POKEDEX_REQUEST = \"FETCH_POKEDEX_REQUEST\"\nexport const FETCH_POKEDEX_SUCCESS = \"FETCH_POKEDEX_SUCCESS\"\nexport const FETCH_POKEDEX_ERROR = \"FETCH_POKEDEX_ERROR\"\n\nexport const SORT_POKEMONS = \"SORT_POKEMONS\"\n","export const FETCH_POKEMON_REQUEST = \"FETCH_POKEMON_REQUEST\"\nexport const FETCH_POKEMON_SUCCESS = \"FETCH_POKEMON_SUCCESS\"\nexport const FETCH_POKEMON_ERROR = \"FETCH_POKEMON_ERROR\"\n","import React, { ForwardedRef, forwardRef } from \"react\"\nimport { Link } from \"gestalt\"\nimport { useHref, useLinkClickHandler } from \"react-router-dom\"\n\nconst RouterLink: React.FC = forwardRef(\n (\n // @ts-ignore\n { onClick, replace = false, state, target, to, ...rest },\n ref: ForwardedRef\n ) => {\n const href = useHref(to)\n const handleClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n })\n\n return (\n {\n onClick?.(event)\n // @ts-ignore\n if (!event.defaultPrevented) {\n // onClick prevented default\n // @ts-ignore\n handleClick(event)\n }\n }}\n ref={ref}\n target={target}\n />\n )\n }\n)\n\nexport default RouterLink\n","export const pokeballSVGPath = {\n __path:\n \"M4.463 11.691c-.081-.436-.651-.676-1.217-.368l.146.498.23.737.104.335c.423-.272.85-.599.737-1.203zm-.562.67a56.82 56.82 0 0 0-.197-.636l-.059-.203a.54.54 0 0 1 .33.033c.053.026.146.084.166.196.047.25-.037.429-.24.608zm9.108-1.362a.774.774 0 1 0-.963 1.207l1.018-1.153a1.058 1.058 0 0 0-.055-.054zm-.961.812a.5.5 0 0 1 .618-.707zm7.551.225a.375.375 0 0 1 .013.105c-.01.215-.213.382-.454.37-.241-.008-.43-.191-.42-.405.007-.203.187-.362.409-.372a.712.712 0 0 0-.132-.017c-.405-.017-.735.27-.748.626-.017.38.289.692.686.709.406.015.735-.272.75-.651a.625.625 0 0 0-.103-.365m-12.255.436c0 .216-.197.39-.438.39-.242 0-.438-.173-.438-.39 0-.202.173-.368.394-.388a.736.736 0 0 0-.132-.012c-.404 0-.723.3-.723.656 0 .382.32.68.716.68.405 0 .723-.298.723-.68a.605.605 0 0 0-.119-.358c.01.03.017.065.017.102m14.768-2.185l-.18.739-.166-.82-2.218-.487.016 1.233.334.075-.024.223-.01-.007c-.414-.218-.927-.24-1.41-.058-.163.06-.314.143-.45.242l-.335-2.112h-1.475l-.04.244h-1.553l-.177 1.085-.13-.159a1.986 1.986 0 0 0-1.525-.73l1.318-.709-.918-1.37-1.663 1.913.287.35a2.19 2.19 0 0 0-.674.429L9.696 9.104l-.497.953.019-.916-2.226.712.057 1.196.379-.098.056.605c-.433-.193-.954-.19-1.436.014a2.12 2.12 0 0 0-.399.229 1.695 1.695 0 0 0-.077-1.058 1.904 1.904 0 0 0-.817-.9 1.958 1.958 0 0 0-.865-.308c-.77-.135-1.696.003-2.606.392a6.339 6.339 0 0 0-.928.483L0 10.634l.215.363.667 1.127s.204.346.205.345l.361-.177.05-.023 1.658 3.7.16.355.37-.118.896-.288.394-.125-.104-.4-.476-1.829c.137-.101.264-.209.383-.321-.027.219-.013.44.047.652.124.443.416.793.818.986.435.21.965.21 1.456.002.247-.104.467-.257.651-.439l.068.728 1.57-.231-.002-1.407 3.282 1.62v-1.57a3.335 3.335 0 0 0 1.347-.436l-.138.843 1.77.279.097-.637.461.854.283-.545.104.895 2.005.352-.106-.674a1.817 1.817 0 0 0 1.038-.198l-.08.718 1.336.189.01.547 1.39.438L24 10.745zm-7.839.81l.092-.097-.112.69-.289-.262zm-1.177-2.813l.487.661-1.39.689-.097-.146zm-9.202 5.091l.555 2.128-.898.287-1.841-4.112c-.1.053-.284.14-.455.223L.59 10.775c.266-.169.556-.319.865-.45.868-.369 1.697-.48 2.36-.362.233.027.481.095.7.24.298.168.525.406.657.711.32.74-.215 1.807-1.276 2.461zm4.126-.378c-.01.318-.127.634-.321.903a1.797 1.797 0 0 1-.749.605c-.779.33-1.557 0-1.764-.74-.203-.714.266-1.565 1.02-1.89.483-.202.966-.155 1.312.08.213.146.377.364.453.637a1.33 1.33 0 0 1 .049.406zm4.236 1.504l-3.254-1.629.006 1.707-.843.115-.059-.703c.26-.446.355-.972.22-1.454a1.526 1.526 0 0 0-.4-.68l-.121-1.433-.377.098-.017-.362 1.352-.404.083 1.396.997-1.4.974.927-1.362 1.436 1.28.507c.142.27.36.5.634.67.264.163.568.26.889.291v.918zm-1.69-2.36l-.454-.174.423-.41c-.019.188-.01.385.03.584zm3.542.427c-.312.259-.67.427-1.139.54a2.216 2.216 0 0 1-.302.051c-.747.073-1.374-.27-1.612-.826a1.191 1.191 0 0 1-.069-.209c-.11-.468-.016-.887.215-1.215a1.47 1.47 0 0 1 .235-.261 1.87 1.87 0 0 1 .812-.413c.712-.171 1.339.046 1.723.517l-1.355 1.444a.978.978 0 0 0 .345-.033c.323-.079.504-.25.663-.436l.542.486.164.15a3.016 3.016 0 0 1-.222.205zm2.877 1.927l-.294-1.954-.418 1.078-.625-1.348h-.007l-.246 1.56-1.041-.18.146-.87a4.17 4.17 0 0 0 .116-.114l.338-.348-.329-.294.35-2.073h1.05l.262 1.436.294-1.663h.752l.312 2.026c-.396.451-.59 1.06-.456 1.615a1.478 1.478 0 0 0 .865 1.035l.04.263zm2.595-.637a1.64 1.64 0 0 1-.377.2 1.397 1.397 0 0 1-.773.077 1.153 1.153 0 0 1-.448-.19 1.118 1.118 0 0 1-.43-.655c-.08-.336-.007-.696.174-1.012.091-.154.207-.298.344-.423.152-.137.33-.25.527-.325.459-.172.912-.112 1.23.116a1.08 1.08 0 0 1 .422.633c.098.406-.018.838-.274 1.187a1.75 1.75 0 0 1-.395.392zm2.343 1.841l-.77-.229-.066-2.838-.388 2.19-.84-.135.062-.63c.547-.464.838-1.195.679-1.856a1.457 1.457 0 0 0-.434-.744l.071-.743-.317-.085.02-.396 1.448.29.487 2.308.499-2.069 1.1.244z\",\n}\nexport const githubSVGPath = {\n __path:\n \"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\",\n}\n\nexport const facebookSVGPath = {\n __path:\n \"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\",\n}\n\nexport const twitterSVGPath = {\n __path:\n \"M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z\",\n}\n\nexport const whatsappSVGPath = {\n __path:\n \"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\",\n}\n\nexport const redditSVGPath = {\n __path:\n \"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z\",\n}\n","import TagManager from \"react-gtm-module\"\n\n// Pokemon ID Generator\nexport const pokemonIDGenerator = (id: number) => {\n const idString = `${id}`\n\n const filler = \"000\"\n\n return filler.substring(0, filler.length - idString.length) + idString\n}\n\n// Web Vitals Reporting\nexport const sendToAnalytics = (metrics: any) => {\n const { id, delta, name, value } = metrics\n if (typeof window !== \"undefined\") {\n TagManager.dataLayer({\n dataLayer: {\n event: name,\n // Use the metric delta as the event's value parameter.\n value: delta,\n // Everything below is a custom event parameter.\n web_vitals_metric_id: id, // Needed to aggregate events.\n web_vitals_metric_name: name, // Needed to aggregate events.\n web_vitals_metric_value: value, // Optional\n },\n })\n }\n}\n"],"sourceRoot":""}