{"version":3,"sources":["App.js","components/AppBar.js","containers/Layout/Layout.js","context.js","containers/Home/ConfigSelector/ConfigSelector.js","containers/Anuncio/Anuncio.js","helpers.js","variables.js","containers/Carousel/Carousel.js","containers/LoginModal/LoginModal.js","containers/Detalle/Detalle.js","containers/Home/Home.js","routes.js","theme.js","index.js"],"names":["App","props","CssBaseline","renderRoutes","route","routes","adsCount","useStyles","makeStyles","theme","Toolbar","flexGrow","menuButton","marginRight","spacing","Logo","breakpoints","down","width","useSDStyles","list","fullList","link","textDecoration","color","palette","text","primary","SideDrawer","React","useState","open","setOpen","classes","useEffect","isOpen","Fragment","key","Drawer","onClose","className","List","map","elem","index","ListItem","button","ListItemText","variant","href","CustomAppBar","sideDrawerOpen","setSideDrawerOpen","AppBar","position","Root","IconButton","onClick","prevState","edge","aria-label","Box","MenuCenterBox","to","src","alt","loading","LinearProgress","Layout","children","SelectorContext","createContext","SelectorProvider","Provider","ThemeCtx","Consumer","formControl","marginBottom","selectEmpty","marginTop","ButtonWrapper","BtnSubmit","height","Horizontal","display","flexWrap","dropdownStyle","background","withRouter","rubro","setRubro","marcas","setMarcas","modelos","setModelos","marcasOptions","setMarcasOptions","modelosOptions","setModelosOptions","selectorCtx","useContext","inputLabelRubro","useRef","labelRubroWidth","setLabelRubroWidth","fetch","then","res","json","resJson","fillMarcasOptions","filter","marca_id","buckets","modelo","length","catch","error","console","log","mod","find","marca","name","m","id","join","fillModelosOptions","current","offsetWidth","match","params","rubro2","parseInt","modelosParams","jsonRes","forEach","item","marcaAux","bucket","modeloAux","modelo_id","push","collection","optionsAux","type","FormControl","InputLabel","ref","Select","labelId","value","onChange","event","target","labelWidth","MenuProps","paper","MenuItem","Autocomplete","multiple","blurOnSelect","options","getOptionLabel","option","every","getOptionSelected","noOptionsText","renderInput","TextField","label","fullWidth","FormHelperText","sort","a","b","localeCompare","groupBy","disableCloseOnSelect","Button","disabled","history","Card","Link","CardContent","fontFamily","padding","minHeight","fontSize","ItemPrice","fontWeight","lineHeight","alignItems","marginLeft","OldPrice","secondary","SponsorConditionLabel","sponsored","main","borderRadius","justifyContent","maxWidth","overflow","textOverflow","whiteSpace","ConditionLabel","AdTitle","maxHeight","ExtraInfo","NameInAds","formatter","Intl","NumberFormat","Anuncio","content","setContent","CardActionArea","picture","currency","finalPrice","discount","format","price","commercialCondition","Icon","style","verticalAlign","title","year","usage","location","nameInAds","seller","proccessAdInfo","info","data","isSponsored","fPrice","precio","valor","descuento","patrocinado","now","Date","startDate","start_date","endDate","end_date","delete","can_be_activated","condition","usuario","cuenta","condiciones_comerciales_principal","features","account_type","detail","titulo","pictures","variants","jpg","moneda_signo","horas_trabajo","ubicacion","provincia","name_in_ads","apodo","SliderHead","SliderTitle","SliderActionWrapper","flexShrink","nextArrow","top","transform","cursor","border","outline","right","zIndex","prevArrow","left","arrowIcon","CustomNextArrow","styles","currentSlide","slideCount","CustomPrevArrow","ItemCarousel","settings","dots","infinite","speed","slidesToScroll","variableWidth","slidesToShow","items","sldrItems","array","i","j","Math","floor","random","temp","shuffleArray","concat","slice","Typography","Title","action","itemVariant","createSlider","modal","backgroundColor","boxShadow","shadows","textAlign","subtitle","form","margin","fieldWrapper","btnSuccess","iconClose","linearProgress","backdrop","backdropFilter","TransitionsModal","email","setEmail","pass","setPass","sending","setSending","setError","useCookies","ck","emailInputRef","passInputRef","handleChange","focus","Modal","aria-labelledby","aria-describedby","disableBackdropClick","disableEscapeKeyDown","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","root","Fade","in","inputRef","placeholder","ErrorWrapper","method","credentials","body","headers","Headers","respuesta","dl","window","dataLayer","dlObj","user_id","tag","finally","MainContainer","GraphContainer","SlidersWrapper","Slider","GraphWrapper","Graph","Bold","Subtitle","Caption","textTransform","MetricsWrapper","MetricWrapper","Metric","MetricName","ModelResume","Resume","StatsLine","StatsName","StatsValue","DialogCloseBtn","DialogTitle","TitleWrapper","SubtitleWrapper","moreModelsChip","Info","sellNowText","withWidth","setLoading","series","scatter","setScatter","histogram","setHistogram","skeletonCount","setSkeletonCount","loginOpen","themeCtx","useTheme","dialogOpen","setDialogOpen","dialogContent","setDialogContent","handleDialogOpen","dialogData","handleDialogClose","resumeMetricsComponent","setResumeMetricsComponent","c","auxCount","sks","element","Skeleton","animation","modelA","modelB","modSerie","s","stats","percentile25","percentile75","priceAvg","priceMin","priceMax","renderResumeMetrics","scrollTo","G_USER_ID","split","nombresMarcas","nombresModelos","fetchPromises","Promise","resolve","reject","userId","hits","detalle","scatterDataAux","ad","Array","scatterSerie","Object","assign","source","echartsData","total","min","max","histogramSerie","prevScatter","prevHistogram","all","toString","Set","onScatterEvents","param","echarts","h","stop","onHistogramEvents","componentType","seriesName","pageTitle","Container","ConfigWrapper","appear","enter","exit","grid","bottom","containLabel","legend","xAxis","scale","clip","boundaryGap","nameTextStyle","splitLine","lineStyle","axisLabel","toFixed","rotate","isWidthUp","yAxis","objHistogramData","globalMinPrice","globalMaxPrice","globalAdsCount","globalPriceRange","globalIntervalCount","globalIntervalAmplitude","seriesArray","reduce","aggregations","price_stats","ceil","sum","serie","adsInRange","histogramDataAux","intervalMin","intervalMax","intervalMid","modObj","serieName","iamplitude","icount","getHistogramData","modelLegends","clasificadoMarkPoint","dataArray","objAux","clasificadoid","aboveTheMiddle","sAux","barWidth","barGap","itemStyle","opacity","markLine","show","symbol","fields","final_price_in_usd","markPoint","symbolSize","y","interval","getHistogramOption","onEvents","notMerge","opts","lazyUpdate","globalMin","globalMax","dataZoom","yAxisIndex","filterMode","zoomOnMouseWheel","align","sortedSeries","adObjArray","scatterEffectData","effectScatterOpt","scatterDataArray","sInfLimit","dark","getFullYear","areaStyle","z","sSupLimit","splitNumber","getScatterOption","modAux","marAux","mar","size","model","Chip","component","clickable","Dialog","disableTypography","DialogContent","itemSlideCount","DialogActions","MainWrapper","minWidth","CenterWrapper","flexDirection","IllustrationWrapper","alignSelf","order","paddingTop","FormWrapper","path","exact","setAdsCount","showForm","setShowForm","setTimeout","behavior","referenceText","end","duration","separator","decimals","Detalle","themeBlue","createMuiTheme","typography","common","black","white","default","lightGray","light","terceary","contrastText","icon","hint","themeGreen","overrides","MuiPaper","themeSwitchWrapper","float","Main","mainTheme","setMainTheme","themeName","setThemeName","showThemeSelector","tctx","basename","ThemeProvider","FormControlLabel","control","Switch","checked","Routes","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.01f36179.chunk.js","sourcesContent":["import React from 'react';\nimport './App.css';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { renderRoutes } from 'react-router-config';\n\n\nfunction App(props) {\n return ( \n \n { renderRoutes(props.route.routes, { adsCount: \"137.843\" }) } \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Drawer from '@material-ui/core/Drawer';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport List from '@material-ui/core/List';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport Box from '@material-ui/core/Box';\nimport { LinearProgress } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport { Link as MUILink } from '@material-ui/core';\nimport { useEffect } from 'react';\n\nconst useStyles = makeStyles(theme => ({\n Toolbar: {\n flexGrow: 1 \n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n Logo : {\n [theme.breakpoints.down('md')] : {\n width: '180px'\n }\n }\n}));\n\nconst useSDStyles = makeStyles(theme => ({\n list: {\n width: 250,\n },\n fullList: {\n width: 'auto',\n },\n link: {\n textDecoration: 'none !important',\n color: theme.palette.text.primary, \n }\n}));\n\nfunction SideDrawer(props) {\n\n const [open, setOpen] = React.useState(false); \n const classes = useSDStyles();\n\n useEffect(()=> {\n setOpen(props.isOpen || false)\n },[props.isOpen])\n\n return (\n \n setOpen(false)}>\n
\n \n {[['Agroads', 'https://www.agroads.com.ar'], ['Agroads Analytics', 'https://www.agroads.com.ar/analytics/']].map((elem, index) => (\n \n \n \n {elem[0]}\n \n \n \n ))} \n \n
\n
\n
\n )\n}\n\nexport default function CustomAppBar(props){\n const classes = useStyles();\n const [sideDrawerOpen, setSideDrawerOpen] = React.useState(false);\n \n const toggleSideDrawerOpen = () => {\n setSideDrawerOpen(prevState => (prevState) => !prevState)\n }\n\n return (\n \n \n \n \n \n \n \n \"agroads\n \n \n \n \n { props.loading\n ? \n : null\n } \n \n )\n}","import React from 'react';\nimport AppBar from '../../components/AppBar';\n\nexport default function Layout(props) { \n \n return (\n
\n \n { props.children }\n
\n )\n} ","import React from 'react'\n\nexport const SelectorContext = React.createContext()\nexport const SelectorProvider = SelectorContext.Provider\nexport const SelectorConsumer = SelectorContext.Consumer\n\nexport const ThemeCtx = React.createContext({ theme : 'default' });\n","import React from 'react';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport Select from '@material-ui/core/Select';\nimport { makeStyles } from '@material-ui/core';\nimport { withRouter } from 'react-router';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { SelectorContext } from '../../../context';\n\nconst useStyles = makeStyles(theme => ({\n formControl: {\n marginBottom: theme.spacing(2),\n width: '100%',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n ButtonWrapper: { },\n BtnSubmit : {\n width: '100%',\n height: '48px'\n }, \n Horizontal : {\n display: 'flex', \n flexWrap: 'wrap', \n marginBottom: theme.spacing(5), \n '& $formControl': {\n width: '300px',\n marginRight: theme.spacing(2)\n },\n '& $ButtonWrapper' : {\n display: 'flex',\n width: '100%'\n },\n '& $BtnSubmit': { \n width: 'auto' \n }\n },\n dropdownStyle : {\n background: '#fff'\n }\n}));\n\nfunction ConfigSelector(props) {\n const classes = useStyles();\n let [rubro, setRubro] = React.useState('');\n let [marcas, setMarcas] = React.useState([]);\n let [modelos, setModelos] = React.useState([]); \n let [marcasOptions, setMarcasOptions] = React.useState([]);\n let [modelosOptions, setModelosOptions] = React.useState([]); \n const selectorCtx = React.useContext(SelectorContext); \n\n const inputLabelRubro = React.useRef(null); \n \n const [labelRubroWidth, setLabelRubroWidth] = React.useState(0);\n \n React.useEffect(() => {\n if (rubro !== '') {\n fetch(`https://www.agroads.com.ar/precios/api/es.asp?action=consultaMarcas&maquinaria=${rubro}`)\n .then(res => res.json())\n .then(resJson => { \n fillMarcasOptions(resJson.filter(elem => elem.marca_id.buckets[0].modelo.buckets.length > 0), setMarcasOptions, 'marca_id') \n })\n .catch(error => console.log(error))\n }\n else {\n setMarcas([]);\n setMarcasOptions([]);\n setModelos([]);\n }\n \n }, [rubro])\n\n React.useEffect(() => {\n setModelos(modelos.filter(mod => marcas.find(marca => mod.marca === marca.name))); \n if (rubro !== '' && marcas.length > 0) {\n fetch(`https://www.agroads.com.ar/precios/api/es.asp?action=consultaModelos&maquinaria=${rubro}&id_marca=${marcas.map( m => m.id).join(',')}`)\n .then(res => res.json())\n .then(resJson => { \n fillModelosOptions(resJson); \n })\n .catch(error => console.log(error))\n }\n else {\n setModelosOptions([]);\n setModelos([]);\n }\n }, [marcas])\n \n\n React.useEffect(() => {\n setLabelRubroWidth(inputLabelRubro.current.offsetWidth);\n if (selectorCtx.rubro > 0) {\n setRubro(selectorCtx.rubro);\n } \n else {\n if (props.match.params.rubro2) {\n setRubro(props.match.params.rubro2)\n selectorCtx.rubro = parseInt(props.match.params.rubro2)\n }\n }\n if (selectorCtx.marca.length > 0) {\n setMarcas(selectorCtx.marca.map(marca => marca));\n }\n\n if (selectorCtx.modelo.length > 0) {\n setModelos([...selectorCtx.modelo.map(mod => mod)]);\n } else {\n if (props.match.params.rubro2 && props.match.params.modelosParams && props.match.params.modelosParams !== '') {\n fetch(`https://www.agroads.com.ar/precios/api/es.asp?action=dataModelos&maquinaria=${props.match.params.rubro2}&id_modelo=${props.match.params.modelosParams}`)\n .then(res => res.json())\n .then(jsonRes => {\n let marcas = [], modelos = []\n jsonRes.forEach(item => {\n let marcaAux = { id: item.marca_id.buckets[0].key, name: item.key }\n item.marca_id.buckets[0].modelo.buckets.forEach(bucket => {\n let modeloAux = { marca: item.key, id: bucket.modelo_id.buckets[0].key, name: bucket.key }\n modelos.push(modeloAux);\n })\n marcas.push(marcaAux)\n }); \n selectorCtx.marca = [...marcas]\n selectorCtx.modelo = [...modelos] \n \n setModelos(modelos.map(mod => mod)); \n setMarcas(marcas.map(m => m)) \n }) \n }\n }\n }, []);\n\n const handleChangeRubro = (event) => {\n setRubro(event.target.value); \n selectorCtx.rubro = event.target.value; \n setMarcas([]);\n setModelos([]);\n };\n const handleChangeMarca = (event, value) => { \n if (value.length <=3) {\n setMarcas(value.map(marca => marca));\n selectorCtx.marca = [...value.map(marca => marca)]; \n \n // sacar modelos que no esten en array value\n if (selectorCtx.modelo && selectorCtx.modelo.length > 0)\n {\n selectorCtx.modelo = selectorCtx.modelo.filter(mod => value.every(marca => marca.name === mod.marca))\n }\n }\n };\n const handleChangeModelo = (event, value) => { \n if (value.length <= 3) { \n setModelos(value.map(modelo => modelo));\n selectorCtx.modelo = [...value.map(modelo => modelo)];\n } \n }; \n\n const handleSubmit = event => { \n props.history.push(`/r/${rubro}/modelos/${modelos.map(m => m.id).join(',')}/`)\n }\n\n const fillMarcasOptions = (collection) => { \n let optionsAux = collection.map(elem => { \n return { id: elem.marca_id.buckets[0].key, name: elem.key} \n })\n setMarcasOptions(optionsAux);\n }\n\n const fillModelosOptions = (collection) => { \n let optionsAux = []\n collection.forEach(elem => {\n elem.modelo.buckets.forEach(bucket => {\n optionsAux.push({ marca: elem.key, id: bucket.modelo_id.buckets[0].key, name: bucket.key })\n });\n }); \n setModelosOptions(optionsAux);\n selectorCtx.modelosOptions = [...optionsAux]; \n }\n\n return (\n
\n \n \n Seleccioná el rubro principal\n \n \n \n No seleccionado\n \n Tractores\n Cosechadoras\n Sembradoras\n Pulverizadoras\n \n \n \n option.name}\n onChange={handleChangeMarca} \n getOptionSelected={(option, value) => {\n return option.id === value.id\n }}\n classes={{ paper: classes.dropdownStyle }}\n noOptionsText=\"Sin opciones\"\n value={marcas} \n renderInput={params => (\n \n )}\n />\n {marcas.length === 0 || marcas.length === 3 ?\n Hasta 3 marcas como máximo\n : null} \n \n \n -b.marca.localeCompare(a.marca))}\n groupBy={option => option.marca}\n getOptionLabel={option => option.name} \n getOptionSelected={(option, value) => { \n return option.id === value.id\n }}\n classes={{ paper: classes.dropdownStyle }}\n noOptionsText=\"Sin opciones\"\n value={modelos}\n onChange={handleChangeModelo} \n disableCloseOnSelect \n renderInput={params => (\n \n )}\n />\n { modelos.length === 0 || modelos.length === 3 ? \n Hasta 3 modelos como máximo\n : null }\n \n\n \n
\n \n
\n
\n )\n}\n\nexport default withRouter(ConfigSelector);\n","import React, { useState, useEffect } from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardContent from '@material-ui/core/CardContent';\nimport Icon from '@material-ui/core/Icon';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme=> ({\n Card: { \n width: '225px',\n }, \n Link : {\n textDecoration: 'none',\n color: 'initial'\n },\n CardContent: {\n fontFamily: 'Roboto',\n padding: '5px 15px',\n minHeight: '190px',\n fontSize: '15px' \n },\n ItemPrice: {\n fontWeight: '400', \n fontSize: '21px', \n lineHeight: '1.3',\n marginTop: theme.spacing(0.5),\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n '& span' : {\n color: '#3483fa', fontSize: '14px', marginLeft: theme.spacing(1), fontWeight: '500'\n }\n },\n OldPrice: {\n fontWeight: '300', \n fontSize: '14px', \n color: theme.palette.text.secondary, \n textDecoration: 'line-through',\n marginTop: theme.spacing(0.3),\n },\n SponsorConditionLabel: {\n background: theme.palette.sponsored.main,\n borderRadius: '3px',\n display: 'inline-block',\n color: '#fff',\n fontSize: '13px',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1px 8px 1px 5px',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n marginTop: theme.spacing(.5)\n },\n ConditionLabel: {\n fontWeight: 300,\n fontSize: '13px',\n color: theme.palette.sponsored.main,\n marginTop: theme.spacing(.5)\n },\n AdTitle: { \n display: 'flex', \n flexWrap: 'wrap', \n fontSize: '14px',\n color: theme.palette.text.secondary, \n fontWeight: '400', \n marginTop: theme.spacing(1),\n lineHeight: 1.4,\n maxHeight: '40px',\n overflow: 'hidden'\n },\n ExtraInfo: {\n fontSize: '13px', \n fontWeight: '300', \n marginTop: theme.spacing(0.8), \n color: theme.palette.text.secondary\n },\n NameInAds: {\n fontWeight: '300', fontSize: '12px', color: theme.palette.text.secondary, marginTop: theme.spacing(0.4), \n '& span' : {\n color: '#757575',\n fontWeight: '500'\n }\n }\n}))\n\nconst formatter = new Intl.NumberFormat('es-AR');\n\nexport default function Anuncio(props) {\n const classes = useStyles(); \n const [content, setContent] = useState(null)\n\n useEffect(()=> {\n if (props.content) \n setContent(props.content) \n }, [content])\n\n return content \n ? (\n \n \n \n \n \n \n
\n {content.currency} {content.finalPrice} \n {content.discount > 0 ? `${content.discount}% OFF` : null}\n
\n {content.discount > 0\n ?
{content.currency} {formatter.format(content.price)}
\n : null\n }\n {content.commercialCondition !== ''\n ? content.sponsored\n ?
access_time {content.commercialCondition}
\n :
{content.commercialCondition}
\n : null\n }\n
{content.title}
\n
{content.year ? content.year + ' - ' : null}{content.usage ? content.usage + ' hs - ' : null}{content.location ? content.location : null}
\n {\n content.nameInAds === 1\n ?
por {content.seller}
\n : null\n } \n
\n
\n
\n )\n : null//skeleton \n}","import { STATIC_HOST } from './variables';\n\nexport const formatter = new Intl.NumberFormat('es-AR');\n\nexport const shuffleArray = array => {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i)\n const temp = array[i]\n array[i] = array[j]\n array[j] = temp\n }\n return array;\n}\n\nexport const proccessAdInfo = info => {\n let data = info[\"_source\"];\n let commercialCondition = '';\n let isSponsored = false;\n let fPrice = data.precio.valor;\n if (data.descuento > 0) {\n fPrice = fPrice * (100 - data.descuento) / 100\n }\n if (data.patrocinado) {\n let now = new Date();\n let startDate = new Date(data.patrocinado.start_date + 'T00:00:00')\n let endDate = new Date(data.patrocinado.end_date + 'T00:00:00')\n if (!data.patrocinado.delete && data.patrocinado.can_be_activated && now > startDate && now < endDate) {\n commercialCondition = data.patrocinado.condition\n isSponsored = true\n }\n }\n\n if (!isSponsored && data.usuario.cuenta) {\n if (data.condiciones_comerciales_principal && (data.usuario.cuenta.features.account_type === 3 || data.usuario.cuenta.features.account_type === 4)) {\n commercialCondition = data.condiciones_comerciales_principal.detail;\n }\n }\n\n return {\n id: info[\"_id\"],\n title: data.titulo,\n picture: data.pictures ? STATIC_HOST + data.pictures[0].variants[225].jpg : 'https://static.aastatic.com.ar/img/no-fotos-225x180.png',\n price: data.precio.valor,\n discount: data.descuento,\n finalPrice: formatter.format(fPrice),\n currency: data.precio.moneda_signo,\n year: data[\"año\"],\n usage: data.horas_trabajo,\n location: data.ubicacion.provincia,\n nameInAds: data.name_in_ads,\n seller: data.usuario.apodo,\n sponsored: isSponsored,\n commercialCondition: commercialCondition\n }\n}","export const STATIC_HOST = 'https://static2.aastatic.com.ar/';","import React from 'react';\nimport Slider from \"react-slick\";\nimport Box from '@material-ui/core/Box';\nimport Icon from '@material-ui/core/Icon';\nimport IconButton from '@material-ui/core/IconButton';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport Anuncio from '../Anuncio/Anuncio';\nimport { proccessAdInfo, shuffleArray } from '../../helpers';\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport \"./Carousel.css\"\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n SliderHead: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2.5)\n },\n SliderTitle: {\n fontWeight: 500,\n display: 'block',\n width: '100%',\n marginBottom: theme.spacing(2) \n },\n SliderActionWrapper : {\n flexShrink: 0\n },\n nextArrow: {\n fontSize: \"0\",\n lineHeight: \"0\",\n position: \"absolute\",\n top: \"50%\",\n display: \"block\",\n width: \"40px\",\n height: \"40px\",\n padding: \"0\",\n transform: \"translate(0, -50%)\",\n cursor: \"pointer\",\n color: \"#0000008a\",\n border: \"none\",\n outline: \"none\",\n background: \"#fff8f8a1\",\n right: \"-20px\",\n zIndex: \"2\",\n borderRadius: \"100%\",\n '&:hover': {\n background: \"#fff\"\n }\n },\n\n prevArrow: {\n fontSize: \"0\",\n lineHeight: \"0\",\n position: \"absolute\",\n top: \"50%\",\n display: \"block\",\n width: \"40px\",\n height: \"40px\",\n padding: \"0\",\n transform: \"translate(0, -50%)\",\n cursor: \"pointer\",\n color: \"#0000008a\",\n border: \"none\",\n outline: \"none\",\n background: \"#fff8f8a1\",\n left: \"-20px\",\n zIndex: \"2\",\n borderRadius: \"100%\",\n '&:hover':\n { background: \"#fff\" }\n },\n arrowIcon: {\n fontSize: '40px'\n }\n}))\n\nconst CustomNextArrow = (props) => {\n const styles = useStyles();\n const { onClick } = props;\n return ( \n \n navigate_next\n \n );\n}\n\nconst CustomPrevArrow = (props) => {\n const styles = useStyles();\n const { onClick } = props; \n return ( \n \n navigate_before\n \n );\n}\n\nexport default function ItemCarousel(props) { \n const classes = useStyles();\n const settings = {\n dots: false,\n infinite: false,\n speed: 500, \n slidesToScroll: 1, \n variableWidth: true,\n slidesToShow: 1,\n nextArrow: ,\n prevArrow: \n };\n \n const createSlider = items => {\n let sldrItems = shuffleArray(items.concat())\n if (items.length > 12)\n sldrItems = sldrItems.slice(0,12);\n\n return ( \n \n { props.title \n ? \n {props.title} \n { props.action && props.action.link && props.action.text\n ?
\n \n
\n : null\n }\n
\n : null \n }\n \n { sldrItems.map((item, index) => { \n return (\n \n )\n })\n } \n \n
\n ) \n } \n\n const sldr = props.items && props.items.length > 0 ? createSlider(props.items) : null;\n\n return sldr;\n}","import React, { useEffect, useRef } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport Backdrop from '@material-ui/core/Backdrop';\nimport Fade from '@material-ui/core/Fade';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { Button, TextField, Link, FormHelperText } from '@material-ui/core';\nimport { useCookies } from 'react-cookie';\n\n\nconst useStyles = makeStyles(theme => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center' \n },\n paper: {\n backgroundColor: theme.palette.background.paper,\n outline: 0, \n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n textAlign: 'center',\n width: '500px',\n position: 'relative'\n },\n title: {\n fontWeight: 300,\n fontSize: '24px',\n textAlign: 'center',\n marginTop: theme.spacing(9),\n marginBottom: theme.spacing(.5) \n },\n subtitle: {\n marginBottom: '36px',\n marginTop: '5px',\n color: '#757575',\n fontWeight: 100\n },\n form : {\n width: '340px',\n margin: '0 auto',\n '& *' : {\n width: '100%'\n },\n '& $fieldWrapper' : {\n margin: 0\n }\n },\n fieldWrapper: {},\n link: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& a' : { cursor: 'pointer'}\n },\n btnSuccess : {\n height: '48px'\n },\n iconClose: {\n position: 'absolute',\n top: theme.spacing(3),\n right: theme.spacing(3)\n },\n linearProgress: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n },\n backdrop: {\n backdropFilter: 'blur(5px)'\n }\n}));\n\nexport default function TransitionsModal(props) {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false); \n const [email, setEmail] = React.useState('');\n const [pass, setPass] = React.useState('');\n const [sending, setSending] = React.useState(false); \n const [error, setError] = React.useState(false); \n const [ck, setCk] = useCookies([]);\n\n let emailInputRef = useRef(null);\n let passInputRef = useRef(null);\n\n \n const handleChange = event => { \n if (error)\n setError(false); \n\n if (event.target.name === 'email')\n setEmail(event.target.value)\n if (event.target.name === 'pass')\n setPass(event.target.value)\n } \n\n const handleClose = () => {\n setOpen(false);\n };\n\n const sendForm = () => { \n\n if (email !== '' && pass!== '' && !sending) {\n setSending(true);\n fetch('https://www.agroads.com.ar/miembros/login_valida.asp', {\n method: 'POST',\n credentials: 'same-origin',\n body: `login-email=${email}&login-pass=${pass}&get_data=y`, \n headers: new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n })\n })\n .then(res => res.json())\n .then(res => { \n if (res.respuesta) {\n setOpen(false);\n let dl = window.dataLayer;\n let dlObj = {\n 'ruta': '/login/exito',\n 'titulo': 'AgroadsPrecios-Miembros-Acceso-Exito',\n 'userId': res.user_id,\n 'categoriaPagina': 'LoginExitoso',\n 'usuarioTipo': res.tag,\n 'usuarioUbicacion': res.ubicacion,\n 'event': 'pvvLoginExito'\n }\n dl.push(dlObj);\n }\n else {\n setError(true)\n }\n })\n .catch(error => {\n setError(true)\n })\n .finally(()=> setSending(false))\n }\n }\n\n useEffect(() => {\n if (ck.usuario && ck.usuario !== '') {\n setEmail(ck.usuario) \n }\n }, []);\n\n useEffect(() => { \n if (email === '' && emailInputRef.current) {\n emailInputRef.current.focus();\n } else {\n if (pass === '' && passInputRef.current) {\n passInputRef.current.focus();\n }\n }\n }, [emailInputRef.current, passInputRef.current]);\n\n useEffect(() => { \n setOpen(props.isOpen); \n },[props.isOpen]);\n \n\n return ( \n \n \n
\n { sending ? : null }\n

Ingresar a Agroads

\n

Compará precios de 120.000 equipos

\n
\n
\n \n
\n
\n \n
\n {error ? Los datos ingresados son incorrectos. : null }\n
\n
\n Recordar contraseña\n
\n \n
\n ¿No estás registrado? Registrate ahora!\n
\n
\n
\n
\n \n );\n}\n\n","import React, { useEffect } from 'react';\nimport Layout from '../Layout/Layout';\nimport Box from '@material-ui/core/Box';\nimport Icon from '@material-ui/core/Icon';\nimport Card from '@material-ui/core/Card';\nimport Chip from '@material-ui/core/Chip';\nimport FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Container from '@material-ui/core/Container';\nimport { makeStyles, Typography, Fade } from '@material-ui/core';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport withWidth, { isWidthUp } from '@material-ui/core/withWidth';\nimport ConfigSelector from '../Home/ConfigSelector/ConfigSelector';\nimport Anuncio from '../Anuncio/Anuncio';\nimport Carousel from '../Carousel/Carousel';\nimport { proccessAdInfo, formatter } from '../../helpers';\nimport { useTheme } from '@material-ui/core/styles';\nimport { SelectorContext, ThemeCtx } from '../../context';\nimport LoginModal from '../LoginModal/LoginModal';\nimport { MetaTags } from 'react-meta-tags';\n\nimport ReactEchartsCore from 'echarts-for-react/lib/core';\nimport echarts from 'echarts/lib/echarts';\nimport 'echarts/lib/chart/scatter';\nimport 'echarts/lib/chart/line';\nimport 'echarts/lib/chart/bar';\nimport 'echarts/lib/chart/effectScatter';\nimport 'echarts/lib/component/title';\nimport 'echarts/lib/component/tooltip';\nimport 'echarts/lib/component/markLine';\nimport 'echarts/lib/component/markPoint';\nimport 'echarts/lib/component/dataZoom';\nimport 'echarts/lib/component/legend';\n\n\nconst useStyles = makeStyles(theme => ({\n MainContainer : {\n marginTop: theme.spacing(4)\n },\n GraphContainer: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n flexWrap: 'wrap'\n },\n SlidersWrapper: { \n padding: '20px', \n [theme.breakpoints.down('md')]: {\n width: '100%'\n }\n },\n Slider: {\n marginBottom: theme.spacing(10)\n },\n GraphWrapper : {\n width: '100%',\n padding: '20px',\n marginBottom: theme.spacing(10),\n [theme.breakpoints.down('md')] : {\n width: '100%'\n }\n },\n Graph: {\n height: '500px',\n // minWidth: '600px',\n // [theme.breakpoints.down('md')]: {\n // overflowX: 'scroll' \n // }\n }, \n Title: {\n fontWeight: 500, \n display: 'block',\n width: '100%', \n marginBottom: theme.spacing(2) \n }, \n\n Bold : {\n fontWeight: '500'\n },\n\n Subtitle: {\n fontWeight: 300,\n display: 'block',\n width: '100%',\n '& span' : {\n display: 'inline-flex', \n },\n fontSize: '1rem',\n marginBottom: theme.spacing(2),\n },\n \n Caption: { \n fontWeight: 100,\n marginBottom: theme.spacing(1),\n color: theme.palette.text.secondary,\n fontSize: '12px',\n textTransform: 'uppercase',\n display: 'flex',\n alignItems: 'center'\n },\n MetricsWrapper: {\n marginRight: '15px', \n width: '100%',\n display: 'flex',\n flexWrap: 'wrap', \n marginTop: theme.spacing(1)\n },\n MetricWrapper: {\n width: '300px',\n padding: theme.spacing(2),\n marginBottom: theme.spacing(1),\n marginRight: theme.spacing(1.3)\n },\n Metric: {\n fontSize: '20px',\n fontWeight: '500' \n },\n MetricName: {\n fontWeight: '300',\n fontSize: '0.9rem',\n marginBottom: theme.spacing(.8),\n color: theme.palette.text.secondary, \n },\n ModelResume : {\n marginBottom: theme.spacing(4),\n width: '100%'\n },\n Resume : {\n display: 'flex',\n width: '100%',\n flexWrap: 'wrap' \n },\n StatsLine : {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: theme.spacing(.2), \n },\n StatsName : {\n textTransform: 'uppercase',\n fontSize: '11px',\n color: theme.palette.text.secondary\n },\n StatsValue : {\n fontSize: '14px',\n color: theme.palette.text.primary\n },\n DialogCloseBtn : {\n position: 'absolute',\n right: '10px',\n top: '10px',\n color: '#fff'\n },\n DialogTitle : {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n },\n TitleWrapper: {\n width: '100%' \n },\n SubtitleWrapper : {\n display: 'block'\n },\n moreModelsChip : {\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(1.5)\n },\n Info: { \n marginBottom: theme.spacing(4),\n maxWidth: '600px',\n color: '#9e9e9e'\n },\n sellNowText : {\n fontSize: '22px',\n lineHeight: '26px',\n fontWeight: 100,\n color: theme.palette.text.secondary,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2)\n }\n}))\n\n\nexport default withWidth()(function Detalle(props) {\n const classes = useStyles(); \n const [loading, setLoading] = React.useState(false); \n const [scatter, setScatter] = React.useState({series: []})\n const [histogram, setHistogram] = React.useState({series: []})\n const [skeletonCount, setSkeletonCount] = React.useState(0);\n const [loginOpen, setLoginOpen] = React.useState(false); \n const color = ['primary', 'secondary', 'terceary']\n const selectorCtx = React.useContext(SelectorContext);\n const themeCtx = React.useContext(ThemeCtx)\n const theme = useTheme();\n\n const [dialogOpen, setDialogOpen] = React.useState(false); \n const [dialogContent, setDialogContent] = React.useState(null);\n \n \n function handleDialogOpen(dialogData) {\n setDialogOpen(true);\n setDialogContent({ ...dialogData });\n }\n\n function handleDialogClose() {\n setDialogOpen(false);\n setDialogContent(null)\n }\n\n const getHistogramData = (series) => {\n\n let globalMinPrice, globalMaxPrice, globalAdsCount, globalPriceRange, globalIntervalCount, globalIntervalAmplitude, seriesArray = [];\n \n globalMinPrice = Math.floor(series.reduce((min, s) => s.source.aggregations.price_stats.min < min ? s.source.aggregations.price_stats.min : min, parseInt(series[0].source.aggregations.price_stats.min)));\n \n globalMaxPrice = Math.ceil(series.reduce((max, s) => s.source.aggregations.price_stats.max > max ? s.source.aggregations.price_stats.max : max, parseInt(series[0].source.aggregations.price_stats.max)));\n\n globalAdsCount = series.reduce((sum, s) => sum += s.source.hits.total, 0);\n\n globalPriceRange = globalMaxPrice - globalMinPrice;\n globalIntervalCount = parseInt(Math.ceil(1 + 3.322 * Math.log(globalAdsCount)))\n globalIntervalAmplitude = parseInt(Math.ceil(globalPriceRange / globalIntervalCount).toFixed(0))\n \n series.forEach(serie => { \n \n let histogramDataAux = [];\n let adsInRange;\n \n for (let index = 0; index < globalIntervalCount; index++) {\n \n let intervalMin = globalMinPrice + globalIntervalAmplitude * index;\n let intervalMax = intervalMin + globalIntervalAmplitude;\n let intervalMid = intervalMin + parseInt(Math.ceil((intervalMax - intervalMin) / 2))\n \n // if last, increment intervalMax by 1 so values equals to maxPrice are considered\n if (index === globalIntervalCount - 1)\n intervalMax += 1\n \n\n adsInRange = [...serie.source.hits.hits.filter(item => (parseInt(item['fields']['final_price_in_usd']) >= intervalMin && parseInt(item['fields']['final_price_in_usd']) < intervalMax))] \n \n histogramDataAux.push([\n intervalMid,\n adsInRange.length,\n [...adsInRange],\n intervalMin,\n intervalMax \n ]) \n }\n\n let serieName = '', modObj = null;\n modObj = selectorCtx.modelo.length > 0 ? selectorCtx.modelo.find(m => m.id === parseInt(serie.mod)) : null;\n if (modObj)\n serieName = `${modObj.marca} ${modObj.name}`;\n\n seriesArray.push({ data: [...histogramDataAux], color: serie.color, name: serieName})\n });\n \n return { \n min: globalMinPrice,\n max: globalMaxPrice, \n iamplitude: globalIntervalAmplitude,\n icount: globalIntervalCount,\n series: [...seriesArray], \n }\n }\n \n const [resumeMetricsComponent, setResumeMetricsComponent] = React.useState(null)\n \n const renderResumeMetrics = () => {\n let c = null;\n let auxCount = skeletonCount || 1;\n\n if (!loading) {\n c = selectorCtx.modelo.length > 0\n ? selectorCtx.modelo.slice().sort((modelA, modelB) => {\n // sort alphabetically by brand and model\n if (modelA.marca < modelB.marca) return -1;\n if (modelA.marca > modelB.marca) return 1;\n if (modelA.name < modelB.name) return - 1;\n if (modelA.name > modelB.name) return - 1;\n return 0;\n }).map((modelo, index) => {\n let modSerie = scatter.series.find(s => s.mod === modelo.id)\n return (\n \n {modSerie\n ? \n {modelo.marca} {modelo.name}\n \n \n {modSerie\n ? \n \n
Rango frecuente
\n \n {`US$ ${formatter.format(parseInt(modSerie.stats.percentile25))}`} - {`US$ ${formatter.format(parseInt(modSerie.stats.percentile75))}`}\n \n
\n \n
+ Estadísticas
\n \n
PROMEDIO
\n
{`US$ ${formatter.format(modSerie.stats.priceAvg)}`}
\n
\n \n
PRECIO MINIMO
\n
{`US$ ${formatter.format(modSerie.stats.priceMin)}`}
\n
\n \n
PRECIO MAXIMO
\n
{`US$ ${formatter.format(modSerie.stats.priceMax)}`}
\n
\n
\n
\n : null\n }\n
\n
\n : null\n }\n
\n )\n })\n : null \n }\n else {\n let sks = [];\n for (let index = 0; index < auxCount; index++) {\n const element = (\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 sks.push(element);\n \n }\n c = (\n { sks }\n )\n }\n setResumeMetricsComponent(c);\n }\n\n useEffect(()=> { \n renderResumeMetrics(); \n }, [scatter.series, loading])\n \n\n useEffect(() => { \n window.scrollTo(0,0); \n setLoading(true); \n setScatter({series: []})\n setHistogram({series: []})\n\n // enviar GA a analytics. \n \n let rubro2 = props.match.params.rubro2; \n let modelosParams = props.match.params.modelosParams.split(','); \n setSkeletonCount(modelosParams.length); \n let G_USER_ID; \n \n \n let nombresMarcas = [], nombresModelos = [];\n let fetchPromises = [];\n let dl = window.dataLayer;\n\n modelosParams.forEach((mod, index) => { \n fetchPromises.push(new Promise((resolve, reject) => {\n fetch(`https://www.agroads.com.ar/precios/api/es.asp?action=anunciosActivos&maquinaria=${rubro2}&id_modelo=${mod}`)\n .then(res => res.json())\n .then(jsonRes => {\n // calculateSeries \n if (jsonRes.userId != 0)\n { \n G_USER_ID = parseInt(jsonRes.userId);\n }\n \n if (jsonRes.hits && jsonRes.hits.hits && jsonRes.hits.hits.length > 0) { \n nombresMarcas.push(jsonRes.hits.hits[0]['_source'].marca.detalle)\n nombresModelos.push(jsonRes.hits.hits[0]['_source'].modelo.detalle)\n } \n let scatterDataAux = jsonRes.hits.hits.map(ad => { \n return new Array(ad['_source']['año'], ad['fields']['final_price_in_usd'], parseInt(mod), parseInt(ad['_id']))\n }) \n \n let scatterSerie = Object.assign({}, {\n mod: parseInt(mod),\n color: theme.palette[color[index]],\n source: jsonRes, \n echartsData: scatterDataAux.length > 0 ? scatterDataAux : [], \n adsCount: jsonRes.hits.total, \n year: {\n min: jsonRes['aggregations']['year_stats']['min'],\n max: jsonRes['aggregations']['year_stats']['max']\n },\n stats: {\n percentile25: jsonRes['aggregations']['final_price_percentiles']['values']['25.0'],\n percentile75: jsonRes['aggregations']['final_price_percentiles']['values']['75.0'],\n priceAvg: parseInt(jsonRes['aggregations']['price_stats']['avg']),\n priceMin: parseInt(jsonRes['aggregations']['price_stats']['min']),\n priceMax: parseInt(jsonRes['aggregations']['price_stats']['max']), \n }\n }); \n \n let histogramSerie = Object.assign({}, {\n mod: parseInt(mod),\n color: theme.palette[color[index]],\n source: jsonRes \n });\n \n // add new series \n setScatter(prevScatter => ({ series: [...prevScatter.series, scatterSerie] }));\n setHistogram(prevHistogram => ({ series: [...prevHistogram.series, histogramSerie] }));\n resolve()\n })\n .catch(error => reject())\n .finally(() => setLoading(false))\n })) \n }) \n \n Promise.all(fetchPromises).then(()=>{ \n if (process.env.NODE_ENV !== 'development') {\n // only prod \n let rubroMapping = {\n '10': 'Tractores',\n '11': 'Cosechadoras',\n '12': 'Sembradoras',\n '13': 'Pulverizadoras'\n }\n let dlObj = {\n 'ruta': '/AgroadsPrecios/', //junto a event: 'pv', es la ruta que espera el activador para ejecutar la etiqueta de medicion de AgroadsPrecios\n 'titulo': 'Detalle-Precios',\n 'categoriaPagina': `Detalle-Precios/${rubroMapping[rubro2.toString()]}/`,\n 'event': 'pv',\n 'userId': G_USER_ID,\n };\n if (nombresMarcas.length > 0) {\n let setMarcas = [...new Set(nombresMarcas)];\n dlObj.marca = setMarcas.join(',');\n }\n\n if (nombresModelos.length > 0) {\n let setModelos = [...new Set(nombresModelos)];\n dlObj.modelo = setModelos.join(',');\n } \n dl.push(dlObj); \n } \n })\n \n }, [props.match.params]); \n\n\n const getScatterOption = () => {\n let globalMin = 0, globalMax = 0; \n \n let option = { \n grid: {\n top: '20%',\n left: '2%',\n right: '10%',\n bottom: '10%',\n containLabel: true\n },\n legend: {\n data: [],\n left: '0'\n },\n dataZoom: [\n {\n id: 'dataZoomY',\n type: 'slider',\n yAxisIndex: [0],\n filterMode: 'empty',\n zoomOnMouseWheel: true\n } \n ],\n xAxis: {\n name: 'Año',\n type: 'value', \n nameTextStyle: {\n padding: [0, 0, 0, 20],\n fontFamily: 'Roboto',\n fontWeight: '500'\n }, \n axisLabel: {\n formatter: function (value, index) {\n return `${formatter.format(value)}`\n },\n fontFamily: 'Roboto',\n fontSize: '11',\n fontWeight: '400',\n rotate: isWidthUp('sm', props.width) ? 0 : 90\n },\n splitLine: {\n lineStyle: {\n color: '#f0f0f0'\n }\n }\n },\n yAxis: {\n name: 'Precio',\n scale: true,\n nameTextStyle: { \n padding: [0, 0, 20, 0], \n fontFamily: 'Roboto',\n fontWeight: '500',\n align: 'right'\n }, \n axisLabel: {\n formatter: function (value, index) {\n return `U$S ${formatter.format(value)}`\n },\n fontFamily: 'Roboto',\n fontSize: '11',\n fontWeight: '400'\n },\n splitLine: {\n lineStyle: {\n color: '#f0f0f0'\n }\n }\n },\n series: []\n }\n \n // retrieve each scatter serie from state and add to series.\n let sortedSeries = scatter.series.slice().sort((a,b) => {\n if (a.stats.percentile25 < b.stats.percentile25) return 1;\n if (a.stats.percentile25 > b.stats.percentile25) return -1;\n return 0\n }) \n\n let modelLegends = [];\n sortedSeries.forEach(serie => {\n let serieName = '', modObj = null;\n modObj = selectorCtx.modelo.length > 0 ? selectorCtx.modelo.find(m => m.id === parseInt(serie.mod)) : null; \n if (modObj)\n serieName = `${modObj.marca} ${modObj.name}`;\n\n // find out if url ad belongs to this serie, if does, add a markLine and a markPoint.\n\n // serie contains url ad?\n let adObjArray = null, scatterEffectData = [], effectScatterOpt = null;\n adObjArray = serie.echartsData.find(scatterDataArray => scatterDataArray[3] === parseInt(props.match.params.clasificadoid));\n if (adObjArray) {\n scatterEffectData = [...adObjArray];\n effectScatterOpt = {\n type: 'effectScatter',\n name: serieName,\n symbolSize: 18,\n itemStyle: {\n color: serie.color.main\n },\n data: [\n [...scatterEffectData] \n ]\n }\n }\n\n\n let sAux = {\n type: 'scatter',\n name: serieName,\n symbolSize: 18,\n data: serie.echartsData.length > 0 ? [...serie.echartsData] : [],\n itemStyle: {\n color: serie.color.main\n }\n }\n\n let sInfLimit = {\n \n label: {\n show: false,\n formatter: '{a}',\n color: serie.color.dark\n },\n type: 'line',\n data: [\n [0, serie.stats.percentile75], [new Date().getFullYear(), serie.stats.percentile75]\n ],\n lineStyle: {\n color: serie.color.main,\n type: 'dotted'\n },\n areaStyle: {\n color: serie.color.main,\n opacity: 0.15,\n },\n z: -1\n }\n\n let sSupLimit = {\n \n label: {\n show: false,\n formatter: '{a}',\n color: serie.color.dark\n },\n type: 'line',\n data: [\n [0, serie.stats.percentile25], [new Date().getFullYear(), serie.stats.percentile25]\n ],\n lineStyle: {\n color: serie.color.main,\n type: 'dotted'\n },\n areaStyle: {\n color: '#fff',\n opacity: 1,\n },\n z: -1\n }\n\n option.series.push(sInfLimit);\n option.series.push(sSupLimit);\n option.series.push(sAux);\n option.series.push(effectScatterOpt);\n modelLegends.push(serieName);\n \n if (globalMin === 0 || serie.year.min < globalMin)\n globalMin = serie.year.min\n \n if (globalMax === 0 || serie.year.max > globalMax)\n globalMax = serie.year.max\n\n });\n\n\n option.xAxis.min = globalMin - 2;\n option.xAxis.max = globalMax;\n option.xAxis.splitNumber = (globalMax - globalMin) / 2;\n option.legend.data = [...modelLegends.sort()]\n\n return option;\n } \n const getHistogramOption = () => {\n let option = { \n grid: {\n top: '20%',\n left: '2%',\n right: '10%',\n bottom: '10%',\n containLabel: true\n }, \n legend: {\n data: [], \n left: '0'\n },\n xAxis: [{\n name: 'Precio',\n type: 'value',\n scale: true,\n clip: false, \n boundaryGap: false, \n nameTextStyle: {\n padding: [0, 0, 0, 20],\n fontFamily: 'Roboto',\n fontWeight: '500'\n }, \n splitLine: {\n lineStyle: {\n color: '#f0f0f0'\n }\n },\n axisLabel: {\n formatter: function (value, index) {\n return ` U$S ${formatter.format(value.toFixed(0))}`\n },\n fontFamily: 'Roboto',\n fontSize: '11',\n fontWeight: '400',\n rotate: isWidthUp('sm', props.width) ? 345 : 90 \n }, \n }],\n yAxis: [{\n name: 'Cantidad',\n type: 'value',\n nameTextStyle: { \n padding: [0,0,30,0],\n fontFamily: 'Roboto',\n fontWeight: '500'\n }, \n splitLine: {\n lineStyle: {\n color: '#f0f0f0'\n }\n } \n }],\n series: [] \n }\n\n // get histogram data from each serie.source (jsonRes), considering globalValues in case there is more than one serie.\n let objHistogramData = getHistogramData(histogram.series.map(serie => serie));\n let modelLegends = [];\n\n // for each data array (serie), render a bar graph.\n objHistogramData.series.forEach((serie, index) => {\n let clasificadoMarkPoint = null;\n\n // find out if url ad belongs to this serie, if does, add a markLine and a markPoint.\n serie.data.forEach((dataArray, index) => { \n let objAux = dataArray[2].find(elem => parseInt(elem[\"_id\"]) === parseInt(props.match.params.clasificadoid));\n if (objAux)\n clasificadoMarkPoint = {...objAux, aboveTheMiddle : index > (serie.data.length / 2) }\n });\n \n \n let sAux = {\n type: 'bar',\n name: serie.name,\n barWidth: '98%',\n barGap: '-100%', \n data: serie.data.length > 0 ? serie.data : [],\n itemStyle: {\n color: serie.color.main,\n opacity: .9, \n } \n } \n\n if (clasificadoMarkPoint) {\n sAux = {\n ...sAux,\n markLine: {\n label: {\n show: false\n },\n symbol: 'none',\n lineStyle: {\n color: serie.color.main,\n type: 'dotted',\n opacity: 1,\n width: 2,\n },\n data: [\n {\n name: 'Clasificado',\n xAxis: parseInt(clasificadoMarkPoint.fields.final_price_in_usd),\n ad: clasificadoMarkPoint\n },\n ]\n },\n markPoint: {\n symbolSize: '30',\n label: {\n formatter: '{b}',\n position: clasificadoMarkPoint.aboveTheMiddle ? 'left' : 'right'\n },\n itemStyle: {\n color: serie.color.main\n },\n data: [\n {\n name: clasificadoMarkPoint[\"_source\"].titulo,\n xAxis: parseInt(clasificadoMarkPoint.fields.final_price_in_usd), \n y: '20%', // relative to outter container of grid as grid has 20% paddingTop\n ad: clasificadoMarkPoint\n },\n ]\n }\n } \n }\n\n modelLegends.push(serie.name);\n option.series.push(sAux); \n });\n\n\n\n // set axis configuration considering global values if needed.\n \n option.xAxis[0].min = objHistogramData.min;\n option.xAxis[0].max = objHistogramData.max;\n option.xAxis[0].interval = objHistogramData.iamplitude;\n option.legend.data = [...modelLegends.sort()];\n \n return option;\n }\n\n const onScatterClick = (param, echarts) => { \n let srcData = scatter.series.find(s => s.mod === param.data[2]); \n let ad = srcData.source.hits.hits.find(h => parseInt(h[\"_id\"]) === param.data[3]); \n let dialogContent = {\n title : '',\n subtitle : '',\n items: [] \n } \n dialogContent.items.push(ad);\n\n // prevent tap propagation in mobile devices\n param.event.stop();\n handleDialogOpen(dialogContent);\n }\n\n const onHistogramClick = (param, echarts) => { \n let dialogContent = {};\n if (param.componentType === 'markLine' || param.componentType === 'markPoint') {\n dialogContent.title = '';\n dialogContent.subtitle = '';\n dialogContent.items = [param.data.ad]; \n } else {\n dialogContent.title = param.seriesName;\n dialogContent.subtitle = `Entre US$ ${formatter.format(param.data[3])} y US$ ${formatter.format(param.data[4])}`;\n dialogContent.items = [...param.data[2]]\n } \n\n // prevent tap propagation in mobile devices\n param.event.stop();\n handleDialogOpen(dialogContent); \n }\n \n let onScatterEvents = {\n 'click': onScatterClick\n };\n\n let onHistogramEvents = {\n 'click': onHistogramClick\n }; \n \n let pageTitle = \"Precios de referencia\"\n if (selectorCtx.modelo && selectorCtx.modelo.length > 0)\n { \n pageTitle += ' - ' + selectorCtx.modelo.map(mod => `${mod.marca} ${mod.name}`).join(', '); \n }\n return (\n \n \n { pageTitle }\n \n \n \n \n {/* CONFIGURACION */}\n \n \n\n \n { resumeMetricsComponent } \n \n\n \n\n Rango de precios \n \n \n
\n Las estadísticas se obtienen a partir de los precios de la oferta actualmente activa en Agroads. Sin embargo, el valor real de un equipo puede variar dependiendo de su estado y horas de uso entre otros factores.\n
\n
\n
\n \n \n { histogram.series.length > 0\n ? \n : null\n }\n \n \n
\n \n \n Precios por año\n
\n En base a {formatter.format(scatter.series.reduce((sum, current) => sum += current.adsCount, 0))} anuncios\n
\n
\n \n \n { scatter.series.length > 0 \n ? \n : null \n } \n \n \n
\n \n {\n selectorCtx.modelo.length > 0 && scatter.series.length > 0 \n ? scatter.series.map(serie => {\n let title = '';\n let link = '#';\n let modAux = selectorCtx.modelo.find(mod => mod.id === parseInt(serie.mod))\n if (modAux && modAux.marca && modAux.name) {\n title = `${modAux.marca} ${modAux.name}`; \n let marAux = selectorCtx.marca.find(mar => mar.name === modAux.marca);\n if (marAux)\n link = `https://www.agroads.com.ar/seccion.asp?marca=${marAux.id}&subcat=${selectorCtx.rubro}&modelo=${modAux.id}`; \n }\n return (\n
\n \n
\n )\n })\n : null\n }\n
\n\n { selectorCtx && selectorCtx.modelo.length === 1\n ? (\n \n \n Publicá y vendé\n \n
\n ¿Tenés un {`${selectorCtx.modelo[0].marca} ${selectorCtx.modelo[0].name}`} para vender?\n
\n \n
\n )\n : null\n }\n\n { selectorCtx && selectorCtx.modelosOptions.length > 0 && selectorCtx.modelo.length < 3 && (!(selectorCtx.modelosOptions.length === 1 && selectorCtx.modelo[0].id === selectorCtx.modelosOptions[0].id)) \n ? (\n \n \n Agregá otro modelo y compará los precios \n \n {\n selectorCtx.modelosOptions\n .filter(mod => !selectorCtx.modelo.find(m => m.id === mod.id))\n .map(model => < Chip className={classes.moreModelsChip} label={`${model.marca} ${model.name}`} component=\"a\" href={`https://www.agroads.com.ar/precios/r/${props.match.params.rubro2}/modelos/${props.match.params.modelosParams},${model.id}/`} clickable variant=\"outlined\" key={'chip-' + model.id }/> ) \n }\n \n )\n : null\n }\n
\n\n \n \n { dialogContent && dialogContent.title \n ?
{dialogContent.title}
\n : \n offline_bolt\n Vista rápida\n \n }\n { dialogContent && dialogContent.subtitle\n ?\n
\n {dialogContent.subtitle}\n
\n : null\n }\n
\n \n \n { dialogContent && dialogContent.items && dialogContent.items.length > 0\n ? dialogContent.items.length === 1\n ? \n :
\n \n
\n : null\n }\n
\n \n \n { dialogContent && dialogContent.items.length === 1 \n ? \n : null\n }\n \n
\n \n
\n )\n})\n","import React, { useEffect } from 'react';\nimport Layout from '../Layout/Layout';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport ConfigSelector from './ConfigSelector/ConfigSelector';\nimport CountUp from 'react-countup';\nimport withWidth, { isWidthUp } from '@material-ui/core/withWidth';\nimport Fade from '@material-ui/core/Fade';\n\nconst useStyles = makeStyles(theme => ({\n MainWrapper : {\n display: 'flex',\n width: '80%',\n minWidth: '300px',\n margin: '0 auto', \n top: 0, \n justifyContent: 'center',\n alignItems: 'center',\n height: '90vh', \n [theme.breakpoints.down('sm')]: {\n height: 'initial'\n }\n },\n\n CenterWrapper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n justifyContent: 'flex-start'\n }\n },\n\n IllustrationWrapper: { \n maxWidth: '50%',\n '& img' : {\n width: '100%',\n maxWidth: '500px'\n },\n alignSelf: 'center',\n marginLeft: '120px',\n [theme.breakpoints.down('sm')]: {\n order: 0,\n maxWidth: 'initial',\n width: '100%',\n marginLeft: 'initial',\n paddingTop: theme.spacing(4)\n }\n },\n \n FormWrapper: { \n width: '360px',\n maxWidth: '400px',\n display: 'flex',\n flexDirection: 'column',\n // margin: `${theme.spacing(5)}px auto 0`\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n padding: '0 15px',\n margin: '0 auto',\n order: 1,\n height: '100vh'\n }\n }, \n title: {\n width: '100%',\n //color: theme.palette.common.white,\n fontSize: '32px',\n fontWeight: 400,\n marginBottom: theme.spacing(3), \n [theme.breakpoints.down('sm')]: {\n fontSize: '24px',\n marginTop: theme.spacing(3) \n }\n } \n}))\n\n\nexport default withWidth()(function Home(props) { \n const classes = useStyles();\n let [adsCount, setAdsCount] = React.useState(0);\n const [loading, setLoading] = React.useState(false); \n const [showForm, setShowForm] = React.useState(false); \n \n useEffect(() => { \n let dl = window.dataLayer;\n let dlObj = {\n 'ruta': '/AgroadsPrecios/',\n 'titulo': 'Home-Precios',\n 'categoriaPagina': 'Home-Precios', \n 'event': 'pv'\n }\n dl.push(dlObj);\n\n setLoading(true) \n fetch('https://www.agroads.com.ar/precios/api/es.asp?action=cantidadtotal')\n .then(res => res.json())\n .then(jsonRes => {\n setAdsCount(jsonRes.hits.total);\n })\n .catch(error => console.log(error))\n .finally(() => setLoading(false)) \n \n if (!isWidthUp('sm', props.width)) {\n setTimeout(() => { \n setShowForm(true);\n }, 1400)\n\n setTimeout(()=>{\n window.scrollTo({top:360, left: 0, behavior: 'smooth' }) \n }, 1400)\n }\n }, [])\n \n let bgImgDesktop = 'https://static.aastatic.com.ar/img/precios/img-precios-escritorio.png';\n let bgImgMobile = 'https://static.aastatic.com.ar/img/precios/img-precios-movil.png';\n let referenceText = adsCount === 0 ? 'Referencia de precios' : (Referencia de precios de Maquinaria Agrícola basada en equipos);\n\n return (\n \n
\n
\n \n
\n {referenceText}\n \n
\n
\n
\n \n \"Portada \n \n
\n
\n
\n
\n )\n})\n","import App from './App';\nimport Detalle from './containers/Detalle/Detalle';\nimport Home from './containers/Home/Home';\n\nconst routes = [\n {\n component: App,\n routes: [\n { path: '/', exact: true, component: Home },\n { path: '/r/:rubro2/modelos/:modelosParams/(clasificado)?/:clasificadoid?', exact: false, component: Detalle }\n ]\n }\n];\n\nexport default routes;","import { createMuiTheme } from '@material-ui/core/styles';\n\nexport const themeBlue = createMuiTheme({\n typography: {\n fontFamily: 'Roboto, Arial',\n },\n palette: {\n common: {\n black: \"#000\",\n white: \"#fff\"\n },\n background: {\n paper: \"#fff\",\n default: \"#f0f0f0\",\n lightGray: \"#fafafa\"\n //default: \"rgba(250, 250, 250, 1)\"\n },\n primary: {\n light: \"rgba(82, 111, 214, 1)\",\n main: \"rgba(5, 73, 164, 1)\", // es el mas oscuro\n //dark: \"rgba(5, 73, 164, 1)\",\n dark: \"rgba(60, 132, 247, 1)\", // es el intermedio \n },\n secondary: {\n light: \"#d05ce3\",\n main: \"#9c27b0\",\n dark: \"#6a0080\", \n },\n terceary: {\n light: \"#ff6090\",\n main: \"#e91e63\",\n dark: \"#b0003a\", \n },\n sponsored: {\n main: \"#3483fa\"\n },\n error: {\n light: \"#e57373\",\n main: \"#f44336\",\n dark: \"#d32f2f\",\n contrastText: \"#fff\"\n },\n text: {\n primary: \"rgba(66, 66, 66, 1)\",\n icon: \"rgba(204, 204, 204, 1)\",\n secondary: \"#757575\",\n disabled: \"rgba(189, 189, 189, 1)\",\n hint: \"rgba(0, 0, 0, 0.38)\"\n }\n }\n});\n\nexport const themeGreen = createMuiTheme({\n overrides: { \n MuiPaper: { \n root: {\n background: '#fff',\n },\n },\n },\n typography: {\n fontFamily: 'Roboto, Arial',\n },\n palette: {\n common: {\n black: \"#000\",\n white: \"#fff\"\n },\n background: {\n paper: \"#red\",\n default: \"#fafafa\",\n lightGray: \"#fafafa\"\n //default: \"rgba(250, 250, 250, 1)\"\n },\n primary: {\n light: \"#4bad3a\",\n main: \"#007d00\", \n dark: \"#004f00\", \n },\n secondary: {\n light: \"rgba(82, 111, 214, 1)\",\n main: \"rgba(5, 73, 164, 1)\", \n dark: \"rgba(60, 132, 247, 1)\",\n }, \n terceary: {\n light: \"#9be7ff\",\n main: \"#64b5f6\",\n dark: \"#bb002f\",\n },\n sponsored: {\n main: \"#3483fa\"\n },\n error: {\n light: \"#e57373\",\n main: \"#f44336\",\n dark: \"#d32f2f\",\n contrastText: \"#fff\"\n },\n text: {\n primary: \"rgba(66, 66, 66, 1)\",\n icon: \"rgba(204, 204, 204, 1)\",\n secondary: \"#757575\",\n disabled: \"rgba(189, 189, 189, 1)\",\n hint: \"rgba(0, 0, 0, 0.38)\"\n }\n }\n});","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport Routes from './routes';\nimport { renderRoutes } from 'react-router-config';\nimport { ThemeProvider } from '@material-ui/styles';\nimport { themeBlue, themeGreen } from './theme';\nimport { SelectorProvider, ThemeCtx } from './context';\nimport { FormControlLabel, Switch, makeStyles } from '@material-ui/core'\nimport { useEffect } from 'react';\n\n\n\nconst useStyles = makeStyles(theme => ({\n themeSwitchWrapper: {\n position: 'fixed',\n top: '8px',\n right: '0',\n zIndex: '9999',\n color: '#fff',\n float: 'right' \n }\n}))\n\nexport default function Main() {\n const [mainTheme, setMainTheme] = React.useState(themeGreen);\n const [themeName, setThemeName] = React.useState('default');\n const [showThemeSelector, setShowThemeSelector] = React.useState(false);\n const tctx = React.useContext(ThemeCtx);\n const classes = useStyles(themeName === 'default' ? themeGreen : themeGreen);\n\n const handleChange = (event) => {\n setMainTheme(event.target.checked ? themeGreen : themeBlue);\n setThemeName(event.target.checked ? 'green' : 'default') \n }; \n\n useEffect(() => {\n if (themeName) {\n tctx.theme = themeName;\n }\n }, [themeName]);\n \n \n return ( \n
\n \n \n \n \n { showThemeSelector \n ? \n }\n label=\"Verde\"\n /> \n : null\n } \n
{renderRoutes(Routes)}
\n
\n
\n
\n
\n
\n );\n}\n\nReactDOM.render(
, document.getElementById('root'));"],"sourceRoot":""}