{"version":3,"sources":["mock/MockModels.js","services/JudeteDataService.js","mock/MockJudeteDataService.js","services/MonitorService.js","message/Message.js","services/Date.js","anunt/AnuntGeneral.js","allAnunturi/AllAnunturi.js","contact/Contact.js","licitatiiSelectateDesktop/licitatiiSelectateDesktop.js","JudDetailsPanel.js","config.js","TotalAnunturi.js","countersDesktop/CountersDesktop.js","ultimeleModificari/ultimeleModificari.js","Map.js","homeButtons/HomeButtons.js","MapMobile.js","homeButtons/AnunturiHomeButtons.js","AnunturiMobile.js","reportWebVitals.js","search/Search.js","Salvata.js","list/LicitatieRow.js","list/LicitatiiList.js","search/SerchResults.js","index.js"],"names":["MockModels","getLicitatieSelectata","id","Math","floor","random","price_mp","detalii","salvata","raportata","getAnuntSelectat","total_price","surface","getAmountSelectate","count","res","i","push","this","getAnuntDetails","anuntId","title","price_unit","judet","localitate","data_scanare","Date","toDateString","data_licitatie","pdf","content","cf","nr_cadastru","pulled","JudeteDataService","a","Promise","resolve","reject","brasov","nume","anunturi","anunturi_case","licitatii","licitatii_case","enabled","cluj","setTimeout","data","lastResponse","lastResponseAnunturiData","lastGetRaportDataJudet","dropJud","licitatiiAll","licitatiiAllJud","licitatiiAllSelected","lastDropdownSelectedId","licitatiiAllAnunturiCount","anunturiAll","anunturiAllJud","terenSelected","casaSelected","anunturiAllAnunturiCount","searchResults","searchInProgress","lastSearchInput","doOnSearch","registerOnSearchReceived","callback","getJudData","emtptyResponse","judete","numar_anunturi","numar_anunturi_azi","numar_licitatii","licitatii_salvate","fetch","response","json","message","includes","getAnunturiJudData","getRaportDataJudet","url","replace","then","getLicitatie","getAnunt","getAnuntCase","pullData","downloadReport","downloadGraficAnunturi","saveLicitatie","licitatieId","removeLicitatie","raporteazaLicitatie","ignoraAnunt","forType","isLicitatie","headers","body","JSON","stringify","searchLicitatiiObs","search","map","f","searchLicitatii","result","MonitorService","sendEvent","eventType","window","location","hostname","indexOf","ipResp","ipJson","method","type","name","from","responseData","sessionStorage","setItem","EventId","Message","props","show","onClick","onClose","React","Component","unixTimeToDateString","unixtime","date","getDate","toLocaleDateString","month","Number","getYear","ButtonSave","added","onMessage","onUpdateReqested","removed","className","removeSaved","save","ButonRaporteaza","raporteaza","ButonIgnore","anunt","for","licitatie","ignore","Anunt","state","totalPrice","priceMp","params","getData","setState","priceUnit","dataScanare","dataLicitatie","nrCadastru","ignored","inList","find","l","reason","console","error","Error","document","createElement","href","download","click","componentDidMount","detaliiLink","open","log","pulledValue","length","label","valoare","toLowerCase","to","getCssClassForPullBtn","toUpperCase","parseFloat","toFixed","elementLocalitate","elementDataLabel","elementDataValoare","openDetaliiLink","downloadPdf","updateRequested","mes","showMessage","closeMessage","useParams","TotaluriJudet","innerWidth","jud","anunturiCount","licitatiiCount","src","alt","Salvata","Raportata","AllAnunturiMobil","classes","navigate","orderBy","index","handleAnuntClick","getCssClassName","AllAnunturiDesktop","ignored_for_type","ignored_for_liciatatie","placeholder","onChange","e","searchBy","target","value","AllAnunturiMobilWithNavigate","useNavigate","AllAnunturiDesktopWithNavigate","AllAnunturi","all","filtered","licitatii_all","anunturi_count","anunturi_all","anunturi_case_all","scrollTo","criteriu","sortedLicitatii","sort","licitatieA","licitatieB","parseInt","localeCompare","undefined","sensitivity","localitateFilter","filter","x","c","Contact","LicitatiiSelectateDesktop","licitatiiSelectate","anunturiSelectate","visibility","licitatii_selectate","case_selectate","padStart","selectCase","selectTerenuri","urlToLicitatieComponent","isLastSelected","style","background","addPadding","urlToAnuntComponent","urlToAllAnunturiComponent","urlToAllLicitatiiComponent","JudDetailsPanel","status","blob","URL","createObjectURL","alert","details","jud_anunturi","jud_licitatii","jud_anunturi_case","config","version","testVar","TotalAnunturi","onModificariClick","anunturiAzi","CountersDesktop","textLocationX","textLocationY","rect","X","Y","text","counters","countersLocation","y","width","height","cornerRadius","stroke","strokeWidth","opacity","fill","UltimeleModificari","URLImage","image","handleLoad","loadImage","oldProps","removeEventListener","Image","addEventListener","ref","node","imageNode","selected","Judete","judImage","judetSelectat","fade","numeJudet","handleJudetClick","fontSize","textOpacity","Map","getItem","numarAnunturi","numarAnunturiAzi","numarLicitatii","modificari","j","trim","licitatiiSalvate","onJudetClick","jud_data","handleModificariClick","getJudetImage","onCloseDetails","onModificariClose","HomeButtons","backgroundImage","backgroundSize","HeaderSection","TotaluriMobil","DetailsDropDown","JudeteMobil","cssString","cssClasses","isSelected","MapMobile","salvate","class","AnunturiMobile","AnunturiHomeButtons","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","Search","useState","searchValue","setSearchValue","useEffect","searchText","handleClick","LicitatieRow","LicitatiiList","ResultsRowsMobil","SearchResults","results","savedJud","MapVersion","MapVersionAnunturi","container","getElementById","createRoot","render","StrictMode","exact","path","element","desktop","Licitatie"],"mappings":"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","file":"static/js/main.f0298813.chunk.js","sourcesContent":["const MockModels = {\n getLicitatieSelectata: function() {\n return {\n id: Math.floor(Math.random() * 100),\n price_mp: Math.floor(Math.random() * 1000),\n detalii: '',\n salvata: 0,\n raportata: 0,\n };\n },\n\n // Are aceeasi structura ca si o licitatie\n getAnuntSelectat: function() {\n return {\n id: Math.floor(Math.random() * 100),\n total_price: 2000 + Math.floor(Math.random() * 100),\n price_mp: Math.floor(Math.random() * 1000),\n surface: Math.floor(Math.random() * 200),\n detalii: '',\n salvata: 0,\n raportata: 0,\n };\n },\n\n getAmountSelectate: function(count) {\n let res = [];\n for(let i = 0; i < count; i++) {\n res.push(this.getAnuntSelectat());\n }\n res[2].id = 16;\n res[3].id = 17;\n return res;\n },\n\n getAnuntDetails: function(anuntId) {\n return {\n id: anuntId,\n title: 'Lorem ipsum anunt casa ' + anuntId,\n total_price: 10 + Math.floor(Math.random() * 2000),\n price_mp: 10 + Math.floor(Math.random() * 2000),\n price_unit: 10 + Math.floor(Math.random() * 2000),\n surface: 10 + Math.floor(Math.random() * 2000),\n judet: 'brasov',\n localitate: 'brasov',\n data_scanare: new Date().toDateString(),\n data_licitatie: '12 Feb 2024',\n detalii: 'https://www.olx.ro',\n salvata: 0,\n raportata: 0,\n pdf: '',\n content: 'content',\n cf: '',\n nr_cadastru: '',\n pulled: 0\n }\n }\n}\n\n\nexport default MockModels;","import MockJudeteDataService from \"../mock/MockJudeteDataService\";\n\nconst JudeteDataService = {\n // Salvez datele primite pentru landing page de la apelul la getJudData\n lastResponse: null,\n\n // Salvez ultimul raspuns cerut la pagina /anunturi\n lastResponseAnunturiData: null,\n\n // Salvez ultimul raspuns cerut la dropdown. Il foloses cand revin de la pagina Licitatii.js\n lastGetRaportDataJudet: null,\n\n // Folosesc pentru a sti ce judet sa deschid in pagina principala cand revin de la detalii\n dropJud: null,\n\n // Toate licitatiile primite la ultimul apel\n licitatiiAll: [],\n\n // Judetul pe care sa il afisez la pagina tuturor judetelor\n licitatiiAllJud: \"\",\n\n // Licitatia selectata. O salvez aici pentru a putea colora randul ei, dupa ce revin la pagina tuturor licitatiilor\n licitatiiAllSelected: 0,\n\n // Ultima licitatieId selectat din dropdown\n lastDropdownSelectedId: 0,\n\n // Numarul de anunturi pe care il voi afisa in pagina AllLicitatieJudet\n licitatiiAllAnunturiCount: 0,\n\n // Toate anunturile primite la ultimul apel\n anunturiAll: [],\n\n // Judetul pe care sa il afisez la pagina tuturor judetelor\n anunturiAllJud: \"\",\n\n // Anuntul de teren selectat. Il salvez aici pentru a putea colora randul diferit, dupa ce revin la pagina tuturor anunturilor teren\n terenSelected: 0,\n\n // Anuntul de casa selectat. Il salvez aici pentru a putea colora randul diferit, dupa ce revin la pagina tuturor anunturilor case\n casaSelected: 0,\n\n // Numarul de anunturi pe care il voi afisa in pagina AllAnunturiJudet\n anunturiAllAnunturiCount: 0,\n\n // Rezultatele care vor fi afisare pentru cautare\n searchResults: [],\n\n // O folosesc sa afisez mesaje de loading\n searchInProgress: false,\n\n // O folosesc pentru a completa inputul de search cand user alega Back\n lastSearchInput: \"\",\n\n // Lista cu o functie care o apelez cand primesc raspunsurile. Este o functie care primeste ca parametru lista de rezultate\n doOnSearch: [],\n registerOnSearchReceived: function( callback ) {\n this.doOnSearch = [ callback ];\n },\n\n getJudData: async function() {\n // return MockJudeteDataService.getJudData();\n\n let emtptyResponse = {\n judete: [],\n data_scanare: 0,\n numar_anunturi: 0,\n numar_anunturi_azi: 0,\n numar_licitatii: 0,\n licitatii_salvate: [],\n }\n\n if ( this.lastResponse != null) {\n return this.lastResponse;\n }\n else {\n try {\n const response = await fetch(\"/statistici-api/landing-page-data/\", {\n \"method\": \"GET\"\n });\n const data = await response.json();\n\n // Salvez datele primite pentru landing page \n this.lastResponse = data;\n\n return data;\n }\n catch(error) {\n if (error.message.includes(\"The string did not match the expected pattern\") ) {\n this.lastResponse = emtptyResponse;\n }\n\n return emtptyResponse;\n }\n }\n },\n\n getAnunturiJudData: async function() {\n if ( this.lastGetRaportDataJudet != null) {\n return this.lastGetRaportDataJudet;\n }\n else {\n const response = await fetch(\"/statistici-api/anunturi-page-data/\", {\n \"method\": \"GET\"\n });\n const data = await response.json();\n\n // Salvez datele primite pentru anunturi\n this.lastGetRaportDataJudet = data;\n\n return data;\n }\n },\n\n // Returneaza un obiect ce contine proprietatile:\n // judet\n // licitatii_selectate\n // licitatii_all\n getRaportDataJudet: function(judet) {\n // return MockJudeteDataService.getRaportDataJudet(judet);\n\n let url = \"/statistici-api/raport/{judet}/\".replace(\"{judet}\", judet);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n getLicitatie: function(id) {\n let url = \"/statistici-api/licitatie/{id}/\".replace(\"{id}\", id);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n getAnunt: function(id) {\n let url = \"/statistici-api/anunt/{id}/\".replace(\"{id}\", id);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n getAnuntCase: function(id) {\n // return MockJudeteDataService.getAnuntCase(id);\n\n let url = \"/statistici-api/anunt-case/{id}/\".replace(\"{id}\", id);\n return fetch(url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n pullData: function(id) {\n let url = \"/statistici-api/licitatie-pull-data/{id}/\".replace(\"{id}\", id);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n downloadReport: function(judet) {\n return fetch(\"/statistici-api/download-raport/judet/\".replace(\"judet\", judet), {\n \"method\": \"GET\"\n });\n },\n\n downloadGraficAnunturi: function(judet) {\n return fetch(\"/statistici-api/download-grafic-anunturi/judet/\".replace(\"judet\", judet), {\n \"method\": \"GET\"\n });\n },\n\n saveLicitatie: function( licitatieId ) {\n let url = \"/statistici-api/save/{id}/\".replace(\"{id}\", licitatieId);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n removeLicitatie: function( licitatieId ) {\n let url = \"/statistici-api/remove/{id}/\".replace(\"{id}\", licitatieId);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n\n raporteazaLicitatie: function( licitatieId ) {\n let url = \"/statistici-api/raporteaza/{id}/\".replace(\"{id}\", licitatieId);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n },\n\n ignoraAnunt: function(anuntId, forType, isLicitatie) {\n let url = \"/statistici-api/ignore/\";\n return fetch(url, {\n \"method\": \"POST\",\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n \"id\": anuntId,\n \"for\": forType,\n \"licitatie\": isLicitatie,\n })\n }).then(response => response.json());\n },\n\n searchLicitatiiObs(search) {\n // Nu pornesc cautarea pentru valoare falsy \n if (!search) {\n this.doOnSearch.map( f => f([]));\n this.doOnSearch = [];\n return;\n }\n\n // Nu pornesc cautarea pentru valoarea precedenta\n if (search === this.lastSearchInput)\n {\n this.doOnSearch.map( f => f(this.searchResults));\n this.doOnSearch = [];\n return;\n }\n\n this.lastSearchInput = search;\n this.searchInProgress = true;\n this.searchResults = []\n this.searchLicitatii(search).then( result => {\n this.searchResults = result['search_results'];\n this.doOnSearch.map( f => f(this.searchResults));\n this.doOnSearch = [];\n this.searchInProgress = false;\n });\n },\n\n searchLicitatii: function( search ) {\n let url = \"/statistici-api/search/{searchValue}/\".replace(\"{searchValue}\", search);\n return fetch( url, {\n \"method\": \"GET\"\n }).then( response => response.json());\n }\n\n}\n\nexport default JudeteDataService;","import MockModels from \"./MockModels\";\n\nconst MockJudeteDataService = {\n getJudData: async function() {\n return new Promise((resolve, reject) => {\n const brasov = { nume: 'brasov', anunturi: 5, anunturi_case: 7, licitatii: 6, licitatii_case: 8, enabled: true}\n const cluj = { nume: 'cluj', anunturi: 5, anunturi_case: 7, licitatii: 6, licitatii_case: 8, enabled: true}\n setTimeout(() => {\n const data = {\n 'data_scanare': '',\n 'judete': [brasov, cluj],\n 'numar_anunturi': 20,\n 'numar_anunturi_azi': 10,\n 'numar_licitatii': 30,\n 'licitatii_salvate': 1,\n };\n resolve(data);\n }, 1000);\n });\n },\n\n getRaportDataJudet: async function(judet) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n const data = {\n 'judet': 'brasov', \n 'licitatii_selectate': MockModels.getAmountSelectate(5),\n 'anunturi_selectate': MockModels.getAmountSelectate(5),\n 'case_selectate': MockModels.getAmountSelectate(5),\n 'licitatii_all': MockModels.getAmountSelectate(10),\n 'anunturi_all': MockModels.getAmountSelectate(20),\n 'anunturi_case_all': MockModels.getAmountSelectate(10),\n 'anunturi_count': 23\n };\n resolve(data);\n }, 500);\n });\n },\n\n getAnuntCase: async function(anuntId) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(MockModels.getAnuntDetails(anuntId)); \n }, 600);\n });\n }\n}\n\nexport default MockJudeteDataService;\n\n","const MonitorService = {\n sendEvent: function(eventType) {\n\n if(window.location.hostname === 'localhost' || window.location.hostname.indexOf('192.168.0') === 0) {\n return;\n }\n\n fetch('https://api.ipify.org?format=json')\n .then((ipResp) => ipResp.json().then((ipJson) => {\n fetch('https://09mclyfv7k.execute-api.eu-central-1.amazonaws.com/prod/log_event', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({type: eventType, name: 'licitatii.binaryfusion.ro', from: ipJson}),\n }).then((response) => response.json().then((responseData) => {\n sessionStorage.setItem('success', responseData.EventId);\n }));\n })\n );\n }\n\n}\n\nexport default MonitorService;","import React from 'react';\n\nimport './Message.css';\n\nclass Message extends React.Component {\n\n render() {\n\n if (this.props.show) {\n return (\n
\n\n
\n\n
{this.props.message}
\n\n
this.props.onClose() }>OK
\n\n
\n\n\n
\n )\n }\n else {\n return (
)\n }\n\n }\n\n}\n\nexport default Message;","/**\n * Converteste secunde de la epoch in String de forma 24 Dec 2021\n * @param {int} unixtime Seconds from epoch\n * @returns {String}\n */\nconst unixTimeToDateString = function( unixtime ) {\n let date = new Date(unixtime * 1000);\n let day = date.getDate();\n let month = date.toLocaleDateString('en-US', { month: \"short\"});\n let year = 1900 + Number(date.getYear());\n return day + \" \" + month + \" \" + year;\n};\n\nexport default unixTimeToDateString;","import React from 'react';\nimport { Link, useParams } from \"react-router-dom\";\n\nimport JudeteDataService from '../services/JudeteDataService';\nimport MonitorService from '../services/MonitorService';\nimport Message from '../message/Message';\nimport unixTimeToDateString from '../services/Date'\n\nimport './Anunt.css';\n\nclass ButtonSave extends React.Component {\n\n save( licitatieId ) {\n JudeteDataService.saveLicitatie(licitatieId).then( response => {\n if( response.added === 1) {\n this.props.onMessage(\"Salvata\");\n }\n else {\n this.props.onMessage(\"A fost o eroare\");\n }\n });\n\n this.props.onUpdateReqested();\n }\n\n removeSaved( licitatieId ) {\n MonitorService.sendEvent(\"Anunt interesat id=\" + licitatieId);\n JudeteDataService.removeLicitatie(licitatieId).then( response => {\n if ( response.removed === 1) {\n this.props.onMessage(\"Stearsa\");\n }\n else {\n this.props.onMessage(\"A fost o eroare\");\n }\n });\n this.props.onUpdateReqested();\n }\n\n render() {\n\n if ( this.props.salvata === 1 ) {\n return (\n
{ this.removeSaved(this.props.licitatieId) }}>Sterge
\n )\n }\n else {\n return (\n
{ this.save(this.props.licitatieId) }}>Interesanta
\n )\n }\n }\n}\n\nclass ButonRaporteaza extends React.Component {\n\n raporteaza( licitatieId ) {\n JudeteDataService.raporteazaLicitatie(licitatieId).then( response => {\n if( response.added === 1) {\n this.props.onMessage(\"Raportata\");\n }\n else {\n this.props.onMessage(\"A fost o eroare\");\n }\n\n this.props.onUpdateReqested();\n });\n }\n\n\n render() {\n\n if ( this.props.raportata === 0 ) {\n return (\n
{ this.raporteaza(this.props.licitatieId) }}>Gresita
\n )\n }\n else {\n return (\n
\n )\n }\n }\n}\n\nclass ButonIgnore extends React.Component {\n // Expect to get props:\n // anunt: AnuntIdWrapper {licitatie, for, id}\n // ignore: 0/1 1 if already ignored\n\n // type AnuntIdWrapper {licitatie, for, id}\n raporteaza( anunt ) {\n MonitorService.sendEvent(\"Anunt ne-interesant id=\" + anunt.id);\n JudeteDataService.ignoraAnunt(anunt.id, anunt.for, anunt.licitatie).then( response => {\n if( response.added === 'Added') {\n this.props.onMessage(\"Cerere efectuata\");\n }\n else {\n this.props.onMessage(\"A fost o eroare: \" + response.added);\n }\n\n this.props.onUpdateReqested();\n });\n }\n\n\n render() {\n if ( this.props.ignore === 0 ) {\n return (\n
{ this.raporteaza(this.props.anunt) }}>Neinteresanta
\n )\n }\n else {\n return (\n
\n )\n }\n }\n}\n\n/**\n * Expect to receive in params:\n * anuntId: id of anunt, licitatie for case or terrain\n * for: casa/teren\n * licitatie: true/false\n * desktop: true/false\n */\nclass Anunt extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n totalPrice: 0,\n priceMp: 0,\n localitate: \"\",\n message: \"\",\n pulled: 1\n }\n\n }\n\n componentDidMount() {\n const anuntId = this.props.params.anuntId;\n\n this.getData(anuntId).then( response => {\n this.setState({\n id: response.id,\n title: response.title,\n totalPrice: response.total_price,\n priceMp: response.price_mp,\n priceUnit: response.price_unit,\n surface: response.surface,\n judet: response.judet,\n localitate: response.localitate,\n dataScanare: unixTimeToDateString(response.data_scanare),\n dataLicitatie: response.data_licitatie,\n detalii: response.detalii,\n salvata: response.salvata,\n raportata: response.raportata,\n pdf: response.pdf,\n content: response.content,\n cf: response.cf,\n nrCadastru: response.nr_cadastru,\n pulled: response.pulled,\n\n ignored: 0, // TODO get this from database\n });\n\n // Salvez detele pentru a sti ce judet sa deschid in pagina principala\n JudeteDataService.dropJud = response.judet;\n\n // Salvez id-ul pentru a sti ce rand sa marchez in dropdown\n JudeteDataService.lastDropdownSelectedId = this.props.params.licitatieId;\n\n // Updatez si licitatiile din lista licitatiiAll daca este cazul\n const inList = JudeteDataService.licitatiiAll.find(l => l.id === response.id);\n if ( !!inList ) {\n inList.salvata = response.salvata;\n }\n\n }, reason => {\n console.error(reason);\n });\n }\n\n getData(id) {\n if (this.props.for === 'teren') {\n if (this.props.licitatie) {\n return JudeteDataService.getLicitatie(id);\n } else {\n return JudeteDataService.getAnunt(id);\n }\n } else if (this.props.for ==='casa') {\n if (this.props.licitatie) {\n throw Error('Not implemented - nu am parsat licitatii pentru case');\n } else {\n return JudeteDataService.getAnuntCase(id);\n }\n } else {\n throw Error('for property not accepted: ' + this.props.for);\n }\n }\n\n downloadPdf( id, url ) {\n let a = document.createElement('a');\n a.href = url;\n a.download = id + '.pdf';\n a.click();\n }\n\n updateRequested() {\n JudeteDataService.lastGetRaportDataJudet = null;\n this.componentDidMount();\n }\n\n openDetaliiLink(detaliiLink) {\n window.open( detaliiLink );\n }\n\n showMessage(message) {\n this.setState({\n message: message\n });\n }\n\n closeMessage() {\n this.setState({\n message: \"\"\n });\n }\n\n pullData(licitatieId) {\n if ( this.state.pulled === 1) {\n // Inseamna ca deja am luat detaliile parsate pentru anuntul asta\n return;\n }\n\n this.setState({ pulled: 1 });\n\n JudeteDataService.pullData(licitatieId).then( response => {\n console.log(response);\n this.setState({\n content: response.content,\n dataLicitatie: response.data_licitatie,\n pdf: response.pdf,\n cf: response.cf,\n nrCadastru: response.nr_cadastru\n });\n });\n }\n\n /**\n * Pulled poate fi 1 = a fost parsata pagina de detalii\n * 0 = nu a fost parsata. Voi arata butonul dezactivat \n * @param { pulled } pulledValue \n */\n getCssClassForPullBtn( pulledValue ) {\n if ( pulledValue === 1) {\n return \"pull-deactivate unselectable\";\n }\n else {\n return \"pull-active unselectable\";\n }\n }\n\n elementDataLabel() {\n if ( !this.state.dataLicitatie || this.state.dataLicitatie.length === 0 ) {\n return null;\n }\n else {\n return (
Data
)\n }\n }\n\n elementDataValoare() {\n if ( !this.state.dataLicitatie || this.state.dataLicitatie.length === 0 ) {\n return null;\n }\n else {\n return (
{ this.state.dataLicitatie}
)\n }\n }\n\n elementLocalitate( localitate ) {\n return {\n label: function() {\n if ( !!localitate && localitate.length > 0 ) {\n return (
Localitate
)\n }\n else {\n return null;\n }\n },\n valoare: function() {\n if ( !!localitate && localitate.length > 0 ) {\n return (
{ localitate.toLowerCase() }
)\n }\n else {\n return null;\n }\n }\n }\n }\n\n render() {\n\n return (\n
\n\n
\n {/* BUTON TOATE ANUNTURILE */}\n { !this.props.licitatie && this.props.for === 'teren' &&
Toate anunturile
}\n { !this.props.licitatie && this.props.for === 'casa' &&
Toate anunturile
}\n\n {/* BUTTON TOATE LICITATIILE */}\n { this.props.licitatie &&
Toate licitatiile
}\n\n {/* BUTTON HARTA */}\n
Harta
\n
\n\n {/* PULL DATA BUTTON */}\n
this.pullData(this.state.id) }>Pull data
\n\n\n
\n\n
\n\n {/* COLOANA CENTRALA */}\n
\n\n
\n { !this.props.licitatie &&
Anunt
}\n { this.props.licitatie &&
Licitatie
}\n { this.props.for === 'teren' &&
Teren
}\n { this.props.for === 'casa' &&
Casa
}\n
\n\n\n {/* TITLU */}\n
\n
\n
{this.state.title}
\n\n {/* RAND CF SI NUMAR CADASTRU */}\n
\n { !!this.state.cf &&
CF {this.state.cf.toUpperCase()}
}\n { !!this.state.nrCadastru &&
Cadastru {this.state.nrCadastru.toUpperCase()}
}\n
\n\n\n
\n\n
\n\n {/* PROPRIETATILE */}\n
\n
Total price
\n
{ this.state.totalPrice } {this.state.priceUnit}
\n\n
Price MP
\n
{ parseFloat(this.state.priceMp).toFixed(2) }
\n\n
Surface
\n
{ this.state.surface }
\n\n
Judet
\n
{ this.state.judet }
\n\n { this.elementLocalitate( this.state.localitate ).label() }\n { this.elementLocalitate( this.state.localitate ).valoare() }\n\n { this.elementDataLabel() }\n { this.elementDataValoare() }\n\n {/* Nu cred e folositor sa mai arat id-ul */}\n {/*
Id
*/}\n {/*
{ this.state.id }
*/}\n
\n\n {/* BUTOANELE */}\n
{this.openDetaliiLink(this.state.detalii) }}>Deschide
\n\n { !!this.state.pdf &&
{this.downloadPdf(this.state.id, this.state.pdf) }}>Publicatie
}\n\n this.updateRequested()} \n onMessage={(mes) => this.showMessage(mes)} />\n\n this.updateRequested() } \n onMessage={(mes) => this.showMessage(mes)} />\n\n this.updateRequested() } \n onMessage={(mes) => this.showMessage(mes)} />\n\n
\n\n
\n\n
\n\n\n { !!this.state.content &&
{this.state.content}
}\n\n 0} \n onClose={ () => this.closeMessage() } />\n\n\n
\n )\n }\n\n}\n\n// eslint-disable-next-line\nexport default (props) => (\n \n);\n","import React from 'react';\nimport { Link, useNavigate, useParams } from \"react-router-dom\";\n\nimport './AllAnunturi.css'\nimport JudeteDataService from '../services/JudeteDataService';\n\nconst ORDER_BY_MP_PRICE = 1;\nconst ORDER_BY_SURFACE = 2;\nconst ORDER_BY_TOTAL_PRICE = 3;\nconst ORDER_BY_ID = 4;\nconst ORDER_BY_LOCALITATE = 5;\n\nclass TotaluriJudet extends React.Component {\n\n render() {\n const isMobile = window.innerWidth < 800;\n if ( isMobile ) {\n return (\n
\n
{this.props.jud.toUpperCase()} - Toate licitatiile
\n
Totaluri in baza de date pentru judet:
\n
{ this.props.anunturiCount } Anunturi
\n
{ this.props.licitatiiCount } Licitatii
\n
\n )\n }\n else {\n return (\n
\n
\n\n
\n {this.props.jud.toUpperCase()}\n { this.props.licitatie && - TOATE LICITATIILE }\n { !this.props.licitatie && - TOATE ANUNTURILE }\n
\n \n\n
Totaluri in baza de date pentru judet:
\n
{ this.props.anunturiCount } Anunturi
\n
{ this.props.licitatiiCount } Licitatii
\n\n { this.props.for === 'teren' && \"terrain }\n { this.props.for === 'casa' && \"house }\n
\n
\n )\n }\n }\n}\n\nclass Salvata extends React.Component {\n render() {\n if ( this.props.salvata === 1 ) {\n return (\n \"interesting\"\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nclass Raportata extends React.Component {\n render() {\n if ( this.props.raportata === 1 ) {\n return (\n \"reported\"\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\n\nclass AllAnunturiMobil extends React.Component {\n\n getCssClassName(anunt) {\n\n let classes = \"licitatie-row\";\n if ( JudeteDataService.licitatiiAllSelected === anunt.id ) {\n classes += \" selected\";\n }\n return classes;\n }\n\n // Deschid direct pagina de detalii\n handleAnuntClick(anuntId) {\n JudeteDataService.licitatiiAllSelected = anuntId;\n this.props.navigate(\"/licitatie/teren/\" + anuntId );\n }\n\n render() {\n return (\n
\n \n
\n
this.props.orderBy(ORDER_BY_ID) }>Id ↓
\n
this.props.orderBy(ORDER_BY_TOTAL_PRICE) }>Total ↓
\n
this.props.orderBy(ORDER_BY_SURFACE) }>Surface↓
\n
this.props.orderBy(ORDER_BY_MP_PRICE) }>P/mp ↓
\n
\n
\n\n {this.props.anunturi.map( (anunt, index) => (\n
this.handleAnuntClick(anunt.id)} >\n
\n
{anunt.id}
\n
{anunt.total_price}
\n
{anunt.surface}
\n
{ parseFloat(anunt.price_mp).toFixed(2)}
\n
\n
\n
\n ))}\n
\n )\n }\n}\n\nclass AllAnunturiDesktop extends React.Component {\n // Expect to get props:\n // licitatie: true/false\n // desktop: true/false\n // for: casa/teren\n\n getCssClassName(anunt) {\n let classes = \"licitatie-row desktop\";\n\n // If marked as ignored by the user add \"ignored\" class\n if ( this.props.for === anunt.ignored_for_type && \n this.props.licitatie === anunt.ignored_for_liciatatie) {\n classes += \" ignore\"; \n }\n\n if (this.props.for === 'teren' && !this.props.licitatie) {\n if (JudeteDataService.terenSelected === anunt.id) {\n classes += \" selected\";\n }\n }\n\n if (this.props.for === 'casa' && !this.props.licitatie) {\n if (JudeteDataService.casaSelected === anunt.id) {\n classes += \" selected\";\n }\n }\n\n return classes;\n }\n\n // Deschid direct pagina de detalii\n handleAnuntClick(anuntId) {\n if (this.props.for === 'teren') {\n if (this.props.licitatie) {\n this.props.navigate(\"/licitatie/teren/desktop/\" + anuntId );\n JudeteDataService.licitatiiAllSelected = anuntId;\n } else {\n this.props.navigate(\"/anunt/teren/desktop/\" + anuntId );\n JudeteDataService.terenSelected = anuntId;\n }\n }\n\n if (this.props.for === 'casa') {\n if (this.props.licitatie) {\n this.props.navigate(\"/licitatie/case/desktop/\" + anuntId );\n JudeteDataService.licitatiiAllSelected = anuntId;\n } else {\n this.props.navigate(\"/anunt/case/desktop/\" + anuntId );\n JudeteDataService.casaSelected = anuntId;\n }\n }\n\n }\n\n render() {\n return (\n\n
\n {/* Coloana 1 */}\n
\n\n {/* Coloana 2 */}\n
\n\n\n {/* Input cautare */}\n
\n
Localitate
\n
\n
\n this.props.searchBy(e.target.value)}/>\n
\n
\n
\n\n\n {/* Header */}\n
\n
this.props.orderBy(ORDER_BY_TOTAL_PRICE) }>ID ↓
\n
this.props.orderBy(ORDER_BY_LOCALITATE) }>Localitate ↓
\n
this.props.orderBy(ORDER_BY_TOTAL_PRICE) }>Total ↓
\n
this.props.orderBy(ORDER_BY_SURFACE) }>Surface↓
\n
this.props.orderBy(ORDER_BY_MP_PRICE) }>EUR/mp ↓
\n
\n
\n
\n\n {/* Randurile */}\n {this.props.anunturi.map( (anunt, index) => (\n
this.handleAnuntClick(anunt.id)} >\n
\n
\n
{anunt.id}
\n
\n
{anunt.localitate}
\n
{anunt.total_price}
\n
{anunt.surface}
\n
{ parseFloat(anunt.price_mp).toFixed(2)}
\n
\n
\n
\n
\n ))}\n\n
\n
Interesanta - Un fel de bookmark care se pastreaza de la zi la zi
\n
Raportata - Semnaleaza mie ca datele sunt extrase gresit
\n
\n \n
\n
\n
X
\n
\n
\n \n Ultima selectata. Salvez separat teren/casa. Se reseteaza la refresh
\n
\n\n
\n\n {/* Coloana 3 */}\n
\n\n
\n )\n }\n}\n\n// Pentru a putea folose functia useNavigate, am facut un wrapper function peste componenta LicitatiiMobil\nfunction AllAnunturiMobilWithNavigate(props) {\n let navigate = useNavigate();\n return \n}\n\n// Pentru a putea folose functia useNavigate, am facut un wrapper function peste componenta LicitatiiMobil\nfunction AllAnunturiDesktopWithNavigate(props) {\n let navigate = useNavigate();\n return \n}\n\n// Corespunde paginii tuturor licitatiilor dintr-un judet\n// Expect to get props:\n// licitatie: true/false\n// desktop: true/false\n// for: casa/teren\nclass AllAnunturi extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n all: [],\n filtered: [],\n count: 0,\n anunturiCount: 0,\n jud: \"judet\",\n search: '',\n }\n }\n\n componentDidMount() {\n const judet = this.props.params.judet;\n\n JudeteDataService.getRaportDataJudet(judet).then( response => {\n\n if (this.props.for === 'teren') {\n if (this.props.licitatie) {\n this.setState({\n all: response.licitatii_all,\n filtered: response.licitatii_all,\n count: response.licitatii_all.length,\n anunturiCount: response.anunturi_count,\n jud: judet\n });\n // JudeteDataService.licitatiiAll = response.licitatii_all;\n // JudeteDataService.licitatiiAllJud = judet;\n // JudeteDataService.licitatiiAllAnunturiCount = response.anunturi_count;\n } else {\n this.setState({\n all: response.anunturi_all,\n filtered: response.anunturi_all,\n count: response.anunturi_all.length,\n anunturiCount: response.anunturi_count,\n jud: judet\n });\n // Set cache here\n }\n } else if (this.props.for === 'casa') {\n if (this.props.licitatie) {\n throw Error('Not implemented - nu am parsat licitatii pentru case');\n } else {\n this.setState({\n all: response.anunturi_case_all,\n filtered: response.anunturi_case_all,\n count: response.anunturi_case_all.length,\n anunturiCount: response.anunturi_count,\n jud: judet\n });\n // Set cache here\n }\n } else {\n throw Error('for property not accepted: ' + this.props.for);\n }\n });\n\n // Salvez detele pentru a sti ce judet sa deschid in pagina principala\n JudeteDataService.dropJud = judet;\n\n window.scrollTo(0, 0);\n }\n\n orderBy(criteriu) {\n let sortedLicitatii;\n if ( criteriu === ORDER_BY_MP_PRICE ) {\n sortedLicitatii = this.state.filtered.sort( function( licitatieA, licitatieB ) {\n return licitatieA.price_mp - licitatieB.price_mp;\n });\n }\n \n if ( criteriu === ORDER_BY_SURFACE ) {\n sortedLicitatii = this.state.filtered.sort( function( licitatieA, licitatieB ) {\n return licitatieA.surface - licitatieB.surface;\n });\n }\n\n if ( criteriu === ORDER_BY_TOTAL_PRICE ) {\n sortedLicitatii = this.state.filtered.sort( function( licitatieA, licitatieB ) {\n return licitatieA.total_price - licitatieB.total_price;\n });\n }\n\n if ( criteriu === ORDER_BY_ID ) {\n sortedLicitatii = this.state.filtered.sort( function( licitatieA, licitatieB ) {\n return parseInt(licitatieA.id) - parseInt(licitatieB.id);\n });\n }\n\n if ( criteriu === ORDER_BY_LOCALITATE ) {\n sortedLicitatii = this.state.filtered.sort( function( licitatieA, licitatieB ) {\n return licitatieA.localitate.localeCompare(licitatieB.localitate, undefined, { sensitivity: 'base' });\n });\n }\n\n this.setState({\n filtered: sortedLicitatii,\n })\n }\n\n searchBy() {\n return (localitateFilter) => {\n if (localitateFilter.length === 0) {\n this.setState({\n filtered: this.state.all,\n })\n } else {\n this.setState({\n filtered: this.state.all.filter(x => x.localitate.toLowerCase().includes(localitateFilter.toLowerCase()))\n });\n }\n };\n }\n\n render() {\n const isMobile = window.innerWidth < 800;\n if ( isMobile ) {\n return (\n
\n \n this.orderBy(c)} />\n
\n )\n }\n else {\n return (\n
\n
\n
Harta
\n
\n\n \n this.orderBy(c)} searchBy={this.searchBy()}/>\n
\n )\n }\n }\n}\n\n// eslint-disable-next-line\nexport default (props) => (\n \n);","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport './Contact.css';\n\nclass Contact extends React.Component {\n render () {\n return (\n
\n\n {/* LISTA JUDETE BUTTON */}\n
Lista judete
\n\n
\n
Contact
\n
Puteti contacta echipa Licitatii Terenuri Romania la:
\n

