{"version":3,"sources":["atlanta/web/util/CryptoUtil.ts","atlanta/types/User.ts","atlanta/config/WebConfig.ts","atlanta/web/core/Api.ts","atlanta/web/components/loader/Loader.tsx","atlanta/web/sections/TimeAgoSection.tsx","atlanta/web/components/home/subcomponents/ArticleCats.tsx","atlanta/web/components/home/subcomponents/ArticlesSlider.tsx","atlanta/web/components/home/subcomponents/BigJumbotron.tsx","atlanta/web/components/home/subcomponents/LoginHome.tsx","atlanta/web/components/home/Home.tsx","atlanta/web/hooks/useWindowDimensions.ts","atlanta/web/components/header/subcomponents/HeaderLogin.tsx","atlanta/web/components/header/subcomponents/HeaderNav.tsx","atlanta/web/util/HttpUtil.ts","atlanta/web/util/FigureUtil.ts","atlanta/web/components/header/subcomponents/HeaderUser.tsx","atlanta/web/util/CurrencyUtil.ts","atlanta/web/components/header/Header.tsx","atlanta/web/components/register/Register.tsx","atlanta/web/components/client/Client.tsx","atlanta/web/components/hotel/Hotel.tsx","atlanta/web/components/notfound/NotFound.tsx","atlanta/web/util/InputUtil.ts","atlanta/web/util/AnimateUtil.ts","i18n/Config.ts","atlanta/web/components/articles/subcomponents/ArticleBody.tsx","atlanta/web/components/articles/subcomponents/ArticlesList.tsx","atlanta/web/components/articles/subcomponents/ArticlesNav.tsx","atlanta/web/components/articles/Articles.tsx","atlanta/web/components/gallery/subcomponents/GalleryItem.tsx","atlanta/web/components/gallery/Gallery.tsx","atlanta/web/AtlantaApp.tsx","index.tsx"],"names":["CryptoJSAesEncrypt","passphrase","plain_text","salt","CryptoJS","lib","WordArray","random","iv","key","PBKDF2","hasher","algo","SHA512","keySize","iterations","encrypted","AES","encrypt","data","ciphertext","enc","Base64","stringify","Hex","JSON","btoe","st","Buffer","from","toString","defaultUser","id","HOTEL","API_URL","Api","requestOptions","cookies","importantHeaders","axiosInstance","this","Cookies","requestToken","axios","create","defaults","timeout","headers","common","body","post","forEach","e","cookie","get","localStorage","getItem","AtlantaApp","getInstance","fingerPrint","setItem","url","a","params","startsWith","reloadCookies","result","encode","rq","instance","Loader","props","defaultFormatter","buildFormatter","esStrings","suffix","TimeAgoSection","date","formatter","ArticleCats","cats","articles","boxSize","updateCategory","t","useTranslation","changeCat","useCallback","event","parseInt","target","value","style","float","className","width","onChange","map","item","name","link","to","background","headerImage","time","title","summary","ArticlesSlider","Carousel","val","Item","as","Link","backgroundImage","Caption","BigJumbotron","openRegister","position","left","right","textAlign","Trans","i18nKey","onClick","LoginHome","sendLogin","form","loginUser","marginBottom","borderBottom","paddingBottom","method","onSubmit","type","placeholder","href","Home","user","useState","isLoading","loadingState","setArticles","setCategories","artByCat","setArticlesByCat","category","setCategory","loadArticles","cat","useEffect","getWindowDimensions","window","innerWidth","height","innerHeight","HeaderLogin","_","ref","useRef","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","useWindowDimensions","adjustLogo","current","image","naturalWidth","setAttribute","naturalHeight","alt","src","data-toggle","data-target","HeaderNav","location","useLocation","pathname","currentPath","setCurrentPath","getNavLinkClass","path","indexOf","currentLocation","Navbar","collapseOnSelect","expand","variant","sticky","Toggle","aria-controls","Collapse","Container","Nav","NavDropdown","HttpUtil","obj","numPrefix","tempKey","output_string","Object","keys","isNaN","encodeURIComponent","String","replace","encodeURI","query","httpBuildQuery","push","join","httpBuildQuery2","avatar","look","queryString","AVATAR_IMAGER","HeaderUser","generateWallet","currencies","currency","index","length","borderBottomRightRadius","currencyName","getCurrencyName","amount","marginTop","username","lastOnline","Date","now","size","head_direction","gesture","motto","Header","Register","isOpen","handleClose","sendForm","console","log","getUTCFullYear","years","Array","fill","v","idx","months","apply","i","toLocaleString","month","Modal","show","onHide","dialogClassName","centered","Body","aria-label","aria-hidden","Title","fontSize","autoComplete","required","color","boxShadow","defaultValue","disabled","paddingLeft","paddingRight","border","textDecoration","Client","css","setCss","scripts","setScripts","loadScripts","NitroConfig","configurationUrl","sso","assets","_scripts","script","document","createElement","appendChild","loadCss","cssAssets","_css","rel","head","unloadCss","remove","history","useHistory","goToPreviousPath","goBack","display","zIndex","Hotel","openClient","NotFound","checkInput","input","inputError","element","animationName","Promise","resolve","reject","node","querySelector","undefined","classList","add","handleAnimationEnd","resources","es","translation","i18n","use","initReactI18next","LanguageDetector","init","fallbackLng","lng","fields","0","1","ArticleBody","article","onLike","setOnLike","articleRef","likeType","setLikeType","likes","likeCount","dislikes","disLikeCount","likesCount","setLikesCount","likeEvent","type2","articleId","token","success","like","preventDefault","resizeImages","images","getElementsByTagName","clientWidth","srcWidth","srcHeight","maxWidth","maxHeight","ratio","Math","min","calculateAspectRatioFit","clientHeight","disLike","OverlayTrigger","placement","overlay","Tooltip","dangerouslySetInnerHTML","__html","views","ArticlesList","articleList","setArticleList","categories","lastSearch","setLastSearch","buttonIsDisabled","setButtonIsDisabled","getCategories","getList","str","categoryId","page","cleaned","newArticles","concat","loadMore","elements","currentTarget","namedItem","ArticlesNav","buttonLoadMore","Articles","useParams","setArticle","setLoading","articlesNav","setArticlesNav","navPage","setNavPage","elementsLoad","setElementsLoad","elementsCount","notFound","setNotFound","loadArticle","loadArticleNav","currentArticles","loadMoreArticlesNav","loadArticlesList","scrollIntoView","behavior","GalleryItem","photoData","imagePath","data-id","Gallery","galleryItems","setGalleryItems","loadGallery","gItems","items","scrollPage","documentElement","scrollTop","offsetHeight","AtlantaAppDefaultState","error","registerIsOpen","clientIsOpen","sended","state","setState","FingerprintJS","load","fpPromise","visitorId","reloadUser","catch","setUser","usernameInput","passwordInput","parentNode","postEncode","password","reload","exp","set","atlanta_ssid","expires","atlanta_uid","atlanta_sti","at","banned","banExpires","year","day","swal","fire","text","reason","banReason","expire","banId","icon","exact","Component","rootElement","getElementById","render"],"mappings":"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","file":"static/js/main.699f214f.chunk.js","sourcesContent":["import CryptoJS from 'crypto-js';\n\nexport function CryptoJSAesEncrypt(passphrase, plain_text){\n\n const salt = CryptoJS.lib.WordArray.random(256);\n const iv = CryptoJS.lib.WordArray.random(16);\n \n const key = CryptoJS.PBKDF2(passphrase, salt, { hasher: CryptoJS.algo.SHA512, keySize: 64/8, iterations: 999 });\n\n const encrypted = CryptoJS.AES.encrypt(plain_text, key, {iv: iv});\n\n const data = {\n ciphertext : CryptoJS.enc.Base64.stringify(encrypted.ciphertext),\n salt : CryptoJS.enc.Hex.stringify(salt),\n iv : CryptoJS.enc.Hex.stringify(iv) \n }\n\n return JSON.stringify(data);\n}\n\nexport function btoe(st: string){\n return Buffer.from((st), 'binary').toString('base64')\n}","export type User = {\n id: number;\n username?:string;\n look?:string;\n motto?:string;\n currencies?: UserCurrency[];\n lastOnline?: number;\n lastOnline1?: number;\n}\n\nexport type UserCurrency = {\n amount: number;\n type: number;\n}\n\nexport const defaultUser: User = {\n id: 0,\n}\n/*export const defaultUser: User = {\n id: 1,\n username: \"SergioT\",\n look: \"ha-3272-1191-1408.ch-3001-1191-1184.sh-290-1220.hr-828-37.hd-990000457-1.he-3081-65.cc-61274158-96-1210.lg-50858737-96\",\n last_online: \"\"\n}*/","export const AVATAR_IMAGER: string = 'https://habbo.city/habbo-imaging/avatarimage';\n\n//export const API_URL: string = 'http://localhost:4000/api/v1';\n\n\nexport const WALLET_ICON_URL: string = 'https://assets.atlantaserver.me/assets/wallet/haddoz/';\n\n\nexport const HOTEL = {\n SHORTNAME: \"XKekos\",\n FULLNAME: \"Xkekos Hotel\",\n GALLERY_PATH: \"https://atlantapictures.net/public/purchased/xkekos/\"\n}\nexport const API_URL: string = 'https://haddozws.atlantaserver.me:2096/api/v1';","import CryptoJS from \"crypto-js\";\nimport Cookies from 'universal-cookie';\nimport { API_URL } from \"../../config/WebConfig\";\nimport { btoe, CryptoJSAesEncrypt } from \"../util/CryptoUtil\";\nimport axios, { AxiosInstance } from 'axios';\nimport AtlantaApp from \"../AtlantaApp\";\n\nclass Api {\n private static instance: Api = new Api();\n\n public static getInstance(): Api {\n return Api.instance;\n }\n\n private readonly requestOptions: RequestInit;\n\n private readonly cookies: Cookies;\n\n private readonly importantHeaders = ['ATLANTA_SSID', 'ATLANTA_UID', 'ATLANTA_STI']\n\n private readonly axiosInstance: AxiosInstance;\n\n constructor() {\n this.cookies = new Cookies();\n this.requestToken();\n\n this.requestOptions = {};\n \n this.axiosInstance = axios.create();\n }\n\n private reloadCookies() {\n this.axiosInstance.defaults.timeout = 4000;\n this.axiosInstance.defaults.headers.common = {};\n delete this.requestOptions.body;\n this.axiosInstance.defaults.headers.post['Content-Type'] = 'application/json';\n this.importantHeaders.forEach(e => {\n const cookie = this.cookies.get(e)\n if (!cookie)\n return;\n\n this.axiosInstance.defaults.headers.common[e] = cookie;\n })\n\n this.axiosInstance.defaults.headers.common['ATLANTA_WEB'] = localStorage.getItem('ATLANTA_WEB');\n this.axiosInstance.defaults.headers.common['ATLANTA_FP'] = AtlantaApp.getInstance().fingerPrint;\n }\n\n private requestToken() {\n const cat = localStorage.getItem('ATLANTA_WEB');\n\n if (!cat) {\n const salt = CryptoJS.lib.WordArray.random(40);\n localStorage.setItem('ATLANTA_WEB', salt.toString());\n }\n }\n\n async get(url: string, params: any = {}): Promise {\n\n if (url.startsWith('/')) {\n url = API_URL + url;\n }\n this.reloadCookies();\n\n const result = await this.axiosInstance.get(url, {params});\n\n return result.data;\n /*this.requestOptions.method = 'get';\n\n const req: Response = await fetch(url, this.requestOptions);\n return req.json();*/\n }\n\n async post(url: string, body: any): Promise {\n if (url.startsWith('/')) {\n url = API_URL + url;\n }\n\n this.reloadCookies();\n\n const result = await this.axiosInstance.post(url, JSON.stringify(body))\n return result.data;\n }\n\n async postEncode(url: string, body: any): Promise {\n if (url.startsWith('/')) {\n url = API_URL + url;\n }\n\n this.reloadCookies();\n\n const encode = CryptoJSAesEncrypt(localStorage.getItem('ATLANTA_WEB'), JSON.stringify(body));\n\n const result = await this.axiosInstance.post(url, JSON.stringify({ rq: btoe(encode) }));\n return result.data;\n }\n\n\n\n\n}\nexport default Api;","import React, { FC } from 'react';\nimport './loader.css';\n\n\nexport const Loader: FC<{}> = props => {\n return (\n
\n
\n
\n )\n}","import React, { FC } from \"react\";\nimport TimeAgo from 'react-timeago';\nimport buildFormatter from 'react-timeago/lib/formatters/buildFormatter';\nimport esStrings from 'react-timeago/lib/language-strings/es';\n\n\n\n\nconst defaultFormatter = buildFormatter(esStrings)\ndefaultFormatter.suffix = 'ago';\n\ntype TimeAgoSectionProps = {\n date: number | Date;\n}\n\nconst TimeAgoSection: FC = props => {\n const {\n date\n } = props;\n\n return (\n <>\n \n \n )\n}\n\nexport default TimeAgoSection;","import React, { CSSProperties, useCallback } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { ArticleCategory, ArticleList } from \"../../../../types/Articles\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\n\ntype ArticleCatsProps = {\n cats: ArticleCategory[];\n articles: ArticleList[];\n boxSize: number;\n updateCategory: (catId: number) => void;\n}\n\nconst ArticleCats = (props: ArticleCatsProps) => {\n const {\n cats,\n articles,\n boxSize,\n updateCategory\n } = props;\n\n const {\n t\n } = useTranslation();\n\n const changeCat = useCallback((event: React.ChangeEvent) => {\n updateCategory(parseInt(event.target.value));\n }, [updateCategory]);\n\n const style: CSSProperties = (boxSize === 4 ? {float: 'right'} : {});\n\n return (<>\n
\n
\n \n
\n

{t('pages.home.articles.categories.title')}

\n
\n {\n articles.map(item => (\n \n
\n \n
{item.title}
\n
{item.summary}
\n \n ))\n }\n
\n
\n\n )\n}\n\nexport default ArticleCats;","import React from \"react\";\nimport { Carousel } from \"react-bootstrap\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { ArticleList } from \"../../../../types/Articles\";\n\ntype ArticlesSliderProps = {\n articles: ArticleList[];\n}\n\nconst ArticlesSlider = (props: ArticlesSliderProps): JSX.Element => {\n const {\n articles\n } = props;\n\n const {\n t\n } = useTranslation();\n\n return (<>\n
\n

{t('pages.home.articles.slider_title')}

\n \n {\n articles.map(val => (\n \n\n \n
{val.title}
\n

{val.summary}

\n
\n
\n ))\n }\n
\n
\n )\n}\nexport default ArticlesSlider;","import React, { FC, useCallback } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { HOTEL } from \"../../../../config/WebConfig\";\nimport AtlantaApp from \"../../../AtlantaApp\";\n\nconst BigJumbotron: FC<{}> = props => {\n const {\n t\n } = useTranslation();\n\n const openRegister = useCallback(() => {\n AtlantaApp.getInstance().openRegister();\n }, []);\n return (<>\n
\n