\n
E-mail: licitatii@binaryfusion.ro
\n
\n
\n )\n }\n}\n\nexport default Contact;","import React from 'react';\nimport JudeteDataService from '../services/JudeteDataService';\nimport { Link } from \"react-router-dom\";\n\nimport './licitatiiSelectateDesktop.css';\n\nclass Salvata extends React.Component {\n render() {\n if ( this.props.salvata === 1 ) {\n return (\n \"interesting\"\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nclass Raportata extends React.Component {\n render() {\n if ( this.props.raportata === 1 ) {\n return (\n \"reported\"/\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nclass LicitatiiSelectateDesktop extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n licitatiiSelectate: [],\n anunturiSelectate: [],\n licitatiiAll: [],\n visibility: 'case' // options: terenuri/case\n }\n }\n\n componentDidMount() {\n // Incerc sa iau din cache in loc sa mai fac un nou request\n if (!!JudeteDataService.lastGetRaportDataJudet && JudeteDataService.lastGetRaportDataJudet.judet === this.props.judet) {\n this.setState({\n licitatiiSelectate: JudeteDataService.lastGetRaportDataJudet.licitatii_selectate,\n anunturiSelectate: JudeteDataService.lastGetRaportDataJudet.case_selectate,\n licitatiiAll: JudeteDataService.lastGetRaportDataJudet.licitatii_all\n });\n\n JudeteDataService.licitatiiAll = JudeteDataService.lastGetRaportDataJudet.licitatii_all;\n JudeteDataService.licitatiiAllAnunturiCount = JudeteDataService.lastGetRaportDataJudet.anunturi_count;\n JudeteDataService.licitatiiAllJud = this.props.judet;\n }\n else {\n /**\n * Response contine datele unui raport pentru un judet\n * judet = \"\"\n * licitatii_selectate - [ { id: 0, price_mp: 0, detalii: \"\", salvata: 1 sau 0, \"raportata\": 1 sau 0 }, ... ]\n * licitatii_all - lista cu obiecte licitatii simplificate: LicitatieSimplificataDetails\n * anunturi_count - numarul de anunturi din baza de date, pentru judetul selectat\n */\n JudeteDataService.getRaportDataJudet(this.props.judet).then( response => {\n this.setState({\n licitatiiSelectate: response.licitatii_selectate,\n anunturiSelectate: response.case_selectate,\n licitatiiAll: response.licitatii_all\n });\n JudeteDataService.lastGetRaportDataJudet = response;\n JudeteDataService.licitatiiAll = response.licitatii_all;\n JudeteDataService.licitatiiAllJud = this.props.judet;\n JudeteDataService.licitatiiAllAnunturiCount = response.anunturi_count;\n });\n }\n }\n\n /**\n * Trimite catre ruta componentei pentru detaliile licitatiei functie de marimea ecranului\n * pentru a alege intre Licitie.js in cazul ecran de mobil sau LicitatieDesktop.js in cazul\n * in care se foloseste ecran de desktop \n */\n urlToLicitatieComponent(l) {\n if ( window.innerWidth < 800 ) {\n return `/licitatie/tere/` + l.id;\n }\n else {\n return `/licitatie/teren/desktop/` + l.id;\n }\n }\n\n urlToAnuntComponent(l) {\n if ( window.innerWidth < 800 ) {\n return `/anunt/case/` + l.id;\n }\n else {\n return `/anunt/case/desktop/` + l.id;\n }\n }\n\n isLastSelected(licitatieId) {\n return parseInt(JudeteDataService.lastDropdownSelectedId) === parseInt(licitatieId);\n }\n\n selectCase() {\n this.setState({\n visibility: 'case'\n })\n }\n\n selectTerenuri() {\n this.setState({\n visibility: 'terenuri'\n })\n }\n\n addPadding(id) {\n return ('' + id).padStart(4, '◦');\n }\n\n urlToAllAnunturiComponent(jud) {\n switch(this.state.visibility) {\n case 'terenuri':\n return window.innerWidth < 800 ? `/anunturi/judet/${jud}` : `/anunturi/judet/${jud}`;\n case 'case':\n default:\n return window.innerWidth < 800 ? `/case/judet/${jud}` : `/case/judet/${jud}`;\n }\n }\n\n urlToAllLicitatiiComponent(jud) {\n switch(this.state.visibility) {\n case 'terenuri':\n return `/judet/${jud}`;\n case 'case':\n default:\n return `/judet/${jud}`;\n }\n }\n\n render() {\n return(\n
\n
\n\n
\n
\n close button this.props.onClose() } />\n\n
\n
SELECTII {this.props.judet.toUpperCase()} - {this.state.visibility === 'case' ? 'CASE' : 'TERENURI'}
\n\n\n select case button this.selectCase()} />\n select terenuri button this.selectTerenuri()} />\n
\n\n
Anunturi selectate dupa anumite criterii ca relevante. Momentan criteriul este - primele 5 anunturi cele mai mici pret / mp
\n\n {/* Selectii pentru terenuri*/}\n { this.state.visibility === 'terenuri' && this.state.licitatiiSelectate.map( (l, index) => (\n\n \n
\n {this.addPadding(l.id)} \n { parseFloat(l.price_mp).toFixed(2) + \" EUR/mp\" }\n \n \n
\n \n \n ))}\n\n {/* In caz ca nu este generat raportul */}\n { this.state.visibility === 'case' && this.state.anunturiSelectate.length === 0 && \n
\n Nu sunt anunturi selectate pentru case. Raportul zilnic nu a fost generat.\n
\n }\n\n { this.state.visibility === 'terenuri' && this.state.licitatiiSelectate.length === 0 && \n
\n Nu sunt anunturi selectate pentru terenuri. Raportul zilnic nu a fost generat.\n
\n }\n\n {/* Selectii pentru case*/}\n { this.state.visibility === 'case' && this.state.anunturiSelectate.map( (l, index) => (\n\n \n
\n {this.addPadding(l.id)} \n { \"TOTAL \" + parseFloat(l.total_price).toFixed(0) + \" EUR - \" + parseFloat(l.price_mp).toFixed(2) + \" EUR/mp\" }\n \n \n
\n \n \n ))}\n\n
\n \n
TOATE ANUNTURILE
\n \n\n { this.state.visibility !== 'case' && \n
TOATE LICITATIILE
\n }\n
\n
\n
\n \n
\n )\n }\n}\n\nexport default LicitatiiSelectateDesktop;","import React from \"react\";\n\nimport './JudDetailsPanel.css';\nimport JudeteDataService from './services/JudeteDataService';\n\nclass JudDetailsPanel extends React.Component {\n\n downloadReport(judet) {\n JudeteDataService.downloadReport(judet).then( response => {\n\n if ( response.status !== 200) {\n alert(\"Not posible. Server error\");\n return;\n }\n\n response.blob().then( blob => {\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = judet + '.pdf';\n a.click();\n })\n }, (reason) => {\n alert(\"Not posible. \" + reason);\n });\n }\n\n render() {\n return (\n\n
\n
\n
\n
{ this.props.details.judet.toUpperCase() }
\n
{ this.props.details.jud_anunturi } Anunturi terenuri
\n
{ this.props.details.jud_licitatii } Licitatii terenuri
\n
{ this.props.details.jud_anunturi_case } Anunturi case
\n
\n
this.downloadReport( this.props.details.judet )} id=\"raport-button\">DESCARCA RAPORT
\n\n {/* Am mutat butonul asta in LicitatiiSelectate/Desktop */}\n {/* \n
TOATE LICITATIILE
\n */}\n
\n\n
this.props.onClose() } >Inchide
\n
\n
\n )\n };\n}\n\nexport default JudDetailsPanel;","const dev = {\n version: \"4.14\",\n testVar: \"testVar for dev environment\"\n}\n\nconst prod = {\n version: \"4.14\",\n testVar: \"testVar for prod environment\"\n}\n\nconst config = process.env.REACT_APP_STAGE === 'prod' ? prod : dev;\n\nexport default config;\n","import React from 'react';\nimport './TotalAnunturi.css';\nimport config from './config';\n\nclass TotalAnunturi extends React.Component {\n\n render() {\n return (\n
\n
Ultimele modificari
\n
Versiunea {config.version}
\n
\n
\n
Anunturi total
\n
{this.props.anunturi}
\n
\n
\n
Anunturi azi
\n
{this.props.anunturiAzi}
\n
\n
\n
Licitatii azi
\n
{this.props.licitatii}
\n
\n
\n
\n )\n }\n}\n\nexport default TotalAnunturi;","import React from \"react\";\nimport { Text, Rect, Group } from 'react-konva';\n\nimport './CountersDesktop.css';\n\nclass CountersDesktop extends React.Component {\n\n countersLocation(textLocationX, textLocationY) {\n return {\n rect: {\n X: textLocationX - 10,\n Y: textLocationY + 25\n },\n text: {\n X: textLocationX,\n Y: textLocationY + 32,\n }\n }\n }\n\n render() {\n\n const anunturi = !!this.props.counters ? this.props.counters.anunturi : this.props.anunturi;\n const licitatii = !!this.props.counters ? this.props.counters.licitatii : this.props.licitatii;\n const anunturi_case = !!this.props.counters ? this.props.counters.anunturi_case : 0;\n const licitatii_case = !!this.props.counters ? this.props.counters.licitatii_case : 0;\n\n return (\n \n \n\n \n\n \n \n )\n }\n}\n\nexport default CountersDesktop;","import './ultimeleModificari.css'\n\nfunction UltimeleModificari(props) {\n return (\n
\n
\n\n close button props.onClose() } />\n \n
\n
ULTIMELE MODIFICARI
\n
V 4.1317 Mar 2025
\n
Ultimele modificari
\n
V 4.1213 Mar 2025
\n
Buton \"Neinteresanta\". Butonul de \"Interesanta\" merge. Arata ultimul anunt si licitatie selectata. Selectia este diferita pentru teren si casa
\n
\n
\n
\n );\n}\n\nexport default UltimeleModificari;","import React from 'react';\nimport { Stage, Layer, Text, Image } from 'react-konva';\n\nimport './Map.css';\nimport JudeteDataService from './services/JudeteDataService';\nimport LicitatiiSelectateDesktop from './licitatiiSelectateDesktop/licitatiiSelectateDesktop';\nimport JudDetailsPanel from './JudDetailsPanel';\nimport TotalAnunturi from './TotalAnunturi';\nimport CountersDesktop from './countersDesktop/CountersDesktop';\nimport UltimeleModificari from './ultimeleModificari/ultimeleModificari';\n\n\n// custom component that will handle loading image from url\n// you may add more logic here to handle \"loading\" state\n// or if loading is failed\n// VERY IMPORTANT NOTES:\n// at first we will set image state to null\n// and then we will set it to native image instance when it is loaded\nclass URLImage extends React.Component {\n state = {\n image: null\n };\n componentDidMount() {\n this.loadImage();\n }\n componentDidUpdate(oldProps) {\n if (oldProps.src !== this.props.src) {\n this.loadImage();\n }\n }\n componentWillUnmount() {\n this.image.removeEventListener('load', this.handleLoad);\n }\n loadImage() {\n // save to \"this\" to remove \"load\" handler on unmount\n this.image = new window.Image();\n this.image.src = this.props.src;\n this.image.addEventListener('load', this.handleLoad);\n }\n handleLoad = () => {\n // after setState react-konva will update canvas and redraw the layer\n // because \"image\" property is changed\n this.setState({\n image: this.image\n });\n // if you keep same image object during source updates\n // you will have to update layer manually:\n // this.imageNode.getLayer().batchDraw();\n };\n\n render() {\n return (\n {\n this.imageNode = node;\n }}\n onClick={this.props.onClick}\n opacity={this.props.selected ? 1 : 0.2}\n />\n );\n }\n}\n\n/**\n * Reprezinta toata harta romaniei desenata in canvas si textele cu numele judetelor\n */\nclass Judete extends React.Component {\n\n handleJudetClick(jud) {\n return (e) => {\n // Trimit la Map Component, judetul pe care s-a facut click si pozitia cursorului\n this.props.onClick(jud);\n };\n }\n\n isSelected(judImage) {\n return judImage === this.props.judetSelectat;\n }\n\n textOpacity() {\n if (!!this.props.fade) {\n return 0.2;\n } else {\n if ( this.props.judetSelectat === \"\") {\n return 1;\n }\n else {\n return 0.2;\n }\n }\n }\n\n counters(numeJudet) {\n const judet = this.props.judete.find(jud => jud.nume === numeJudet);\n\n if (!judet) {\n return {\n anunturi: 0,\n licitatii: 0,\n anunturi_case: 0,\n licitatii_case: 0,\n }\n } else {\n return {\n anunturi: judet.anunturi,\n licitatii: judet.licitatii,\n anunturi_case: judet.anunturi_case,\n licitatii_case: 1,//this.props.judete.find(jud => jud.nume === numeJudet).licitatii_case,\n }\n }\n\n }\n\n render() {\n return (\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \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\nclass Map extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n numarAnunturi: 0,\n numarAnunturiAzi: 0,\n numarLicitatii: 0,\n judetSelectat: \"\",\n judete: [],\n details: {\n judet: \"selecteaza judet\",\n jud_anunturi: 0,\n jud_licitatii: 0,\n jud_anunturi_case: 0,\n },\n\n modificari: false\n }\n\n }\n\n sendEvent = () => {\n if(window.location.hostname === 'localhost' || window.location.hostname.indexOf('192.168.0') === 0) {\n return;\n }\n\n if(!sessionStorage.getItem('visit')) {\n sessionStorage.setItem('visit', true);\n\n fetch('https://api.ipify.org?format=json')\n .then((ipResp) => ipResp.json().then((ipJson) => {\n fetch('https://09mclyfv7k.execute-api.eu-central-1.amazonaws.com/prod/log_event', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({type: 'visit', name: 'licitatii.binaryfusion.ro', from: ipJson}),\n }).then((response) => response.json().then((responseData) => {\n sessionStorage.setItem('success', responseData.EventId);\n }));\n })\n );\n }\n }\n\n\n\n componentDidMount() {\n this.sendEvent();\n\n /**\n * Judete este o lista cu obiecte de forma\n * nume = \"\"\n * anunturi = 0\n * licitatii = 0\n */\n JudeteDataService.getJudData().then( response => {\n JudeteDataService.lastResponse = response;\n\n // Resetez id-ul licitatiei selectate sa nu coloreze rand din lista totala de licitatii\n JudeteDataService.licitatiiAllSelected = 0;\n\n // Filtrez judetele care nu au nume\n let judete = response.judete\n judete = judete.filter(j => j.nume.trim() !== \"\")\n judete = judete.filter(j => j.nume.trim() !== \"jud.\")\n\n this.setState({\n dataScanare: response.data_scanare,\n numarAnunturi: response.numar_anunturi,\n numarAnunturiAzi: response.numar_anunturi_azi,\n numarLicitatii: response.numar_licitatii,\n licitatiiSalvate: response.licitatii_salvate,\n judete: judete\n });\n\n // Redeschid ultimul judet selectat. Cazul in care revin de la pagina de detalii: Licitatie.js\n if ( !!JudeteDataService.dropJud ) {\n this.onJudetClick( JudeteDataService.dropJud );\n }\n });\n }\n\n onJudetClick(jud) {\n let jud_data = this.state.judete.find( j => j.nume.indexOf(jud) !== -1)\n\n if ( !jud_data ) {\n jud_data = { anunturi: 0, licitatii: 0, anunturi_case: 0, }\n }\n\n this.setState({ \n judetSelectat: jud,\n details: {\n judet: jud,\n jud_anunturi: jud_data.anunturi,\n jud_licitatii: jud_data.licitatii,\n jud_anunturi_case: jud_data.anunturi_case,\n }\n });\n }\n\n onCloseDetails() {\n this.setState({\n judetSelectat: \"\",\n details: {\n judet: \"\",\n jud_anunturi: 0,\n jud_licitatii: 0,\n jud_anunturi_case: 0,\n }\n })\n }\n\n handleModificariClick() {\n this.setState({\n modificari: !this.state.modificari\n });\n }\n\n onModificariClose() {\n console.log(\"AA\");\n this.setState({\n modificari: false\n });\n }\n\n getJudetImage() {\n return \"judete/\" + this.state.judetSelectat + \".svg\";\n }\n\n render() {\n\n return (\n
\n\n this.onJudetClick(jud)} \n judete={this.state.judete}\n anunturi={this.state.numarAnunturi}\n licitatii={this.state.numarLicitatii}\n judetSelectat={this.state.judetSelectat}\n fade={!!this.state.modificari} />\n\n
\n
\n this.handleModificariClick()} />\n\n
\n
{this.state.judetSelectat.toUpperCase()}
\n { this.state.judetSelectat !== \"\" && \"judet }\n
\n
\n \n
\n { this.state.judetSelectat !== \"\" && this.onCloseDetails()}/> }\n
\n\n
\n { !!this.state.modificari && this.onModificariClose()} /> }\n
\n\n
\n { this.state.judetSelectat !== \"\" && this.onCloseDetails()} /> }\n
\n
\n\n\n\n
\n );\n }\n}\n\nexport default Map;","import React from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport './HomeButtons.css';\n\nclass HomeButtons extends React.Component {\n\n render() {\n return (\n
\n
\n
\n
\n\n
\n \n
\n \n
\n\n
\n \n
\n \n
\n\n
\n \n
\n \n
\n
\n );\n }\n}\n\nexport default HomeButtons;","import React from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport './MapMobile.css'\nimport JudeteDataService from './services/JudeteDataService';\nimport unixTimeToDateString from './services/Date';\nimport config from './config';\nimport HomeButtons from './homeButtons/HomeButtons';\n\n\nclass HeaderSection extends React.Component {\n\n render() {\n return (\n
\n \"company-logo\"\n
\n
LICITATII IMOBILIARE
\n
{config.version}
\n
\n
\n );\n }\n}\n\nclass TotaluriMobil extends React.Component {\n\n render() {\n return (\n
\n
Total la data { unixTimeToDateString(this.props.data) }
\n
{this.props.anunturi} Anunturi
\n
{this.props.anunturiAzi} Anunturi astazi
\n
{this.props.licitatii} Licitatii astazi
\n
\n )\n }\n}\n\nclass Salvata extends React.Component {\n render() {\n if ( this.props.salvata === 1 ) {\n return (\n I\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nclass Raportata extends React.Component {\n render() {\n if ( this.props.raportata === 1 ) {\n return (\n R\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\n\nclass DetailsDropDown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n licitatiiSelectate: [],\n licitatiiAll: []\n }\n }\n\n componentDidMount() {\n // Incerc sa iau din cache in loc sa mai fac un nou request\n if (!!JudeteDataService.lastGetRaportDataJudet && JudeteDataService.lastGetRaportDataJudet.judet === this.props.judet) {\n this.setState({\n licitatiiSelectate: JudeteDataService.lastGetRaportDataJudet.licitatii_selectate,\n licitatiiAll: JudeteDataService.lastGetRaportDataJudet.licitatii_all\n });\n\n JudeteDataService.licitatiiAll = JudeteDataService.lastGetRaportDataJudet.licitatii_all;\n JudeteDataService.licitatiiAllAnunturiCount = JudeteDataService.lastGetRaportDataJudet.anunturi_count;\n JudeteDataService.licitatiiAllJud = this.props.judet;\n }\n else {\n /**\n * Response contine datele unui raport pentru un judet\n * judet = \"\"\n * licitatii_selectate - [ { id: 0, price_mp: 0, detalii: \"\", salvata: 1 sau 0, \"raportata\": 1 sau 0 }, ... ]\n * licitatii_all - lista cu obiecte licitatii simplificate: LicitatieSimplificataDetails\n * anunturi_count - numarul de anunturi din baza de date, pentru judetul selectat\n */\n JudeteDataService.getRaportDataJudet(this.props.judet).then( response => {\n this.setState({\n licitatiiSelectate: response.licitatii_selectate,\n licitatiiAll: response.licitatii_all\n });\n JudeteDataService.lastGetRaportDataJudet = response;\n JudeteDataService.licitatiiAll = response.licitatii_all;\n JudeteDataService.licitatiiAllJud = this.props.judet;\n JudeteDataService.licitatiiAllAnunturiCount = response.anunturi_count;\n });\n }\n\n }\n\n downloadReport(judet) {\n JudeteDataService.downloadReport(judet).then( response => {\n\n if ( response.status !== 200) {\n alert(\"Not posible. Server error\");\n return;\n }\n\n response.blob().then( blob => {\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = judet + '.pdf';\n\n // Salvez detele pentru a sti ce judet sa deschid in pagina principala\n JudeteDataService.dropJud = judet;\n\n a.click();\n })\n }, (reason) => {\n alert(\"Not posible. \" + reason);\n });\n }\n\n isLastSelected(licitatieId) {\n return parseInt(JudeteDataService.lastDropdownSelectedId) === parseInt(licitatieId);\n }\n\n render() {\n return (\n
\n
{this.props.anunturi} Anunturi
\n
{this.props.licitatii} Licitatii
\n { this.state.licitatiiSelectate.map( (l, index) => (\n\n \n
\n {l.id} \n { parseFloat(l.price_mp).toFixed(2) + \" EUR/mp\" }\n \n \n
\n \n \n ))}\n
this.downloadReport( this.props.judet )}>Descarca raport
\n \n
Toate
\n \n
\n )\n }\n}\n\nclass JudeteMobil extends React.Component {\n\n // Jud este de forma\n // nume = \"\"\n // anunturi = 0\n // licitatii = 0\n // enabled = 0 \n handleJudetClick(jud) {\n return (e) => {\n // Trimit la Map Component, judetul pe care s-a facut click si pozitia cursorului\n this.props.onClick(jud);\n }\n }\n\n cssClasses(jud) {\n let cssString = \"\";\n\n if ( jud.nume === this.props.judet ) {\n cssString += \"name-selected \";\n }\n else {\n cssString += \"name-not-selected \";\n }\n\n if ( jud.enabled === 1) {\n cssString += \"enabled\";\n }\n else {\n cssString += \"not-enabled\";\n }\n\n return cssString;\n }\n\n isSelected(jud) {\n return jud === this.props.details.judet;\n }\n\n render() {\n // Judet este un obiect de forma { nume: \"nume\", anunturi: 0, licitatii: 0 }\n return (\n
\n {this.props.judete.map( (judet, index) => (\n
\n
\n
{judet.nume}
\n
{judet.licitatii}
\n
\n\n { this.isSelected(judet.nume) && \n }\n\n
\n ))}\n
\n );\n }\n}\n\nclass MapMobile extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n dataScanare: 0,\n numarAnunturi: 0,\n numarAnunturiAzi: 0,\n numarLicitatii: 0,\n judetSelectat: \"\",\n judete: [],\n details: {\n judet: \"selecteaza judet\",\n jud_anunturi: 0,\n jud_licitatii: 0\n },\n licitatiiSalvate: []\n }\n }\n\n sendEvent = () => {\n if(window.location.hostname === 'localhost' || window.location.hostname.indexOf('192.168.0') === 0) {\n return;\n }\n\n if(!sessionStorage.getItem('visit')) {\n sessionStorage.setItem('visit', true);\n\n fetch('https://api.ipify.org?format=json')\n .then((ipResp) => ipResp.json().then((ipJson) => {\n fetch('https://09mclyfv7k.execute-api.eu-central-1.amazonaws.com/prod/log_event', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({type: 'visit', name: 'licitatii.binaryfusion.ro', from: ipJson}),\n }).then((response) => response.json().then((responseData) => {\n sessionStorage.setItem('success', responseData.EventId);\n }));\n })\n );\n }\n }\n\n componentDidMount() {\n this.sendEvent();\n\n /**\n * Judete este o lista cu obiecte de forma\n * nume = \"\"\n * anunturi = 0\n * licitatii = 0\n * enabled = 0 este 1 doar cand pot descarca raportul\n */\n JudeteDataService.getJudData().then( response => {\n JudeteDataService.lastResponse = response;\n\n // Resetez id-ul licitatiei selectate sa nu coloreze rand din lista totala de licitatii\n JudeteDataService.licitatiiAllSelected = 0;\n\n // Filtrez judetele care nu au nume\n let judete = response.judete\n judete = judete.filter(j => j.nume.trim() !== \"\")\n judete = judete.filter(j => j.nume.trim() !== \"jud.\")\n\n this.setState({\n dataScanare: response.data_scanare,\n numarAnunturi: response.numar_anunturi,\n numarAnunturiAzi: response.numar_anunturi_azi,\n numarLicitatii: response.numar_licitatii,\n licitatiiSalvate: response.licitatii_salvate,\n judete: judete\n });\n\n // Redeschid ultimul judet selectat. Cazul in care revin de la pagina de detalii: Licitatie.js\n if ( !!JudeteDataService.dropJud ) {\n this.onJudetClick( { nume: JudeteDataService.dropJud } );\n }\n\n });\n }\n\n\n // Jud este de forma\n // nume = \"\"\n // anunturi = 0\n // licitatii = 0\n // enabled = 0 \n onJudetClick(jud) {\n\n if ( jud.enabled === 0 ) {\n // Daca nu este activ nu fac nimic\n return;\n }\n if ( this.state.details.judet === jud.nume ) {\n // Daca este selectat, il deselectez\n this.setState({ \n judetSelectat: null,\n details: {\n judet: null,\n jud_anunturi: 0,\n jud_licitatii: 0\n }\n });\n }\n else {\n let jud_data = this.state.judete.find( j => j.nume.indexOf(jud.nume) !== -1)\n\n if ( !jud_data ) {\n jud_data = { anunturi: 0, licitatii: 0 }\n }\n\n this.setState({ \n judetSelectat: jud.nume,\n details: {\n judet: jud.nume,\n jud_anunturi: jud_data.anunturi,\n jud_licitatii: jud_data.licitatii\n }\n });\n }\n }\n\n render() {\n return (\n
\n \n\n \n\n \n\n this.onJudetClick(jud) }\n details={ this.state.details }\n salvate={ this.state.licitatii } />\n
\n )\n }\n\n}\n\nexport default MapMobile;\n","import React from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport './HomeButtons.css';\n\nclass HomeButtons extends React.Component {\n\n render() {\n return (\n
\n\n
\n
\n
\n\n
\n \n
\n \n
\n\n
\n \n
\n \n
\n\n
\n \n
\n \n
\n
\n );\n }\n}\n\nexport default HomeButtons;","import React from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport './MapMobile.css'\nimport JudeteDataService from './services/JudeteDataService';\nimport unixTimeToDateString from './services/Date';\nimport config from './config';\nimport AnunturiHomeButtons from './homeButtons/AnunturiHomeButtons';\n\n\nclass HeaderSection extends React.Component {\n\n render() {\n return (\n
\n \"company-logo\"\n
\n
LICITATII IMOBILIARE
\n
{config.version}
\n
\n
\n );\n }\n}\n\nclass TotaluriMobil extends React.Component {\n\n render() {\n return (\n
\n
All time anunturi
\n
{ unixTimeToDateString(this.props.data) }
\n
{this.props.anunturi} Anunturi
\n
\n )\n }\n}\n\nclass Salvata extends React.Component {\n render() {\n if ( this.props.salvata === 1 ) {\n return (\n I\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nclass Raportata extends React.Component {\n render() {\n if ( this.props.raportata === 1 ) {\n return (\n R\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\n\nclass DetailsDropDown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n licitatiiSelectate: [],\n licitatiiAll: [],\n anunturiAll: []\n }\n }\n\n componentDidMount() {\n // Incerc sa iau din cache in loc sa mai fac un nou request\n if (!!JudeteDataService.lastResponseAnunturiData && JudeteDataService.lastResponseAnunturiData.judet === this.props.judet) {\n this.setState({\n licitatiiSelectate: [],\n anunturiAll: JudeteDataService.lastResponseAnunturiData.anunturi_all\n });\n\n JudeteDataService.anunturiAll = JudeteDataService.lastResponseAnunturiData.anunturi_all;\n JudeteDataService.anunturiAllAnunturiCount = JudeteDataService.lastResponseAnunturiData.anunturi_count;\n JudeteDataService.anunturiAllJud = this.props.judet;\n }\n else {\n /**\n * Response contine datele unui raport pentru un judet\n * judet = \"\"\n * licitatii_selectate - [ { id: 0, price_mp: 0, detalii: \"\", salvata: 1 sau 0, \"raportata\": 1 sau 0 }, ... ]\n * licitatii_all - lista cu obiecte licitatii simplificate: LicitatieSimplificataDetails\n * anunturi_count - numarul de anunturi din baza de date, pentru judetul selectat\n */\n JudeteDataService.getRaportDataJudet(this.props.judet).then( response => {\n this.setState({\n licitatiiSelectate: [],\n anunturiAll: response.anunturi_all\n });\n JudeteDataService.lastResponseAnunturiData = response;\n JudeteDataService.anunturiAll = response.anunturi_all;\n JudeteDataService.anunturiAllJud = this.props.judet;\n JudeteDataService.anunturiAllAnunturiCount = response.anunturi_count;\n });\n }\n\n }\n\n downloadGraficAnunturi(judet) {\n JudeteDataService.downloadGraficAnunturi(judet).then( response => {\n\n if ( response.status !== 200) {\n alert(\"Not posible. Server error\");\n return;\n }\n\n response.blob().then( blob => {\n let url = window.URL.createObjectURL(blob);\n let a = document.createElement('a');\n a.href = url;\n a.download = judet + '-Anunturi.jpg';\n\n // Salvez detele pentru a sti ce judet sa deschid in pagina principala\n JudeteDataService.dropJud = judet;\n\n a.click();\n })\n }, (reason) => {\n alert(\"Not posible. \" + reason);\n });\n }\n\n isLastSelected(licitatieId) {\n return parseInt(JudeteDataService.lastDropdownSelectedId) === parseInt(licitatieId);\n }\n\n render() {\n return (\n
\n
{this.props.anunturi} Anunturi
\n { this.state.licitatiiSelectate.map( (l, index) => (\n\n \n
\n {l.id} \n { parseFloat(l.price_mp).toFixed(2) + \" EUR/mp\" }\n \n \n
\n \n \n ))}\n
this.downloadGraficAnunturi( this.props.judet )}>Descarca grafic
\n \n
Ultimele
\n \n
\n )\n }\n}\n\nclass JudeteMobil extends React.Component {\n\n // Jud este de forma\n // nume = \"\"\n // anunturi = 0\n // licitatii = 0\n // enabled = 0 \n handleJudetClick(jud) {\n return (e) => {\n // Trimit la Map Component, judetul pe care s-a facut click si pozitia cursorului\n this.props.onClick(jud);\n }\n }\n\n cssClasses(jud) {\n let cssString = \"\";\n\n if ( jud.nume === this.props.judet ) {\n cssString += \"name-selected \";\n }\n else {\n cssString += \"name-not-selected \";\n }\n\n if ( jud.enabled === 1) {\n cssString += \"enabled\";\n }\n else {\n cssString += \"not-enabled\";\n }\n\n return cssString;\n }\n\n isSelected(jud) {\n return jud === this.props.details.judet;\n }\n\n render() {\n // Judet este un obiect de forma { nume: \"nume\", anunturi: 0, licitatii: 0, enabled: 0 }\n return (\n
\n {this.props.judete.map( (judet, index) => (\n
\n
\n
{judet.nume}
\n
{judet.anunturi}
\n
\n\n { this.isSelected(judet.nume) && \n }\n\n
\n ))}\n
\n );\n }\n}\n\nclass AnunturiMobile extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n dataScanare: 0,\n numarAnunturi: 0,\n numarLicitatii: 0,\n judetSelectat: \"\",\n judete: [],\n details: {\n judet: \"selecteaza judet\",\n jud_anunturi: 0,\n jud_licitatii: 0\n },\n licitatiiSalvate: []\n }\n }\n\n componentDidMount() {\n /**\n * Judete este o lista cu obiecte de forma\n * nume = \"\"\n * anunturi = 0\n * licitatii = 0\n * enabled = 1 tot timpul\n */\n JudeteDataService.getAnunturiJudData().then( response => {\n\n // Filtrez judetele care nu au nume\n let judete = response.judete\n judete = judete.filter(j => j.nume.trim() !== \"\")\n judete = judete.filter(j => j.nume.trim() !== \"jud.\")\n\n this.setState({\n dataScanare: response.data_scanare,\n numarAnunturi: response.numar_anunturi,\n numarLicitatii: response.numar_licitatii,\n judete: judete\n });\n\n // Redeschid ultimul judet selectat. Cazul in care revin de la pagina de detalii: Licitatie.js\n if ( !!JudeteDataService.dropJud ) {\n this.onJudetClick( { nume: JudeteDataService.dropJud } );\n }\n\n });\n }\n\n\n // Jud este de forma\n // nume = \"\"\n // anunturi = 0\n // licitatii = 0\n // enabled = 0 \n onJudetClick(jud) {\n\n if ( jud.enabled === 0 ) {\n // Daca nu este activ nu fac nimic\n return;\n }\n if ( this.state.details.judet === jud.nume ) {\n // Daca este selectat, il deselectez\n this.setState({ \n judetSelectat: null,\n details: {\n judet: null,\n jud_anunturi: 0,\n jud_licitatii: 0\n }\n });\n }\n else {\n let jud_data = this.state.judete.find( j => j.nume.indexOf(jud.nume) !== -1)\n\n if ( !jud_data ) {\n jud_data = { anunturi: 0, licitatii: 0 }\n }\n\n this.setState({ \n judetSelectat: jud.nume,\n details: {\n judet: jud.nume,\n jud_anunturi: jud_data.anunturi,\n jud_licitatii: jud_data.licitatii\n }\n });\n }\n\n // Daca schimb judetul, resetez datele pentru a face un nou request la server\n if ( JudeteDataService.anunturiAllJud !== jud.nume ) {\n JudeteDataService.anunturiAll = [];\n JudeteDataService.anunturiAllJud = \"Se incarca ... \";\n JudeteDataService.anunturiAllAnunturiCount = 0;\n JudeteDataService.lastResponseAnunturiData = null;\n }\n\n }\n\n render() {\n return (\n
\n \n\n \n\n \n\n this.onJudetClick(jud) }\n details={ this.state.details }\n salvate={ this.state.licitatii } />\n
\n )\n }\n\n}\n\nexport default AnunturiMobile;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React, { useEffect, useState } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport JudeteDataService from '../services/JudeteDataService';\n\nimport './Search.css';\n\n// class Search extends React.Component {\nfunction Search() {\n const [searchValue, setSearchValue] = useState('');\n const navigate = useNavigate();\n\n useEffect( () => {\n setSearchValue( JudeteDataService.lastSearchInput );\n }, []);\n\n\n function handleClick() {\n // Sanitaze user input\n const searchText = searchValue.replace(/[^a-z0-9áéíóúñü .,_-]/gim, \" \").trim();\n\n JudeteDataService.searchLicitatiiObs( searchText );\n navigate(\"/searchresults/mobile\");\n }\n\n return (\n
\n\n {/* LISTA JUDETE BUTTON */}\n
Lista judete
\n\n {/* Titlu */}\n
\n
\n
CAUTARE
\n
\n
\n\n\n {/* Input cautare */}\n
\n
\n setSearchValue(e.target.value )}/>\n
\n\n
\n\n
handleClick() }>Cauta
\n
\n )\n\n}\n\nexport default Search;","import React from \"react\";\n\nclass Salvata extends React.Component {\n render() {\n if ( this.props.salvata === 1 ) {\n return (\n I\n )\n }\n else {\n return (\n \n )\n }\n }\n}\n\nexport default Salvata;","import Salvata from \"../Salvata\";\nimport { useNavigate } from \"react-router-dom\";\nimport JudeteDataService from \"../services/JudeteDataService\";\n\nfunction LicitatieRow({licitatie}) {\n\n const navigate = useNavigate();\n\n function handleLicitatieClick() {\n navigate(\"/id/\" + licitatie.id );\n }\n\n function getCssClassName(licitatieId) {\n let classes = \"licitatie-row\";\n if ( JudeteDataService.licitatiiAllSelected === licitatieId ) {\n classes += \" selected\";\n }\n return classes;\n }\n\n return (\n
\n
{licitatie.id}
\n
{licitatie.total_price}
\n
{licitatie.surface}
\n
{ parseFloat(licitatie.price_mp).toFixed(2)}
\n
\n
\n );\n}\n\nexport default LicitatieRow;","import React from \"react\";\n\nimport LicitatieRow from \"./LicitatieRow\";\n\nfunction LicitatiiList({licitatii}) {\n\n\n return (\n
\n { licitatii.map( (l, index) => {\n return \n })}\n
\n );\n}\n\nexport default LicitatiiList;","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport LicitatiiList from \"../list/LicitatiiList\";\nimport Salvata from \"../Salvata\";\nimport JudeteDataService from '../services/JudeteDataService';\n\nimport './SearchResults.css';\n\nconst ORDER_BY_MP_PRICE = 1;\nconst ORDER_BY_SURFACE = 2;\nconst ORDER_BY_TOTAL_PRICE = 3;\nconst ORDER_BY_ID = 4;\n\nclass ResultsRowsMobil extends React.Component {\n\n render() {\n return (\n
\n \n
\n
this.props.orderBy(ORDER_BY_ID) }>Id ↓
\n
this.props.orderBy(ORDER_BY_TOTAL_PRICE) }>Total ↓
\n
this.props.orderBy(ORDER_BY_SURFACE) }>Surface↓
\n
this.props.orderBy(ORDER_BY_MP_PRICE) }>P/mp ↓
\n
\n
\n\n \n\n
\n )\n }\n}\n\nclass SearchResults extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n results: [],\n message: \"Se cauta...\"\n }\n }\n\n orderBy(criteriu) {\n let sortedLicitatii;\n if ( criteriu === ORDER_BY_MP_PRICE ) {\n sortedLicitatii = this.state.results.sort( function( licitatieA, licitatieB ) {\n return licitatieA.price_mp - licitatieB.price_mp;\n });\n }\n \n if ( criteriu === ORDER_BY_SURFACE ) {\n sortedLicitatii = this.state.results.sort( function( licitatieA, licitatieB ) {\n return licitatieA.surface - licitatieB.surface;\n });\n }\n\n if ( criteriu === ORDER_BY_TOTAL_PRICE ) {\n sortedLicitatii = this.state.results.sort( function( licitatieA, licitatieB ) {\n return licitatieA.total_price - licitatieB.total_price;\n });\n }\n\n if ( criteriu === ORDER_BY_ID ) {\n sortedLicitatii = this.state.results.sort( function( licitatieA, licitatieB ) {\n return parseInt(licitatieA.id) - parseInt(licitatieB.id);\n });\n }\n\n this.setState({\n results: sortedLicitatii,\n })\n }\n\n\n componentDidMount(){\n if ( JudeteDataService.searchInProgress ) {\n this.setState({ message: \"Se cauta...\"});\n }\n else {\n this.setState({ message: JudeteDataService.searchResults.length + \" Rezultate\"});\n }\n\n this.setState({ results: JudeteDataService.searchResults });\n \n // Inregistrez si acest callback in caz ca nu au venit inca rezultatele\n // Dupa ce primesc raspunsul se va anula.\n // Pot sti ca, cautarea este in progress cat timp exista functia in JudeteDataService.doOnSearch\n JudeteDataService.registerOnSearchReceived( (searchResults) => {\n this.setState({ \n results: searchResults,\n message: searchResults.length + \" Rezultate\" \n });\n });\n }\n\n render() {\n return (\n
\n\n {/* LISTA JUDETE BUTTON */}\n
Lista judete
\n\n {/* CARDUL REZULTATE GASITE */}\n
\n
{this.state.message}
\n
\n\n { !!this.state.results && this.orderBy(c)} /> } \n\n
\n );\n }\n\n}\n\nexport default SearchResults;","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';\nimport './index.css';\nimport Anunt from './anunt/AnuntGeneral';\nimport AllAnunturi from './allAnunturi/AllAnunturi';\nimport Contact from './contact/Contact';\nimport Map from './Map';\nimport MapMobile from './MapMobile';\nimport AnunturiMobile from './AnunturiMobile';\nimport reportWebVitals from './reportWebVitals';\nimport Search from './search/Search';\nimport SearchResults from './search/SerchResults';\n\nlet savedJud = null;\n\n// Pentru a afisa o alta componenta daca se foloseste ecran mic\nfunction MapVersion() {\n const isMobile = window.innerWidth < 800;\n if ( isMobile ) {\n return ;\n }\n else {\n return ;\n }\n}\n\nfunction MapVersionAnunturi() {\n const isMobile = window.innerWidth < 800;\n if ( isMobile ) {\n return ;\n }\n else {\n return ;\n }\n}\n\nconst container = document.getElementById('root')\nconst root = createRoot(container)\n\nroot.render(\n \n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n } onClose={ (jud) => savedJud = jud } />\n\n } />\n \n \n ,\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}