\n

\n \n ¡{{ name: HOTEL.SHORTNAME }} es gratuito!\n \n

\n\n

\n \n {{ name: HOTEL.FULLNAME }} es un juego online donde puedes explorar cuartos, hacer amigos y ganar premios sin pagar nada! ¿Qué estás esperando para ser parte de esta gran comunidad?\n \n

\n
\n
\n
\n )\n}\n\nexport default BigJumbotron;","import React, { useCallback } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport AtlantaApp from '../../../AtlantaApp';\n\nexport const LoginHome = () => {\n const sendLogin = useCallback((form: React.FormEvent) => {\n return AtlantaApp.getInstance().loginUser(form);\n },[]);\n const { t } = useTranslation();\n return (<>\n
\n
\n

{t('login.login_text')}

\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n );\n}","import React, { FC, useCallback, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { ArticleCategory, ArticleList } from \"../../../types/Articles\";\nimport { User } from \"../../../types/User\";\nimport Api from \"../../core/Api\";\nimport { Loader } from \"../loader/Loader\";\nimport ArticleCats from \"./subcomponents/ArticleCats\";\nimport ArticlesSlider from \"./subcomponents/ArticlesSlider\";\nimport BigJumbotron from \"./subcomponents/BigJumbotron\";\nimport { LoginHome } from \"./subcomponents/LoginHome\";\n\ntype HomeProps = {\n user: User,\n}\n\nconst Home: FC = props => {\n\n const {\n user\n } = props;\n\n const {\n t\n } = useTranslation();\n\n const [isLoading, loadingState] = useState(true);\n const [articles, setArticles] = useState([]);\n const [cats, setCategories] = useState([]);\n const [artByCat, setArticlesByCat] = useState([]);\n const [category, setCategory] = useState(0);\n\n const loadArticles = useCallback(async () => {\n\n const articles: {\n \"artByCat\": ArticleList[],\n \"articles\": ArticleList[],\n \"cats\": ArticleCategory[]\n } = await Api.getInstance().get('/articles/home');\n\n setArticles(articles.articles);\n setCategories(articles.cats);\n setArticlesByCat(articles.artByCat);\n\n loadingState(false);\n\n }, [setArticles, loadingState, setCategories, setArticlesByCat])\n\n const updateCategory = useCallback(async (cat: number) => {\n if (cat === category) return;\n\n setCategory(cat);\n\n const articles: ArticleList[] = await Api.getInstance().get('/articles/home/cat', { id: cat });\n\n setArticlesByCat(articles);\n }, [category, setCategory, setArticlesByCat]);\n\n useEffect(() => {\n loadArticles();\n }, [loadArticles]);\n\n if (isLoading) return ();\n\n return (<>\n\n\n {user.id === 0 ?\n \n :\n <>\n
\n {t('pages.home.button_enter')}\n
\n \n }\n
\n \n
\n
\n \n \n
\n\n {user.id === 0 ? : <>}\n\n\n );\n}\n\nexport default Home;","import { useState, useEffect } from 'react';\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}","import React, { FC, useCallback, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport AtlantaApp from '../../../AtlantaApp';\nimport useWindowDimensions from '../../../hooks/useWindowDimensions';\nconst HeaderLogin: FC<{}> = _ => {\n\n const { t } = useTranslation();\n\n const openRegister = useCallback(() => {\n AtlantaApp.getInstance().openRegister();\n }, []);\n const sendLogin = useCallback((form: React.FormEvent) => {\n return AtlantaApp.getInstance().loginUser(form);\n }, []);\n\n const ref = useRef();\n\n const {width} = useWindowDimensions();\n\n const adjustLogo = useCallback(() => {\n if(!ref || !ref.current) return;\n const image = ref.current;\n if(image.naturalWidth === 0) return;\n if((width-20) > image.naturalWidth){\n image.setAttribute('style', `width: ${image.naturalWidth}px; height: ${image.naturalHeight}px`)\n }\n else{\n image.setAttribute('style', `width: 100%; height: 100%`)\n }\n }, [ref, width])\n\n useEffect(() => {\n adjustLogo();\n }, [width, adjustLogo])\n\n return (<>\n
\n \n \"logo\"\n \n
\n
\n
{t('header.text_1')}
{t('header.text_2')}
{t('header.text_3')}
\n \n
\n
\n

{t('login.login_text')}

\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n {t('login.form.forgot_password')}
\n \n \n
\n )\n}\n\nexport default HeaderLogin;","import React ,{ FC, useCallback, useEffect, useState } from \"react\";\nimport { Navbar, Container, Nav, NavDropdown } from \"react-bootstrap\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { User } from \"../../../../types/User\";\nimport AtlantaApp from \"../../../AtlantaApp\";\n\ntype HeaderNavProps = {\n user: User\n}\n\nconst HeaderNav: FC = props => {\n const {\n user\n } = props;\n\n const location = useLocation();\n\n const {\n t\n } = useTranslation();\n\n const [currentPath, setCurrentPath] = useState(location.pathname);\n\n const openRegister = useCallback(() => {\n AtlantaApp.getInstance().openRegister();\n }, []);\n\n const getNavLinkClass = useCallback((path: string) => {\n if (path === \"/\" && currentPath === path)\n return 'active';\n\n return path !== \"/\" && currentPath.indexOf(path) > -1 ? 'active' : '';\n }, [currentPath])\n\n useEffect(() => {\n const currentLocation = location.pathname; \n setCurrentPath(currentPath => (currentPath === currentLocation) ? currentPath: currentLocation);\n }, [location, setCurrentPath])\n\n return (<>\n <>\n \n \n \n \n \n \n\n \n \n \n \n )\n}\n\nexport default HeaderNav;","export default class HttpUtil {\n static httpBuildQuery(\n obj: any,\n numPrefix?: any,\n tempKey?: any,\n ): string {\n let output_string: any = []\n Object.keys(obj).forEach(function (val) {\n let key = val\n numPrefix && !isNaN(+key) && (key = numPrefix + key)\n key = encodeURIComponent(String(key).replace(/[!'()*]/g, encodeURI))\n tempKey && (key = tempKey + \"[\" + key + \"]\")\n\n if (typeof obj[val] === \"object\") {\n let query = HttpUtil.httpBuildQuery(obj[val], null, key)\n output_string.push(query)\n } else {\n let value = encodeURIComponent(\n String(obj[val]).replace(/[!'()*]/g, encodeURI),\n )\n output_string.push(key + \"=\" + value)\n }\n })\n return output_string.join(\"&\")\n }\n\n static httpBuildQuery2(\n obj: any,\n numPrefix?: any,\n tempKey?: any,\n ): string {\n let output_string: any = []\n Object.keys(obj).forEach(function (val) {\n let key = val\n numPrefix && !isNaN(+key) && (key = numPrefix + key)\n key = String(key)\n tempKey && (key = tempKey + \"[\" + key + \"]\")\n\n if (typeof obj[val] === \"object\") {\n let query = HttpUtil.httpBuildQuery2(obj[val], null, key)\n output_string.push(query)\n } else {\n let value = String(obj[val])\n\n output_string.push(key + \"=\" + value)\n }\n })\n return output_string.join(\"&\")\n }\n}","import { AVATAR_IMAGER } from '../../config/WebConfig';\nimport HttpUtil from './HttpUtil';\n\nexport type FigureParams = {\n action?: string | 'std'\n direction?: number | 2\n head_direction?: number | 2\n gesture?: string | 'std'\n size?: string | 'n'\n img_format?: string | 'png'\n frame?: number | 3\n headonly?: boolean | false\n\n}\n\n\nexport function avatar(look: string| undefined, params: (string | FigureParams)): string {\n if(!look){\n return \"\";\n }\n let queryString = \"\";\n if (typeof params === \"string\") {\n queryString += params;\n }\n else {\n queryString += HttpUtil.httpBuildQuery(params);\n }\n return AVATAR_IMAGER + \"?figure=\" + look + \"&\" + queryString;\n}","import { User, UserCurrency } from \"../../../../types/User\";\nimport React, { FC } from 'react';\nimport { getCurrencyName } from \"../../../util/CurrencyUtil\";\nimport { Link } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { WALLET_ICON_URL } from \"../../../../config/WebConfig\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\nimport { avatar } from \"../../../util/FigureUtil\";\n\ntype HeaderUserProps = {\n user: User;\n}\n\nconst HeaderUser: FC = props => {\n const {\n user\n } = props;\n\n const {\n t\n } = useTranslation();\n const generateWallet = user.currencies.map((currency: UserCurrency, index) => {\n const style = (user.currencies.length - 1 === index || index >= 6) ? { borderBottomRightRadius: '4px' } : {};\n const currencyName = getCurrencyName(currency.type);\n if (index === 7) return (<>);\n return (\n
{currency.amount} {t(`header.user.currency.${currencyName}`)}
\n )\n })\n return (<>\n
\n \n \"logo\"\n \n\n {t('header.user.button_enter')}\n
\n
\n
\n
\n
\n
\n
{t('header.user.welcome_title')}
{user.username}!
\n
{t('header.user.last_access')} 0 ? user.lastOnline * 1000 : Date.now()} />
\n
\n
\n
\n
{user.motto} 
\n
\n
\n {generateWallet}\n
\n
\n
\n
\n
\n\n )\n}\n\nexport default HeaderUser;","export function getCurrencyName(type:number){\n /*DUCKETS = 0,\n MAD_MONEY = 3,\n DIAMONDS = 5,\n //DIAMONDS_2 = 105,\n SEA_SHELLS = 101,\n PEANUTS = 102,\n STARS = 103,\n CLOUDS = 104*/\n\n switch(type){\n case -1:\n return 'coins';\n case 0:\n return 'duckets';\n case 3:\n return 'mad_money';\n case 5:\n return 'diamonds';\n case 101:\n return 'sea_shells';\n case 102:\n return 'peanuts';\n case 103:\n return 'stars';\n case 104:\n return 'clouds';\n }\n}","import React, { FC } from \"react\";\nimport { User } from \"../../../types/User\";\nimport HeaderLogin from \"./subcomponents/HeaderLogin\";\nimport HeaderNav from \"./subcomponents/HeaderNav\";\nimport HeaderUser from \"./subcomponents/HeaderUser\";\n\ntype HeaderProps = {\n user: User\n}\n\nconst Header: FC = props => {\n const {\n user\n } = props;\n return (<>\n
\n
\n
\n
\n
\n
{/*1.581 {t('header.online_users')}*/}
\n {user.id === 0 ? : }\n
\n
\n
\n
\n
\n \n )\n}\n\nexport default Header;","import React, { FC, useCallback } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport { useTranslation } from \"react-i18next\";\n\ntype RegisterProps = {\n isOpen: boolean;\n handleClose: () => void;\n}\n\n\n\nexport const Register: FC = props => {\n\n const {\n isOpen,\n handleClose\n } = props;\n\n const {\n t\n } = useTranslation();\n\n const sendForm = useCallback(async (form: React.FormEvent) => {\n //form.preventDefault();\n\n console.log(' send form!!');\n }, []);\n\n const now = (new Date().getUTCFullYear() - 8);\n const years = Array(now - (now - 114)).fill('').map((v, idx) => now - idx);\n\n const months = [...Array.apply(0, Array(12))].map((_, i) => { return (new Date(2009, i, 10)).toLocaleString('default', { month: 'long' }) });\n\n return (<>\n \n \n {t('register.title')}\n
\n
\n \n \n
\n
\n \n \n {t('register.form.fields.email_text')}\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 {t('register.tc.1')} {t('register.tc.2')}.\n\n
\n
\n
);\n}","import React, { FC, useCallback, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'app-root': React.DetailedHTMLProps, HTMLElement>;\n }\n }\n}\n\ntype ClientProps = {\n isOpen: boolean\n}\n\nconst Client: FC = props => {\n\n const {\n isOpen\n } = props;\n\n const [css, setCss] = useState([]);\n const [scripts, setScripts] = useState([]);\n\n const loadScripts = useCallback(() => {\n (window as any).NitroConfig = {\n configurationUrl: 'https://haddoz.net/NitroU/configuration.json',\n sso: \"1279ee710463ba345ad029b61970dfefc11d29bd32e6f0be\"\n };\n\n const assets = ['runtime.js', 'polyfills.js', 'vendor.js', 'main.js'];\n const now = Date.now();\n const _scripts: HTMLScriptElement[] = []\n for (const i in assets) {\n const script = document.createElement('script');\n script.src = \"https://haddoz.net/NitroU/\" + assets[i] + \"?\" + now;\n\n _scripts.push(script);\n document.body.appendChild(script);\n }\n\n setScripts(_scripts);\n }, [])\n\n const loadCss = useCallback(() => {\n const cssAssets = ['styles_atlanta_5.css', 'atlanta_c.css'];\n const now = Date.now();\n const _css: HTMLLinkElement[] = [];\n for (const i in cssAssets) {\n const link = document.createElement('link');\n link.rel = \"stylesheet\";\n link.id = \"nitro-s-\" + i\n link.href = \"https://haddoz.net/NitroU/\" + cssAssets[i] + \"?\" + now;\n document.head.appendChild(link);\n _css.push(link);\n }\n setCss(_css);\n }, [])\n\n const unloadCss = useCallback(() => {\n css.forEach(val => {\n val.remove();\n });\n setCss([]);\n }, [css])\n\n useEffect(() => {\n if (scripts.length === 0) loadScripts();\n if (isOpen && css.length === 0) loadCss();\n\n if (!isOpen && css.length > 0) unloadCss();\n }, [isOpen, scripts, css, loadScripts, loadCss, unloadCss]);\n\n const history = useHistory();\n \n const goToPreviousPath = useCallback(() => {\n history.goBack()\n },[history]);\n\n const style = { display: isOpen ? \"block\" : \"none\" };\n return (<>\n
\n \n \n
\n );\n}\nexport default Client;","import React, { FC, useEffect } from \"react\";\nimport { User } from \"../../../types/User\";\nimport AtlantaApp from \"../../AtlantaApp\";\n\ntype HotelProps = {\n user: User\n}\n\nconst Hotel: FC<{}> = props => {\n\n useEffect(() => {\n AtlantaApp.getInstance().openClient(true);\n\n return () => {\n AtlantaApp.getInstance().openClient(false);\n }\n }, [])\n\n return (<>);\n}\n\n/*class Hotel extends Component{\n \n componentDidMount(){\n AtlantaApp.getInstance().openClient(true);\n }\n\n componentWillUnmount(){\n AtlantaApp.getInstance().openClient(false);\n }\n\n render(){\n\n const {\n user\n } = this.props;\n \n return (<>);\n }\n}*/\nexport default Hotel;","import React from 'react';\nconst NotFound = () => {\n return (<>Página no encontrada)\n}\n\nexport default NotFound;","import { animateCSS } from \"./AnimateUtil\";\n\n\nexport function checkInput(input): boolean {\n return !input || input.value.length === 0;\n}\n\nexport function inputError(input) {\n animateCSS(input, 'shake');\n}\n\nexport function isArticle(url: string): boolean {\n if (!url) {\n return false;\n }\n\n var params = url.split('-');\n\n if (parseInt(params[0]) > 0 && params.length > 1) {\n return true;\n }\n\n return false;\n}\n\nexport function getTranslateValues(element: Element) {\n const style = window.getComputedStyle(element)\n const matrix = style.transform\n\n // No transform property. Simply return 0 values.\n if (matrix === 'none') {\n return {\n x: 0,\n y: 0,\n z: 0\n }\n }\n\n // Can either be 2d or 3d transform\n const matrixType = matrix.includes('3d') ? '3d' : '2d'\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ')\n\n // 2d matrices have 6 values\n // Last 2 values are X and Y.\n // 2d matrices does not have Z value.\n if (matrixType === '2d') {\n return {\n x: parseInt(matrixValues[4]),\n y: parseInt(matrixValues[5]),\n z: parseInt(style.zIndex)\n }\n }\n\n // 3d matrices have 16 values\n // The 13th, 14th, and 15th values are X, Y, and Z\n if (matrixType === '3d') {\n return {\n x: parseInt(matrixValues[12]),\n y: parseInt(matrixValues[13]),\n z: parseInt(matrixValues[14])\n }\n }\n}\n\nexport function calculateAspectRatioFit(srcWidth:number, srcHeight:number, maxWidth:number, maxHeight:number) {\n\n const ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);\n\n return { width: srcWidth*ratio, height: srcHeight*ratio };\n }","\nexport function animateCSS(element: string | Element, animationName: string): Promise < void> {\n return new Promise((resolve, reject) => {\n const node = ((typeof element === 'string') ? document.querySelector(element) : element);\n\n if (typeof node === undefined || node === null) {\n reject('Invalid node');\n return;\n }\n\n\n node.classList.add('animated', animationName)\n\n function handleAnimationEnd() {\n node.classList.remove('animated', animationName)\n node.removeEventListener('animationend', handleAnimationEnd)\n\n resolve();\n }\n\n node.addEventListener('animationend', handleAnimationEnd)\n });\n}","import i18n from 'i18next';\nimport es from './lang/es/translation.json'\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n\nexport const resources = {\n es: {\n translation: es\n }\n} as const;\n\ni18n\n .use(initReactI18next)\n .use(LanguageDetector)\n .init({\n fallbackLng: 'es',\n lng: 'es',\n resources,\n });\n\nexport default i18n","import React, { FC, useCallback, useEffect, useRef, useState } from \"react\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { Article } from \"../../../../types/Articles\";\nimport { User } from \"../../../../types/User\";\nimport Api from \"../../../core/Api\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\nimport { avatar } from \"../../../util/FigureUtil\";\nimport { calculateAspectRatioFit } from \"../../../util/InputUtil\";\n\ntype ArticleBodyProps = {\n article: Article;\n user: User;\n}\n\nconst LIKE_EVENT: number = 0;\nconst DISLIKE_EVENT: number = 1;\n\nconst fields = { 0: \"likes\", 1: \"dislikes\" };\n\nconst ArticleBody: FC = props => {\n const {\n article,\n user\n } = props;\n\n const [onLike, setOnLike] = useState(false);\n const ref = useRef(null);\n const articleRef = useRef(null);\n\n const [likeType, setLikeType] = useState(article.likeType);\n const [likesCount, setLikesCount] = useState<{ likes: number, dislikes: number }>({ likes: article.likeCount, dislikes: article.disLikeCount });\n\n const likeEvent = useCallback(async (type: number, type2: number) => {\n if (onLike || likeType === type || user.id < 1) return;\n setOnLike(true);\n\n const result: { success: boolean } = await Api.getInstance().post(\"/articles/likearticle\", { articleId: article.id, type, token: article.key });\n\n if (result && result.success) {\n if (likeType === type2) {\n likesCount[fields[type2]] = (likesCount[fields[type2]]-1);\n }\n likesCount[fields[type]] = (likesCount[fields[type]]+1);\n\n setLikesCount(likesCount);\n\n setLikeType(type);\n }\n setOnLike(false);\n }, [user, onLike, setOnLike, likeType, setLikesCount, setLikeType, likesCount, article])\n\n const like = useCallback(async (event: React.MouseEvent) => {\n event.preventDefault();\n await likeEvent(LIKE_EVENT, DISLIKE_EVENT);\n }, [likeEvent])\n\n\n const resizeImages = useCallback(() => {\n if (!ref || !ref.current) return;\n const images: HTMLCollectionOf = (document.getElementsByTagName(\"img\"));\n Array.from(images).forEach((item) => {\n if (item.clientWidth > (ref.current.clientWidth - 20)) {\n const t = calculateAspectRatioFit(item.clientWidth, item.clientHeight, ref.current.clientWidth - 20, ref.current.clientHeight);\n item.setAttribute('style', `width:${t.width}px; height:${t.height}px`);\n }\n });\n }, [ref]);\n\n const disLike = useCallback(async (event: React.MouseEvent) => {\n event.preventDefault();\n\n await likeEvent(DISLIKE_EVENT, LIKE_EVENT);\n }, [likeEvent]);\n\n useEffect(() => {\n setLikeType(article.likeType);\n setLikesCount({ likes: article.likeCount, dislikes: article.disLikeCount });\n resizeImages();\n }, [article, setLikeType, setLikesCount, resizeImages])\n\n\n useEffect(() => {\n window.addEventListener('resize', resizeImages);\n\n return () => {\n window.removeEventListener('resize', resizeImages);\n }\n }, [resizeImages])\n\n return (<>\n
\n

{article.title}

\n
\n
\n {article.category.name}\n
\n
\n Publicado por {article.user.username}\n {\" \"}\n\n \n \n \n }\n >\n \n \n\n
\n
\n
\n
\n \n
\n
\n
\n\n )\n}\nexport default ArticleBody;","import React, { FC, useCallback, useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { ArticleCategory, ArticleList } from \"../../../../types/Articles\";\nimport Api from \"../../../core/Api\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\n\n\nconst ArticlesList: FC<{}> = props => {\n\n const [articleList, setArticleList] = useState([]);\n const [categories, setCategories] = useState([]);\n\n const [lastSearch, setLastSearch] = useState<{ str: string, categoryId: number, page: number }>();\n\n const [buttonIsDisabled, setButtonIsDisabled] = useState(false);\n\n const getCategories = useCallback(async () => {\n const cats: ArticleCategory[] = await Api.getInstance().get('/articles/articlescats');\n if (cats) setCategories(cats);\n }, [setCategories]);\n\n const getList = useCallback(async (str: string, categoryId: number, page: number, cleaned: boolean = true) => {\n const newArticles: ArticleList[] = await Api.getInstance().get('/articles/articleslist', { str, categoryId, page });\n\n if (newArticles) {\n\n if (cleaned) setArticleList(newArticles);\n else setArticleList(articles => articles.concat(newArticles));\n\n if (newArticles.length > 8) setButtonIsDisabled(false);\n else setButtonIsDisabled(true);\n }\n\n setLastSearch({\n str, categoryId, page\n })\n }, [setLastSearch, setArticleList, setButtonIsDisabled])\n\n const loadMore = useCallback(async () => {\n await getList(lastSearch.str, lastSearch.categoryId, lastSearch.page + 1, false);\n }, [lastSearch, getList])\n\n const sendForm = useCallback(async (form: React.FormEvent) => {\n form.preventDefault();\n\n const elements: HTMLFormControlsCollection = form.currentTarget.elements;\n const title = (elements.namedItem(\"title\") as HTMLInputElement).value;\n const category = (elements.namedItem(\"category\") as HTMLInputElement).value;\n\n await getList(title, parseInt(category), 0);\n\n }, [getList])\n\n\n\n useEffect(() => {\n getList(\"\", 0, 0);\n getCategories();\n }, [getList, getCategories])\n\n return (<>\n\n
\n
\n

Filtros

\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n {/* START MOBILE FIXER */}\n
\n {/* END MOBILE FIXER */}\n
\n

Notícias

\n
\n {\n articleList.map(val => (\n
\n \n
\n
\n
\n \n
{val.title}
\n
{val.summary}
\n
\n
\n \n
\n ))\n }\n {\n !buttonIsDisabled ? : <>\n }\n\n
\n
\n\n )\n}\n\nexport default ArticlesList;","import React, { FC } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { ArticleList } from \"../../../../types/Articles\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\n\ntype ArticlesNavProps = {\n articles: ArticleList[],\n buttonLoadMore: () => void\n}\n\nconst ArticlesNav: FC = props => {\n\n const {\n articles,\n buttonLoadMore\n } = props;\n return (<>\n
\n

Outras Notícias

\n
\n {\n articles.map(value => (\n \n
\n \n
{value.title}
\n
{value.summary}
\n \n ))\n }\n\n

\n
\n Todas las noticias\n
\n\n )\n}\n\nexport default ArticlesNav;","import React, { FC, useCallback, useEffect, useRef, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { Article, ArticleList } from \"../../../types/Articles\";\nimport { User } from \"../../../types/User\";\nimport Api from \"../../core/Api\";\nimport { Loader } from \"../loader/Loader\";\nimport NotFound from \"../notfound/NotFound\";\nimport ArticleBody from \"./subcomponents/ArticleBody\";\nimport ArticlesList from \"./subcomponents/ArticlesList\";\nimport ArticlesNav from \"./subcomponents/ArticlesNav\";\n\ntype ArticlesProps = {\n user: User;\n}\n\nconst Articles: FC = props => {\n const {\n user\n } = props;\n\n const params = useParams();\n\n const [article, setArticle] = useState
(null);\n const [isLoading, setLoading] = useState(true);\n const [articlesNav, setArticlesNav] = useState([]);\n const [navPage, setNavPage] = useState(1);\n const [currentPath, setCurrentPath] = useState(\"\");\n const [elementsLoad, setElementsLoad] = useState(0);\n\n const elementsCount = params['title'] ? 2 : 1;\n\n const [notFound, setNotFound] = useState(false);\n\n const ref = useRef(null);\n\n\n const loadArticle = useCallback(async () => {\n const article: Article = await Api.getInstance().get(\"/articles/article/\" + params['title']);\n\n if (!article) setNotFound(true);\n\n setArticle(article);\n setElementsLoad(t => (t + 1));\n }, [params, setArticle, setElementsLoad]);\n\n const loadArticleNav = useCallback(async (page: number) => {\n\n const articles: ArticleList[] = await Api.getInstance().get(\"/articles/articlesnav/\" + page);\n\n if (!articles) return;\n\n setArticlesNav(currentArticles => currentArticles.concat(articles));\n setElementsLoad(elementsLoad + 2);\n }, [setArticlesNav, setElementsLoad, elementsLoad]);\n\n const loadMoreArticlesNav = useCallback(async () => {\n await loadArticleNav(navPage);\n setNavPage(navPage + 1);\n }, [loadArticleNav, navPage, setNavPage])\n\n const loadArticlesList = useCallback(() => {\n setElementsLoad(1);\n }, [setElementsLoad]);\n\n useEffect(() => {\n const title = params['title'];\n if (elementsCount === elementsLoad) {\n setLoading(false);\n }\n\n if (currentPath !== title) {\n if (title) {\n if (ref && ref.current)\n ref.current.scrollIntoView({ behavior: 'smooth' });\n\n loadArticle();\n\n if (articlesNav.length === 0) loadArticleNav(0);\n\n }\n else loadArticlesList();\n\n setCurrentPath(title);\n }\n\n }, [params, loadArticle, loadArticleNav, articlesNav, currentPath, elementsCount, elementsLoad, loadArticlesList]);\n\n\n if (notFound) return ()\n\n if (isLoading || (params['title'] && !article)) return ();\n\n return (<>\n
\n {params['title'] ?\n <>\n \n
\n :\n \n }\n
\n )\n}\n\nexport default Articles;","import React, { FC } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { HOTEL } from \"../../../../config/WebConfig\";\nimport { GalleryPhoto } from \"../../../../types/Gallery\";\nimport TimeAgoSection from \"../../../sections/TimeAgoSection\";\nimport { avatar } from \"../../../util/FigureUtil\";\n\ntype GalleryItemProps = {\n photoData: GalleryPhoto;\n}\n\nconst GalleryItem: FC = props => {\n const {\n photoData\n } = props;\n\n const imagePath = HOTEL.GALLERY_PATH + photoData.id + \".png\";\n \n return (<>\n
\n
\n
\n \n \n \n
\n
\n Por {photoData.user.username}\n
\n
\n \n
\n
\n )\n}\n\nexport default GalleryItem;","import React, { FC, useCallback, useEffect, useState } from \"react\";\nimport { GalleryPhoto } from \"../../../types/Gallery\";\nimport Api from \"../../core/Api\";\nimport { Loader } from \"../loader/Loader\";\nimport GalleryItem from \"./subcomponents/GalleryItem\";\n\nconst Gallery: FC<{}> = props => {\n\n const [galleryItems, setGalleryItems] = useState([]);\n const [isLoading, setLoading] = useState(true);\n\n let page = 0;\n\n const loadGallery = useCallback(async () => {\n const gItems: GalleryPhoto[] = await Api.getInstance().get('/gallery/items', { page });\n\n if (gItems) {\n setGalleryItems(items => items.concat(gItems));\n }\n setLoading(false);\n\n page++;\n }, [setGalleryItems, page])\n\n\n\n useEffect(() => {\n loadGallery();\n }, [loadGallery]);\n\n\n const scrollPage = useCallback((_: Event) => {\n if (window.innerHeight + document.documentElement.scrollTop === document.documentElement.offsetHeight) {\n loadGallery();\n }\n }, [loadGallery]);\n\n useEffect(() => {\n window.addEventListener('scroll', scrollPage);\n\n return () => {\n window.removeEventListener('scroll', scrollPage);\n }\n }, [scrollPage]);\n\n if (isLoading) return ()\n\n return (<>\n\n
\n
\n

Galeria

\n
\n {\n galleryItems.map((val, i) => (\n \n ))\n }\n\n
\n
\n
\n\n\n )\n}\n\nexport default Gallery;","\n\nimport React, { Component } from \"react\";\nimport { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom';\nimport { defaultUser, User } from \"../types/User\";\nimport Home from \"./components/home/Home\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport Header from './components/header/Header';\n\nimport Api from './core/Api';\nimport { Register } from './components/register/Register';\nimport Client from './components/client/Client';\nimport Hotel from './components/hotel/Hotel';\nimport NotFound from './components/notfound/NotFound';\nimport { checkInput, inputError } from \"./util/InputUtil\";\nimport Cookies from 'universal-cookie';\n\nimport swal from 'sweetalert2';\nimport i18n from \"../../i18n/Config\";\nimport { Loader } from \"./components/loader/Loader\";\nimport Articles from \"./components/articles/Articles\";\nimport Gallery from \"./components/gallery/Gallery\";\n\nimport FingerprintJS from '@fingerprintjs/fingerprintjs'\n\n\ntype AtlantaAppState = {\n user: User,\n error: string,\n registerIsOpen: boolean,\n clientIsOpen: boolean,\n isLoading: boolean\n}\n\nconst AtlantaAppDefaultState: AtlantaAppState = {\n user: defaultUser,\n error: null,\n registerIsOpen: false,\n clientIsOpen: false,\n isLoading: true\n}\n\nconst cookies = new Cookies();\n\nclass AtlantaApp extends Component<{}, AtlantaAppState>{\n\n private static instance: AtlantaApp;\n\n public static getInstance(): AtlantaApp {\n return AtlantaApp.instance;\n }\n\n private sended: boolean = false;\n\n public fingerPrint: string;\n\n constructor(props: {}) {\n super(props);\n this.state = AtlantaAppDefaultState;\n AtlantaApp.instance = this;\n }\n\n setUser(user: User) {\n this.setState({\n user,\n isLoading: false\n })\n }\n\n async componentDidMount() {\n\n Api.getInstance();\n\n const fpPromise = await FingerprintJS.load();\n\n\n const result = await fpPromise.get();\n this.fingerPrint = result.visitorId;\n\n this.reloadUser().catch(\n e => this.setState({ error: e.toString() })\n )\n\n }\n\n async reloadUser() {\n this.setState({ isLoading: true });\n const user: User = await Api.getInstance().get('/users/me');\n\n if (!user || !user.id) {\n this.setUser(defaultUser);\n return;\n }\n\n\n this.setUser(user);\n }\n\n openRegister() {\n this.setState({\n registerIsOpen: true\n })\n }\n\n openClient(state: boolean) {\n this.setState({\n clientIsOpen: state\n })\n }\n\n async loginUser(form: React.FormEvent) {\n form.preventDefault();\n\n if (this.sended) return;\n\n const elements: HTMLFormControlsCollection = form.currentTarget.elements;\n const usernameInput = (elements.namedItem(\"username\") as HTMLInputElement);\n const passwordInput = (elements.namedItem(\"password\") as HTMLInputElement);\n\n let error = false;\n if (checkInput(usernameInput)) {\n inputError(usernameInput.parentNode);\n error = true;\n }\n\n if (checkInput(passwordInput)) {\n inputError(passwordInput.parentNode);\n error = true;\n }\n\n if (error) return;\n\n this.sended = true;\n const result = await Api.getInstance().postEncode('/users/login', { username: usernameInput.value, password: passwordInput.value });\n\n if (result.reload) {\n await this.reloadUser();\n return;\n }\n\n if (!result.error) {\n const date = new Date((result.exp * 1000));\n cookies.set('ATLANTA_SSID', result.atlanta_ssid, { expires: date });\n cookies.set('ATLANTA_UID', result.atlanta_uid, { expires: date });\n cookies.set('ATLANTA_STI', result.atlanta_sti, { expires: date });\n\n await this.reloadUser();\n }\n else {\n if (result.fields) {\n result.fields.forEach((at: string) => {\n const field = (elements.namedItem(at) as HTMLInputElement);\n inputError(field.parentNode);\n })\n }\n\n if (result.banned) {\n const expires = (new Date(result.banExpires*1000)).toLocaleString('default', { month: 'long', year: 'numeric', day: '2-digit' });\n swal.fire({\n text: i18n.t('login.errors.user_banned', { reason: result.banReason, expire: expires, id: result.banId }),\n icon: \"error\",\n });\n }\n else {\n const error = result.error ?? 'unexpected_error';\n swal.fire({\n text: i18n.t('login.errors.' + error),\n icon: \"error\",\n });\n }\n }\n\n this.sended = false;\n }\n\n render() {\n const { user, error, registerIsOpen, clientIsOpen, isLoading } = this.state;\n\n if (error) {\n return (<>{error});\n }\n\n if (isLoading) return ();\n\n const style = { display: clientIsOpen ? \"none\" : \"block\" }\n\n return (<>\n \n {user.id > 0 ? : <>}\n
\n
\n
\n
\n \n \n \n \n {/*\n \n */}\n \n {user.id === 0 ? : }\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n {user.id === 0 ? { this.setState({ registerIsOpen: false }) }}> : <>}\n
\n
\n
\n
\n );\n }\n}\n\nexport default AtlantaApp;","import 'core-js';\nimport React from 'react';\nimport { render } from 'react-dom';\nimport './index.css';\nimport AtlantaApp from './atlanta/web/AtlantaApp';\n\nimport './i18n/Config';\n\nimport './styles/AtlantaApp.scss';\n\nconst rootElement = document.getElementById(\"AtlantaApp\");\nif(rootElement)\n render(, rootElement);\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\n//reportWebVitals();\n"],"sourceRoot":""}