{"version":3,"sources":["serviceWorker.ts","Components/InfoWindowComponents/DetailsWindow.tsx","Components/InfoWindowComponents/InfoWindowCustom.tsx","Utils/Utils.ts","Components/MapComponent.tsx","Components/InfoWindowComponents/SlidingPaneCustom.tsx","Components/ClusterMarkersComponent.tsx","Components/ClusterKML.tsx","Components/ListComponent.tsx","Components/HeaderComponent.tsx","Components/MainComponent.tsx","Components/LoaderComponent.tsx","index.tsx","assets/notfound.png"],"names":["Boolean","window","location","hostname","match","DetailsWindow","props","_images","_filterRows","rowNumbers","Math","floor","marker","FilterValues","PinFilterValues","length","rows","i","push","map","startIndex","className","style","display","Label","margin","padding","filterName","undefined","key","value","_table","details","metadata","data","type","content","title","body","_columns","_gallery","Images","image","index","src","onClick","setState","currentIndex","_closeDialog","hideDialog","closeCallback","state","this","borderRadius","Dialog","hidden","onDismiss","responsiveMode","ResponsiveMode","medium","minWidth","dialogContentProps","DialogType","normal","marginBottom","views","DialogFooter","DefaultButton","text","React","InfoWindowCustom","_openDialog","_onWindowClose","number","onCloseClick","overflow","filter","MainComponent","allowedFilters","filterProperty","featuredImage","require","loader","CircularProgress","Utils","_isMobile","setIsMobile","getIsMobile","clasa","_map","SlidingPaneCustom","onAfterOpen","innerHeight","document","getElementsByClassName","setAttribute","isOpen","from","width","onRequestClose","Icon","float","iconName","ClusterMarkersComponent","_markers","markers","lat","lng","icon","iconUrl","position","isOpenId","id","_markerInformation","_closeCallback","styles","height","url","gridSize","ClusterKML","KMLFileURL","options","preserveViewport","Map","_markerCluster","_markerKML","visible","zoom","kmlUrl","object","getElementById","headerHeight","offsetHeight","forceUpdate","nextProps","nextState","console","log","GoogleMapExample","compose","withProps","googleMapURL","loadingElement","containerElement","mapElement","withScriptjs","withGoogleMap","ref","defaultZoom","defaultCenter","addEventListener","event","getZoom","getCenter","long","ListComponent","_printData","_generatePDF","fontSize","item","Object","keys","_onColumnClick","ev","column","columns","items","newColumns","slice","currColumn","currCol","forEach","newCol","isSortedDescending","isSorted","newItems","_copyAndSort","fieldName","name","maxWidth","innerWidth","onColumnClick","onRender","ExpansionPanel","ExpansionPanelSummary","expandIcon","marginRight","Typography","whiteSpace","ExpansionPanelDetails","filters","properties","property","_allItems","printObj","Denumire","iconURL","columnsXLS","Column","label","marginTop","textAlign","filename","element","Sheet","fileName","blob","loading","error","DetailsList","selectionMode","SelectionMode","none","layoutMode","DetailsListLayoutMode","fixedColumns","isHeaderVisible","Card","boxShadow","columnKey","sort","a","b","Header","_lastUsed","_changeMode","mode","changeMode","_filters","minHeight","filtersData","_filterButton","TooltipHost","tooltipProps","onRenderContent","maxValue","Number","max","minValue","min","intervalValue","onChange","onTooltipToggle","isTooltipVisible","addIntervalFilter","delay","TooltipDelay","zero","directionalHint","DirectionalHint","bottomCenter","root","iconProps","anchorEl","currentTarget","Menu","keepMounted","open","onClose","MenuItem","addListFilter","List","paddingBottom","onRenderCell","_onRenderCell","dateFilters","refElement","isCalloutVisible","Callout","gapSpace","target","current","role","_onDismissDatePicker","minDate","maxDate","small","keepOpenOnDateSelect","isOutsideRange","orientation","startDate","startDateId","startId","endDate","endDateId","endId","onDatesChange","focusedInput","onFocusChange","dates","start","moment","format","startShow","end","endShow","addDateFilter","marginLeft","flexGrow","borderBottom","cursor","locale","_dateFilters","values","searchValue","filtersNo","backgroundColor","SearchBox","placeholder","onSearch","newValue","addSearchFilter","color","openMenu","categorii","_refFiltersList","_refCategoriesList","_refHeader","_legenda","isMenuOpen","_closeMenu","clear","border","list","categories","_onRenderCategoryCell","_onRenderFilterCell","zIndex","_openMenu","paddingTop","Checkbox","checked","selected","_determineValidMarkers","_refresh","textOverflow","calloutProps","splice","ok","j","elements","_isMarkerValid","toLowerCase","includes","interval","_addSearchFilter","query","findIndex","x","_addIntervalFilter","_addDateFilter","_addListFilter","test","navigator","userAgent","showInPinWindow","boundariesFileURL","header","Loader","modalProps","isBlocking","Spinner","size","SpinnerSize","large","request","initializeIcons","ReactDOM","render","method","headers","authentication","mapId","URL","href","searchParams","get","response","Error","JSON","parse","serviceWorker","ready","then","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.ed1d0b3b.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {\r\n Dialog,\r\n DialogType,\r\n DialogFooter,\r\n ResponsiveMode\r\n} from \"office-ui-fabric-react/lib/Dialog\";\r\nimport { DefaultButton } from \"office-ui-fabric-react/lib/Button\";\r\n// @ts-ignore\r\nimport Carousel from \"react-images\";\r\n\r\nimport \"../CSS/details-window.css\";\r\nimport { Label } from \"office-ui-fabric-react\";\r\n\r\ninterface IProps {\r\n hideDialog: boolean;\r\n marker: any;\r\n closeCallback: any;\r\n}\r\n\r\ninterface IState {\r\n hideDialog: boolean;\r\n\r\n currentIndex: number;\r\n}\r\n\r\nexport class DetailsWindow extends React.Component {\r\n private _images: any = [];\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.props.marker.details.Images.map((image: any) => {\r\n this._images.push({\r\n src: image\r\n });\r\n });\r\n\r\n this.state = {\r\n hideDialog: this.props.hideDialog,\r\n currentIndex: 0\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({\r\n hideDialog: props.hideDialog\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _filterRows = () => {\r\n let rowNumbers = Math.floor(\r\n this.props.marker.FilterValues.PinFilterValues.length / 3\r\n );\r\n\r\n let rows = [];\r\n for (let i = 0; i < rowNumbers; i++) {\r\n rows.push(i * 3);\r\n }\r\n\r\n rows.map(startIndex => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n });\r\n\r\n switch (this.props.marker.FilterValues.PinFilterValues.length % 3) {\r\n case 0: {\r\n return;\r\n }\r\n case 1: {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n case 2: {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n };\r\n\r\n private _table = () => {\r\n return (\r\n
\r\n {this.props.marker.details.metadata.map((data: any) => {\r\n if (data.type == \"highlight | table | row\") {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n })}\r\n
\r\n );\r\n };\r\n\r\n private _columns = () => {\r\n return (\r\n
\r\n {this.props.marker.details.metadata.map((data: any) => {\r\n if (data.type == \"highlight | columns | row\") {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n })}\r\n
\r\n );\r\n };\r\n\r\n private _gallery = () => {\r\n return (\r\n
\r\n {this.props.marker.details.Images.map((image: any, index: number) => {\r\n return (\r\n
\r\n {\r\n this.setState({ currentIndex: index });\r\n }}\r\n />\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n private _closeDialog = (): void => {\r\n this.setState({ hideDialog: true });\r\n this.props.closeCallback();\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { InfoWindow } from \"react-google-maps\";\r\nimport { Label } from \"office-ui-fabric-react/lib/Label\";\r\nimport { DefaultButton } from \"office-ui-fabric-react/lib/Button\";\r\nimport { DetailsWindow } from \"./DetailsWindow\";\r\nimport \"../CSS/info-window.css\";\r\nimport Img from \"react-image\";\r\nimport { Loader } from \"../LoaderComponent\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport { MainComponent } from \"../MainComponent\";\r\n\r\ninterface IProps {\r\n closeCallback: any;\r\n marker: any;\r\n}\r\n\r\ninterface IState {\r\n hideDialog: boolean;\r\n}\r\n\r\nexport class InfoWindowCustom extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n hideDialog: true,\r\n };\r\n }\r\n\r\n public render() {\r\n let number = Math.floor(\r\n 12 / this.props.marker.FilterValues.PinFilterValues.length\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
{this.props.marker.title}
\r\n\r\n
\r\n
\r\n
\r\n {this.props.marker.FilterValues.PinFilterValues.map(\r\n (filter: any, i: number) => {\r\n if (MainComponent.allowedFilters[filter.filterProperty]) {\r\n return (\r\n \r\n
\r\n \r\n {filter.filterName}\r\n \r\n \r\n {filter.key == undefined\r\n ? filter.value\r\n : filter.key}\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n private _openDialog = () => {\r\n this.setState({\r\n hideDialog: false,\r\n });\r\n };\r\n\r\n private _closeDialog = () => {\r\n this.setState({\r\n hideDialog: true,\r\n });\r\n };\r\n\r\n private _onWindowClose = () => {\r\n this.props.closeCallback();\r\n };\r\n}\r\n","export class Utils {\r\n private static _isMobile: boolean;\r\n\r\n public static setIsMobile = (value: boolean) => {\r\n Utils._isMobile = value;\r\n };\r\n\r\n public static getIsMobile = (): boolean => {\r\n return Utils._isMobile;\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { compose, withProps } from \"recompose\";\r\nimport {\r\n withGoogleMap,\r\n GoogleMap,\r\n withScriptjs,\r\n KmlLayer,\r\n} from \"react-google-maps\";\r\nimport { ClusterMarkersComponent } from \"./ClusterMarkersComponent\";\r\nimport { ClusterKML } from \"./ClusterKML\";\r\n\r\ninterface IProps {\r\n markers: any[];\r\n zoom: number;\r\n lat: number;\r\n lng: number;\r\n kmlUrl: string;\r\n}\r\ninterface IState {\r\n markers: any[];\r\n\r\n visible: boolean;\r\n zoom: number;\r\n lat: number;\r\n lng: number;\r\n height: number;\r\n kmlUrl: string;\r\n}\r\n\r\nlet clasa: any;\r\nlet _map: any;\r\n\r\nexport class Map extends React.Component {\r\n private _markerCluster: any;\r\n private _markerKML: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n clasa = this;\r\n\r\n this.state = {\r\n markers: props.markers,\r\n visible: true,\r\n zoom: this.props.zoom,\r\n lat: this.props.lat,\r\n lng: this.props.lng,\r\n height: window.innerHeight,\r\n kmlUrl: this.props.kmlUrl,\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n let object = document.getElementById(\"header\");\r\n let headerHeight: number = 0;\r\n\r\n if (object != null) {\r\n headerHeight = object.offsetHeight;\r\n }\r\n\r\n this.setState({ height: window.innerHeight - headerHeight }, () => {\r\n this.forceUpdate();\r\n });\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IProps, nextState: IState) {\r\n if (\r\n this.state.height != nextState.height &&\r\n this.state.lat != 0 &&\r\n this.state.lng != 0 &&\r\n this.state.zoom != 0\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({ markers: props.markers });\r\n\r\n if (this._markerCluster != undefined) {\r\n this._markerCluster.setState({ markers: props.markers });\r\n }\r\n if (this._markerKML != undefined) {\r\n this._markerKML.setState({ markers: props.markers });\r\n }\r\n\r\n // if (\r\n // this.state.zoom == 0 ||\r\n // this.state.lat == 0 ||\r\n // this.state.lng == 0 ||\r\n // this.state.kmlUrl == \"\"\r\n // ) {\r\n // console.log(\"In props\", props.zoom, props.lat, props.lng, props.kmlUrl);\r\n // console.log(\"In props map\", _map);\r\n\r\n // this.setState({\r\n // markers: props.markers,\r\n // zoom: props.zoom,\r\n // lat: props.lat,\r\n // lng: props.lng,\r\n // kmlUrl: props.kmlUrl\r\n // });\r\n\r\n // if (_map != null) {\r\n // _map.forceUpdate();\r\n // }\r\n // }\r\n }\r\n\r\n public render() {\r\n console.log(\r\n \"Folosite\",\r\n this.state.zoom,\r\n this.state.lat,\r\n this.state.lng,\r\n this.state.kmlUrl\r\n );\r\n\r\n const GoogleMapExample = compose(\r\n withProps({\r\n googleMapURL:\r\n \"https://maps.googleapis.com/maps/api/js?key=AIzaSyDWM9_q_-F_3dWiZRhIPRmXH-1lGERjy0M&v=3.exp&libraries=geometry,drawing,places&language=ro®ion=RO\",\r\n loadingElement:
,\r\n containerElement:
,\r\n mapElement:
,\r\n }),\r\n withScriptjs,\r\n withGoogleMap\r\n )(() => (\r\n (_map = map)}\r\n defaultZoom={this.state.zoom}\r\n defaultCenter={{ lat: this.state.lat, lng: this.state.lng }}\r\n >\r\n (this._markerCluster = marker)}\r\n markers={this.state.markers}\r\n />\r\n (this._markerKML = marker)}\r\n markers={this.state.markers}\r\n />\r\n {this.state.kmlUrl != null && (\r\n \r\n )}\r\n \r\n ));\r\n\r\n return ;\r\n }\r\n}\r\n\r\nwindow.addEventListener(\"resize\", function (event) {\r\n let object = document.getElementById(\"header\");\r\n let height: number = 0;\r\n\r\n if (object != null) {\r\n height = object.offsetHeight;\r\n }\r\n\r\n if (_map != null) {\r\n clasa.setState({\r\n height: window.innerHeight - height,\r\n zoom: _map.getZoom(),\r\n lat: _map.getCenter().lat(),\r\n long: _map.getCenter().lng(),\r\n });\r\n }\r\n});\r\n","import * as React from \"react\";\r\nimport { DetailsWindow } from \"./DetailsWindow\";\r\n// @ts-ignore\r\nimport SlidingPane from \"react-sliding-pane\";\r\nimport \"../CSS/slide-pane.css\";\r\nimport { Label, DefaultButton, Icon } from \"office-ui-fabric-react\";\r\nimport Img from \"react-image\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\ninterface IProps {\r\n closeCallback: any;\r\n marker: any;\r\n}\r\n\r\ninterface IState {\r\n hideDialog: boolean;\r\n}\r\n\r\nexport class SlidingPaneCustom extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n hideDialog: true,\r\n };\r\n }\r\n\r\n public render() {\r\n let number = Math.floor(\r\n 12 / this.props.marker.FilterValues.PinFilterValues.length\r\n );\r\n\r\n return (\r\n
\r\n \r\n {\r\n let margin = window.innerHeight - 534;\r\n document\r\n .getElementsByClassName(\"slide-pane_from_bottom\")[0]\r\n .setAttribute(\"style\", `margin-top: ${margin}px`);\r\n }}\r\n isOpen={true}\r\n from=\"bottom\"\r\n width=\"100%\"\r\n onRequestClose={this.props.closeCallback}\r\n >\r\n \r\n
{this.props.marker.title}
\r\n\r\n
\r\n {this.props.marker.FilterValues.PinFilterValues.map(\r\n (filter: any, i: number) => {\r\n return (\r\n \r\n
\r\n \r\n {filter.filterName}\r\n \r\n \r\n {filter.key == undefined ? filter.value : filter.key}\r\n \r\n
\r\n
\r\n );\r\n }\r\n )}\r\n
\r\n
\r\n
\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _openDialog = () => {\r\n this.setState({\r\n hideDialog: false,\r\n });\r\n };\r\n\r\n private _closeDialog = () => {\r\n this.setState({\r\n hideDialog: true,\r\n });\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport MarkerClusterer from \"react-google-maps/lib/components/addons/MarkerClusterer\";\r\nimport { Marker } from \"react-google-maps\";\r\nimport { InfoWindowCustom } from \"./InfoWindowComponents/InfoWindowCustom\";\r\nimport { Utils } from \"../Utils/Utils\";\r\nimport { SlidingPaneCustom } from \"./InfoWindowComponents/SlidingPaneCustom\";\r\n\r\ninterface IProps {\r\n markers: any[];\r\n}\r\n\r\ninterface IState {\r\n markers: any[];\r\n isOpenId: number;\r\n}\r\n\r\nexport class ClusterMarkersComponent extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n markers: props.markers,\r\n isOpenId: 0,\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({\r\n markers: props.markers,\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n \r\n {this._markers()}\r\n \r\n );\r\n }\r\n\r\n private _markers = () => {\r\n return (\r\n
\r\n {this.state.markers.map((marker) => {\r\n if (marker.location.lat != null && marker.location.lng != null) {\r\n return (\r\n {\r\n this.setState({ isOpenId: marker.id });\r\n }}\r\n >\r\n {this.state.isOpenId == marker.id &&\r\n this._markerInformation(marker)}\r\n \r\n );\r\n }\r\n })}\r\n
\r\n );\r\n };\r\n\r\n private _markerInformation = (marker: any) => {\r\n if (Utils.getIsMobile()) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n private _closeCallback = () => {\r\n this.setState({ isOpenId: 0 });\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { KmlLayer } from \"react-google-maps\";\r\n\r\ninterface IProps {\r\n markers: any[];\r\n}\r\n\r\ninterface IState {\r\n markers: any[];\r\n}\r\n\r\nexport class ClusterKML extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n markers: props.markers\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({\r\n markers: props.markers\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <>\r\n {this.state.markers.map((marker, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {\r\n DetailsList,\r\n DetailsListLayoutMode,\r\n SelectionMode,\r\n IColumn,\r\n} from \"office-ui-fabric-react/lib/DetailsList\";\r\nimport { Utils } from \"../Utils/Utils\";\r\nimport ExpansionPanel from \"@material-ui/core/ExpansionPanel\";\r\nimport ExpansionPanelSummary from \"@material-ui/core/ExpansionPanelSummary\";\r\nimport ExpansionPanelDetails from \"@material-ui/core/ExpansionPanelDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { Label, DefaultButton } from \"office-ui-fabric-react\";\r\n// @ts-ignore\r\nimport Workbook from \"react-xlsx-workbook\";\r\nimport {\r\n PDFDownloadLink,\r\n Document,\r\n Page,\r\n Text,\r\n View,\r\n} from \"@react-pdf/renderer\";\r\nimport { Card } from \"@material-ui/core\";\r\nimport \"./CSS/ListComponent.css\";\r\n\r\ninterface IProps {\r\n markers: any[];\r\n filters: any[];\r\n}\r\n\r\ninterface IState {\r\n columns: IColumn[];\r\n items: IListItem[];\r\n}\r\n\r\ninterface IListItem {\r\n icon: string;\r\n title: string;\r\n properties: any;\r\n}\r\n\r\nexport class ListComponent extends React.Component {\r\n private _columns: IColumn[] = [];\r\n private _printData: any[] = [];\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n if (Utils.getIsMobile()) {\r\n this._columns.push({\r\n key: \"column1\",\r\n name: \"Name\",\r\n minWidth: 100,\r\n maxWidth: window.innerWidth - 20,\r\n onColumnClick: this._onColumnClick,\r\n onRender: (item: IListItem) => {\r\n return (\r\n \r\n }>\r\n \r\n \r\n {item.title}\r\n \r\n \r\n \r\n
\r\n {props.filters.map((filter: any) => {\r\n return (\r\n <>\r\n \r\n {filter.name}\r\n \r\n \r\n {item.properties[filter.property]}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n },\r\n });\r\n\r\n this.setState({\r\n columns: this._columns,\r\n });\r\n } else {\r\n this._columns.push({\r\n key: \"column1\",\r\n name: \"File Type\",\r\n iconName: \"Page\",\r\n minWidth: 16,\r\n maxWidth: 16,\r\n onColumnClick: this._onColumnClick,\r\n onRender: (item: IListItem) => {\r\n return ;\r\n },\r\n });\r\n this._columns.push({\r\n key: \"column2\",\r\n name: \"Name\",\r\n minWidth: 20,\r\n maxWidth: 300,\r\n onColumnClick: this._onColumnClick,\r\n onRender: (item: IListItem) => {\r\n return
{item.title}
;\r\n },\r\n });\r\n\r\n let i: number = 2;\r\n\r\n if (props.filters != undefined) {\r\n for (let filter of props.filters) {\r\n i++;\r\n\r\n this._columns.push({\r\n key: \"column\" + i,\r\n name: filter.name,\r\n minWidth: 20,\r\n maxWidth: 200,\r\n onColumnClick: this._onColumnClick,\r\n onRender: (item: IListItem) => {\r\n return (\r\n
\r\n {item.properties[filter.property]}\r\n
\r\n );\r\n },\r\n });\r\n }\r\n }\r\n\r\n this.setState({\r\n columns: this._columns,\r\n });\r\n }\r\n\r\n let _allItems = [];\r\n\r\n for (let i = 0; i < props.markers.length; i++) {\r\n let properties: any = {};\r\n\r\n let printObj: any = {\r\n Denumire: props.markers[i].title,\r\n };\r\n\r\n for (let property of props.markers[i].FilterValues.PinFilterValues) {\r\n if (property.key == undefined) {\r\n properties[property.filterProperty] = property.value;\r\n printObj[property.filterName] = property.value;\r\n } else {\r\n properties[property.filterProperty] = property.key;\r\n printObj[property.filterName] = property.key;\r\n }\r\n }\r\n\r\n _allItems.push({\r\n title: props.markers[i].title,\r\n icon: props.markers[i].iconURL,\r\n properties: properties,\r\n });\r\n\r\n this._printData.push(printObj);\r\n }\r\n\r\n this.setState({\r\n items: _allItems,\r\n });\r\n\r\n this.state = {\r\n items: _allItems,\r\n columns: this._columns,\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n let _allItems = [];\r\n for (let i = 0; i < props.markers.length; i++) {\r\n let properties: any = {};\r\n\r\n for (let property of props.markers[i].FilterValues.PinFilterValues) {\r\n if (property.key == undefined) {\r\n properties[property.filterProperty] = property.value;\r\n } else {\r\n properties[property.filterProperty] = property.key;\r\n }\r\n }\r\n\r\n _allItems.push({\r\n title: props.markers[i].title,\r\n icon: props.markers[i].iconURL,\r\n properties: properties,\r\n });\r\n }\r\n\r\n this.setState({\r\n items: _allItems,\r\n });\r\n }\r\n\r\n public render() {\r\n const { columns, items } = this.state;\r\n\r\n let columnsXLS = null;\r\n if (this._printData.length > 0) {\r\n columnsXLS = Object.keys(this._printData[0]).map((key) => {\r\n return ;\r\n });\r\n }\r\n\r\n if (Utils.getIsMobile()) {\r\n return (\r\n <>\r\n \r\n }\r\n >\r\n \r\n {columnsXLS}\r\n \r\n \r\n\r\n \r\n {({ blob, url, loading, error }) =>\r\n loading ? (\r\n \"Loading document...\"\r\n ) : (\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n }\r\n >\r\n \r\n {columnsXLS}\r\n \r\n \r\n\r\n \r\n {({ blob, url, loading, error }) =>\r\n loading ? (\r\n \"Loading document...\"\r\n ) : (\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n private _generatePDF = () => {\r\n return (\r\n \r\n \r\n Lista investitii:\r\n {this._printData.map((item: any) => {\r\n return (\r\n \r\n {Object.keys(item).map((key) => {\r\n return key + \": \" + item[key] + \" / \";\r\n })}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n };\r\n\r\n private _onColumnClick = (\r\n ev: React.MouseEvent,\r\n column: IColumn\r\n ): void => {\r\n const { columns, items } = this.state;\r\n const newColumns: IColumn[] = columns.slice();\r\n const currColumn: IColumn = newColumns.filter(\r\n (currCol) => column.key === currCol.key\r\n )[0];\r\n newColumns.forEach((newCol: IColumn) => {\r\n if (newCol === currColumn) {\r\n currColumn.isSortedDescending = !currColumn.isSortedDescending;\r\n currColumn.isSorted = true;\r\n } else {\r\n newCol.isSorted = false;\r\n newCol.isSortedDescending = true;\r\n }\r\n });\r\n const newItems = this._copyAndSort(\r\n items,\r\n currColumn.fieldName!,\r\n currColumn.isSortedDescending\r\n );\r\n this.setState({\r\n columns: newColumns,\r\n items: newItems,\r\n });\r\n };\r\n\r\n private _copyAndSort(\r\n items: T[],\r\n columnKey: string,\r\n isSortedDescending?: boolean\r\n ): T[] {\r\n const key = columnKey as keyof T;\r\n return items\r\n .slice(0)\r\n .sort((a: T, b: T) =>\r\n (isSortedDescending ? a[key] < b[key] : a[key] > b[key]) ? 1 : -1\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { List } from \"office-ui-fabric-react/lib/components/List/List\";\r\nimport { Label } from \"office-ui-fabric-react/lib/Label\";\r\nimport InputRange from \"react-input-range\";\r\nimport \"react-input-range/lib/css/index.css\";\r\nimport { TooltipHost, TooltipDelay } from \"office-ui-fabric-react/lib/Tooltip\";\r\nimport { DirectionalHint, Callout } from \"office-ui-fabric-react/lib/Callout\";\r\nimport { SearchBox } from \"office-ui-fabric-react/lib/SearchBox\";\r\nimport { DefaultButton } from \"office-ui-fabric-react/lib/Button\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport { Utils } from \"../Utils/Utils\";\r\nimport {\r\n Menu,\r\n MenuItem,\r\n ExpansionPanel,\r\n ExpansionPanelSummary,\r\n ExpansionPanelDetails,\r\n} from \"@material-ui/core\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { DateRangePicker } from \"react-dates\";\r\nimport \"react-dates/initialize\";\r\nimport \"react-dates/lib/css/_datepicker.css\";\r\nimport \"./CSS/date-picker.css\";\r\nimport moment from \"moment\";\r\nimport \"moment/locale/ro\";\r\n\r\ninterface IPickerData {\r\n startDate: any;\r\n startId: string;\r\n endDate: any;\r\n endId: string;\r\n focusedInput: any;\r\n isCalloutVisible: boolean;\r\n refElement: any;\r\n\r\n min: any;\r\n max: any;\r\n}\r\n\r\ninterface IProps {\r\n changeMode: any;\r\n filtersData: any;\r\n\r\n addIntervalFilter: any;\r\n addListFilter: any;\r\n addSearchFilter: any;\r\n addDateFilter: any;\r\n\r\n openMenu: any;\r\n\r\n filtersNo: number;\r\n}\r\n\r\ninterface IState {\r\n mode: number;\r\n intervalValue: any;\r\n searchValue: string;\r\n\r\n dateFilters: IPickerData[];\r\n\r\n filtersNo: number;\r\n\r\n anchorEl: any;\r\n}\r\n\r\nexport class Header extends React.Component {\r\n private _lastUsed: any = null;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n moment.locale(\"ro\");\r\n\r\n let intervalValue = {};\r\n let _dateFilters: IPickerData[] = [];\r\n\r\n if (props.filtersData != undefined) {\r\n props.filtersData.map((filter: any, i: number) => {\r\n if (filter.values == null) {\r\n intervalValue = {\r\n ...intervalValue,\r\n [filter.property]: {\r\n min: Number(filter.min),\r\n max: Number(filter.max),\r\n },\r\n };\r\n }\r\n\r\n if (filter.type == \"date\") {\r\n console.log(\"Filtre aici\", filter.min, moment(filter.min));\r\n\r\n _dateFilters[filter.property] = {\r\n startDate: null,\r\n startId: \"start\" + i,\r\n endDate: null,\r\n endId: \"end\" + i,\r\n focusedInput: \"startDate\",\r\n isCalloutVisible: false,\r\n refElement: React.createRef(),\r\n min: moment(filter.min),\r\n max: moment(filter.max),\r\n };\r\n }\r\n });\r\n }\r\n\r\n console.log(\"Filtru de date\", _dateFilters);\r\n\r\n this.state = {\r\n mode: 1,\r\n intervalValue: intervalValue,\r\n dateFilters: _dateFilters,\r\n searchValue: \"\",\r\n filtersNo: props.filtersNo,\r\n anchorEl: null,\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({\r\n filtersNo: props.filtersNo,\r\n });\r\n }\r\n\r\n public render() {\r\n let text: string = \"\";\r\n if (!Utils.getIsMobile()) {\r\n if (this.state.mode == 1) {\r\n text = \"Lista\";\r\n } else {\r\n text = \"Harta\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {\r\n this.props.addSearchFilter(newValue);\r\n\r\n this.setState({ searchValue: newValue });\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n {this._filters()}\r\n
\r\n \r\n 0 ? \"#CD5C5C\" : \"\",\r\n color: this.props.filtersNo > 0 ? \"white\" : \"\",\r\n }}\r\n text={\"Legenda\"}\r\n onClick={this.props.openMenu}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _changeMode = () => {\r\n let mode: number;\r\n\r\n if (this.state.mode == 1) {\r\n mode = 2;\r\n } else {\r\n mode = 1;\r\n }\r\n\r\n this.setState({ mode: mode });\r\n\r\n this.props.changeMode(mode);\r\n };\r\n\r\n private _filters = () => {\r\n if (Utils.getIsMobile()) {\r\n return (\r\n \r\n }\r\n >\r\n Filtre\r\n \r\n \r\n
\r\n {this.props.filtersData.map((filter: any) => {\r\n return this._filterButton(filter);\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n {this.props.filtersData != undefined\r\n ? this.props.filtersData.map((filter: any) => {\r\n return this._filterButton(filter);\r\n })\r\n : \"\"}\r\n
\r\n );\r\n }\r\n };\r\n\r\n private _filterButton = (filter: any) => {\r\n switch (filter.type) {\r\n case \"intervalInteger\": {\r\n return (\r\n \r\n {\r\n return (\r\n
\r\n {\r\n let intervalValue = this.state.intervalValue;\r\n intervalValue[filter.property] = value;\r\n this.setState({ intervalValue: intervalValue });\r\n\r\n this._lastUsed = filter;\r\n }}\r\n />\r\n
\r\n );\r\n },\r\n }}\r\n onTooltipToggle={(isTooltipVisible: boolean) => {\r\n if (!isTooltipVisible && this._lastUsed != null) {\r\n this.props.addIntervalFilter(\r\n this._lastUsed.name,\r\n this._lastUsed.property,\r\n this.state.intervalValue[this._lastUsed.property]\r\n );\r\n this._lastUsed = null;\r\n }\r\n }}\r\n delay={TooltipDelay.zero}\r\n directionalHint={DirectionalHint.bottomCenter}\r\n styles={{\r\n root: { display: \"inline-block\" },\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n case \"list\": {\r\n let items: any[] = [];\r\n\r\n for (let value of filter.options) {\r\n items.push({\r\n label: filter.name,\r\n name: value.key,\r\n property: filter.property,\r\n });\r\n }\r\n\r\n if (Utils.getIsMobile()) {\r\n return (\r\n <>\r\n ) => {\r\n this.setState({\r\n anchorEl: event.currentTarget,\r\n });\r\n }}\r\n iconProps={{\r\n iconName: \"ChevronDown\",\r\n }}\r\n text={filter.name}\r\n style={{\r\n borderRadius: 5,\r\n width: 115,\r\n }}\r\n />\r\n {\r\n this.setState({\r\n anchorEl: null,\r\n });\r\n }}\r\n >\r\n {items.map((item) => {\r\n return (\r\n {\r\n this.props.addListFilter(\r\n item.label,\r\n item.property,\r\n item.name\r\n );\r\n }}\r\n >\r\n {item.name}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {\r\n return (\r\n \r\n );\r\n },\r\n }}\r\n delay={TooltipDelay.zero}\r\n directionalHint={DirectionalHint.bottomCenter}\r\n styles={{ root: { display: \"inline-block\" } }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n case \"date\": {\r\n return (\r\n \r\n {this.state.dateFilters[filter.property].isCalloutVisible && (\r\n {\r\n this._onDismissDatePicker(filter);\r\n }}\r\n >\r\n \r\n {\r\n return false;\r\n }}\r\n orientation={\r\n Utils.getIsMobile() ? \"vertical\" : \"horizontal\"\r\n }\r\n startDate={\r\n this.state.dateFilters[filter.property].startDate\r\n }\r\n startDateId={\r\n this.state.dateFilters[filter.property].startId\r\n }\r\n endDate={this.state.dateFilters[filter.property].endDate}\r\n endDateId={this.state.dateFilters[filter.property].endId}\r\n onDatesChange={({ startDate, endDate }) => {\r\n let dateFilters = this.state.dateFilters;\r\n\r\n dateFilters[filter.property].startDate = startDate;\r\n dateFilters[filter.property].endDate = endDate;\r\n\r\n // if (startDate != null) {\r\n // console.log(startDate.toISOString());\r\n // }\r\n // if (endDate != null) {\r\n // console.log(moment(endDate).format(\"YYYY-MM-DD\"));\r\n // }\r\n\r\n // console.log(startDate, endDate);\r\n this.setState({ dateFilters });\r\n }}\r\n focusedInput={\r\n this.state.dateFilters[filter.property].focusedInput\r\n }\r\n onFocusChange={(focusedInput) => {\r\n var dateFilters = this.state.dateFilters;\r\n\r\n dateFilters[filter.property].focusedInput = focusedInput;\r\n\r\n this.setState({ dateFilters });\r\n }}\r\n />\r\n\r\n {\r\n this._onDismissDatePicker(filter);\r\n }}\r\n />\r\n \r\n \r\n )}\r\n\r\n {\r\n let dateFilters = this.state.dateFilters;\r\n dateFilters[filter.property].isCalloutVisible = true;\r\n\r\n this.setState({ dateFilters });\r\n }}\r\n />\r\n \r\n );\r\n }\r\n }\r\n };\r\n\r\n private _onDismissDatePicker = (filter: any) => {\r\n let dateFilters = this.state.dateFilters;\r\n dateFilters[filter.property].isCalloutVisible = false;\r\n\r\n if (\r\n dateFilters[filter.property].startDate != null &&\r\n dateFilters[filter.property].endDate != null\r\n ) {\r\n let compareFormat = \"YYYY-MM-DD\";\r\n let showFormat = \"DD.MM.YYYY\";\r\n\r\n let dates = {\r\n start: moment(dateFilters[filter.property].startDate).format(\r\n compareFormat\r\n ),\r\n startShow: moment(dateFilters[filter.property].startDate).format(\r\n showFormat\r\n ),\r\n end: moment(dateFilters[filter.property].endDate).format(compareFormat),\r\n endShow: moment(dateFilters[filter.property].endDate).format(\r\n showFormat\r\n ),\r\n };\r\n\r\n this.props.addDateFilter(filter.name, filter.property, dates);\r\n }\r\n this.setState({ dateFilters });\r\n };\r\n\r\n private _onRenderCell = (\r\n item: any,\r\n index: number | undefined\r\n ): JSX.Element => {\r\n return (\r\n \r\n {\r\n this.props.addListFilter(item.label, item.property, item.name);\r\n }}\r\n >\r\n {item.name}\r\n \r\n \r\n );\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { Map } from \"./MapComponent\";\r\nimport { ListComponent } from \"./ListComponent\";\r\nimport { List } from \"office-ui-fabric-react/lib/components/List/List\";\r\nimport { Label } from \"office-ui-fabric-react/lib/Label\";\r\nimport { Checkbox } from \"office-ui-fabric-react/lib/components/Checkbox/Checkbox\";\r\nimport { Header } from \"./HeaderComponent\";\r\nimport { Icon } from \"office-ui-fabric-react/lib/Icon\";\r\nimport { TooltipHost } from \"office-ui-fabric-react\";\r\nimport \"./CSS/legend.css\";\r\nimport { Utils } from \"../Utils/Utils\";\r\n// @ts-ignore\r\nimport SlidingPane from \"react-sliding-pane\";\r\n\r\ninterface IFilter {\r\n key: string;\r\n property: string;\r\n name: string;\r\n interval: any;\r\n dates: any;\r\n list: any;\r\n}\r\n\r\ninterface IProps {\r\n body: any;\r\n}\r\n\r\ninterface IState {\r\n mode: number;\r\n categories: any[];\r\n markers: any[];\r\n\r\n filters: IFilter[];\r\n\r\n filtersData: any[];\r\n\r\n isMenuOpen: boolean;\r\n\r\n zoom: number;\r\n lng: number;\r\n lat: number;\r\n kmlUrl: string;\r\n}\r\n\r\nlet _map: any;\r\n\r\nexport class MainComponent extends React.Component {\r\n private _markers: any[] = [];\r\n\r\n public static allowedFilters: any[] = [];\r\n\r\n private _refFiltersList: any;\r\n private _refCategoriesList: any;\r\n private _refHeader: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n if (\r\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n navigator.userAgent\r\n ) ||\r\n window.innerWidth < 800\r\n ) {\r\n console.log(\"Mobil\");\r\n Utils.setIsMobile(true);\r\n } else {\r\n console.log(\"NeMobil\");\r\n Utils.setIsMobile(false);\r\n }\r\n\r\n let categorii;\r\n let filtersData;\r\n let body = this.props.body;\r\n\r\n console.log(\"Body\", body);\r\n\r\n categorii = body.categories;\r\n filtersData = body.filters;\r\n\r\n if (filtersData != undefined) {\r\n for (let i = 0; i < filtersData.length; i++) {\r\n MainComponent.allowedFilters[filtersData[i].property] =\r\n filtersData[i].showInPinWindow;\r\n }\r\n }\r\n\r\n let id = 1;\r\n\r\n for (let i = 0; i < categorii.length; i++) {\r\n categorii[i].selected = \"true\";\r\n\r\n for (let j = 0; j < categorii[i].elements.length; j++) {\r\n categorii[i].elements[j].iconURL = categorii[i].iconURL;\r\n categorii[i].elements[j].id = id;\r\n id++;\r\n\r\n this._markers.push(categorii[i].elements[j]);\r\n }\r\n }\r\n\r\n console.log(\"Categories\", categorii);\r\n console.log(\"Filters\", filtersData);\r\n console.log(\"Markers\", this._markers);\r\n\r\n this.state = {\r\n mode: 1,\r\n categories: categorii,\r\n markers: this._markers,\r\n filters: [],\r\n filtersData: filtersData,\r\n isMenuOpen: false,\r\n zoom: body.zoom,\r\n lat: body.lat,\r\n lng: body.lng,\r\n kmlUrl: body.boundariesFileURL,\r\n };\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n (this._refHeader = header)}\r\n filtersData={this.state.filtersData}\r\n changeMode={this._changeMode}\r\n addIntervalFilter={this._addIntervalFilter}\r\n addListFilter={this._addListFilter}\r\n addSearchFilter={this._addSearchFilter}\r\n addDateFilter={this._addDateFilter}\r\n openMenu={this._openMenu}\r\n filtersNo={this.state.filters.length}\r\n />\r\n\r\n {this._legenda()}\r\n\r\n \r\n \r\n
\r\n \r\n (_map = map)}\r\n markers={this.state.markers}\r\n zoom={this.state.zoom}\r\n lat={this.state.lat}\r\n lng={this.state.lng}\r\n kmlUrl={this.state.kmlUrl}\r\n />\r\n \r\n \r\n );\r\n }\r\n\r\n private _legenda = () => {\r\n if (Utils.getIsMobile()) {\r\n return (\r\n {\r\n document\r\n .getElementsByClassName(\"slide-pane_from_right\")[0]\r\n .setAttribute(\"style\", `height: ${window.innerHeight}px`);\r\n }}\r\n >\r\n \r\n \r\n LEGENDA\r\n \r\n\r\n
\r\n \r\n (this._refCategoriesList = list)}\r\n items={this.state.categories}\r\n onRenderCell={this._onRenderCategoryCell}\r\n />\r\n
\r\n\r\n 0 ? \"\" : \"none\",\r\n border: \"1px solid\",\r\n }}\r\n >\r\n \r\n (this._refFiltersList = list)}\r\n items={this.state.filters}\r\n onRenderCell={this._onRenderFilterCell}\r\n />\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n \r\n (this._refCategoriesList = list)}\r\n items={this.state.categories}\r\n onRenderCell={this._onRenderCategoryCell}\r\n />\r\n
\r\n\r\n 0 ? \"\" : \"none\",\r\n }}\r\n >\r\n \r\n (this._refFiltersList = list)}\r\n items={this.state.filters}\r\n onRenderCell={this._onRenderFilterCell}\r\n />\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n private _openMenu = () => {\r\n this.setState({ isMenuOpen: !this.state.isMenuOpen });\r\n };\r\n\r\n private _closeMenu = () => {\r\n this.setState({ isMenuOpen: false });\r\n };\r\n\r\n private _onRenderCategoryCell = (\r\n item: any,\r\n index: number | undefined\r\n ): JSX.Element => {\r\n return (\r\n \r\n
\r\n ,\r\n checked?: boolean\r\n ) => {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n if (categories[i].id == item.id && checked != undefined) {\r\n if (checked) {\r\n categories[i].selected = \"true\";\r\n } else {\r\n categories[i].selected = \"false\";\r\n }\r\n }\r\n }\r\n\r\n this.setState({ categories: categories }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n }}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {item.name}\r\n     \r\n \r\n );\r\n };\r\n\r\n private _onRenderFilterCell = (\r\n item: any,\r\n index: number | undefined\r\n ): JSX.Element => {\r\n return (\r\n \r\n \r\n \r\n {\" \"}\r\n {item.name}{\" \"}\r\n \r\n \r\n\r\n \r\n {\r\n if (index != undefined) {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].selected = \"true\";\r\n }\r\n\r\n const filters = this.state.filters;\r\n\r\n if (filters[index].key == \"Search\") {\r\n this._refHeader.setState({\r\n searchValue: \"\",\r\n });\r\n }\r\n\r\n filters.splice(index, 1);\r\n\r\n this.setState({ filters: filters }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n }\r\n }}\r\n />\r\n \r\n \r\n );\r\n };\r\n\r\n private _determineValidMarkers = () => {\r\n let markers: any[] = [];\r\n let categories = this.state.categories;\r\n let ok: boolean;\r\n\r\n for (let i = 0; i < categories.length; i++) {\r\n if (categories[i].selected == \"true\") {\r\n ok = false;\r\n for (let j = 0; j < categories[i].elements.length; j++) {\r\n if (this._isMarkerValid(categories[i].elements[j])) {\r\n markers.push(categories[i].elements[j]);\r\n ok = true;\r\n }\r\n }\r\n if (!ok) {\r\n categories[i].selected = \"false\";\r\n }\r\n }\r\n }\r\n\r\n this.setState({ markers: markers });\r\n };\r\n\r\n private _isMarkerValid = (marker: any): boolean => {\r\n let filters = this.state.filters;\r\n\r\n for (let filter of filters) {\r\n if (filter.key == \"Search\") {\r\n if (!marker.title.toLowerCase().includes(filter.property)) {\r\n return false;\r\n }\r\n } else {\r\n if (filter.interval != null) {\r\n for (let i = 0; i < marker.FilterValues.PinFilterValues.length; i++) {\r\n if (\r\n filter.property ==\r\n marker.FilterValues.PinFilterValues[i].filterProperty\r\n ) {\r\n if (\r\n marker.FilterValues.PinFilterValues[i].value <\r\n filter.interval.min ||\r\n marker.FilterValues.PinFilterValues[i].value >\r\n filter.interval.max\r\n ) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n if (filter.list != null) {\r\n let ok: boolean = false;\r\n\r\n for (let i = 0; i < marker.FilterValues.PinFilterValues.length; i++) {\r\n if (\r\n filter.property ==\r\n marker.FilterValues.PinFilterValues[i].filterProperty\r\n ) {\r\n for (let listItem of filter.list) {\r\n if (listItem == marker.FilterValues.PinFilterValues[i].key) {\r\n ok = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!ok) {\r\n return false;\r\n }\r\n }\r\n if (filter.dates != null) {\r\n for (let i = 0; i < marker.FilterValues.PinFilterValues.length; i++) {\r\n if (\r\n filter.property ==\r\n marker.FilterValues.PinFilterValues[i].filterProperty\r\n ) {\r\n // console.log(\r\n // marker.FilterValues.PinFilterValues[i].value,\r\n // filter.dates.start,\r\n // filter.dates.end\r\n // );\r\n\r\n // let current = new Date(\r\n // marker.FilterValues.PinFilterValues[i].value.replace(\r\n // /(\\d+)\\/(\\d+)\\/(\\d+)/,\r\n // \"$3/$2/$1\"\r\n // )\r\n // );\r\n // let start = new Date(\r\n // filter.dates.start.replace(/(\\d+)\\/(\\d+)\\/(\\d+)/, \"$3/$2/$1\")\r\n // );\r\n // let end = new Date(\r\n // filter.dates.end.replace(/(\\d+)\\/(\\d+)\\/(\\d+)/, \"$3/$2/$1\")\r\n // );\r\n\r\n if (\r\n marker.FilterValues.PinFilterValues[i].value <\r\n filter.dates.start ||\r\n marker.FilterValues.PinFilterValues[i].value > filter.dates.end\r\n ) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private _changeMode = (mode: number) => {\r\n this.setState({ mode: mode });\r\n\r\n if (mode == 1 && _map != null) {\r\n _map.forceUpdate();\r\n }\r\n };\r\n\r\n private _addSearchFilter = (query: string) => {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].selected = \"true\";\r\n }\r\n\r\n let filters = this.state.filters;\r\n const index = filters.findIndex((x) => x.key == \"Search\");\r\n if (index === -1) {\r\n filters.push({\r\n key: \"Search\",\r\n property: query,\r\n dates: null,\r\n interval: null,\r\n list: null,\r\n name: \"Cautare: \" + query,\r\n });\r\n } else {\r\n filters[index].name = \"Search: \" + query;\r\n filters[index].property = query;\r\n }\r\n\r\n this.setState({ categories: categories, filters: filters }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n };\r\n\r\n private _addIntervalFilter = (\r\n label: string,\r\n property: string,\r\n interval: any\r\n ) => {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].selected = \"true\";\r\n }\r\n\r\n let filters = this.state.filters;\r\n const index = filters.findIndex((x) => x.key == label);\r\n if (index === -1) {\r\n filters.push({\r\n key: label,\r\n property: property,\r\n interval: interval,\r\n dates: null,\r\n list: null,\r\n name: label + \": \" + interval.min + \"-\" + interval.max,\r\n });\r\n } else {\r\n filters[index].name = label + \": \" + interval.min + \"-\" + interval.max;\r\n filters[index].interval = interval;\r\n }\r\n\r\n this.setState({ filters: filters }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n };\r\n\r\n private _addDateFilter = (label: string, property: string, dates: any) => {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].selected = \"true\";\r\n }\r\n\r\n let filters = this.state.filters;\r\n const index = filters.findIndex((x) => x.key == label);\r\n if (index === -1) {\r\n filters.push({\r\n key: label,\r\n property: property,\r\n interval: null,\r\n dates: dates,\r\n list: null,\r\n name: label + \": \" + dates.startShow + \" - \" + dates.endShow,\r\n });\r\n } else {\r\n filters[index].name =\r\n label + \": \" + dates.startShow + \" - \" + dates.endShow;\r\n filters[index].dates = dates;\r\n }\r\n\r\n this.setState({ filters: filters }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n };\r\n\r\n private _addListFilter = (label: string, property: string, value: any) => {\r\n let categories = this.state.categories;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].selected = \"true\";\r\n }\r\n\r\n let filters = this.state.filters;\r\n const index = filters.findIndex((x) => x.key == label);\r\n if (index === -1) {\r\n filters.push({\r\n key: label,\r\n property: property,\r\n interval: null,\r\n list: [value],\r\n dates: null,\r\n name: label + \": \" + value,\r\n });\r\n } else {\r\n if (!filters[index].list.includes(value)) {\r\n filters[index].list.push(value);\r\n filters[index].name += \", \" + value;\r\n }\r\n }\r\n\r\n //console.log(\"Filtre adaugate\", filters);\r\n\r\n this.setState({ filters: filters }, () => {\r\n this._determineValidMarkers();\r\n this._refresh();\r\n });\r\n };\r\n\r\n private _refresh = () => {\r\n if (this._refFiltersList) {\r\n this._refFiltersList.forceUpdate();\r\n }\r\n if (this._refCategoriesList) {\r\n this._refCategoriesList.forceUpdate();\r\n }\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { Dialog } from \"office-ui-fabric-react/lib/Dialog\";\r\nimport { Spinner, SpinnerSize } from \"office-ui-fabric-react\";\r\n\r\ninterface IProps {\r\n hideDialog: boolean;\r\n}\r\n\r\ninterface IState {\r\n hideDialog: boolean;\r\n}\r\n\r\nexport class Loader extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n hideDialog: this.props.hideDialog\r\n };\r\n }\r\n\r\n public componentWillReceiveProps(props: IProps) {\r\n this.setState({ hideDialog: props.hideDialog });\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { initializeIcons } from \"@uifabric/icons\";\r\n\r\nimport { MainComponent } from \"./Components/MainComponent\";\r\nimport { Loader } from \"./Components/LoaderComponent\";\r\nimport { Test } from \"./Components/Test\";\r\nconst request = require(\"request\");\r\n\r\ninitializeIcons();\r\n\r\nReactDOM.render(, document.getElementById(\"root\"));\r\n\r\nlet params = new URL(window.location.href).searchParams;\r\nlet mapId = params.get(\"mapId\");\r\n\r\nvar options = {\r\n method: \"GET\",\r\n // url: \"https://dev.tntsoftware.ro/api/MapPins\",\r\n url: \"https://dev.tntsoftware.ro/api/Maps\",\r\n headers: {\r\n \"content-type\": \"application/json\",\r\n authentication: \"key=2eb9bf44-3bfd-47e7-8899-b71871de7d52\",\r\n // maptype: \"1\",\r\n mapId: mapId,\r\n },\r\n // body: {\r\n // mapId: \"99\"\r\n // }\r\n};\r\n\r\nrequest(options, (error: any, response: any, body: any) => {\r\n if (error) throw new Error(error);\r\n\r\n document.title = JSON.parse(body).name;\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n});\r\n\r\n//140 pt teste\r\n\r\n// var body = {\r\n// name: \"Selimbar\",\r\n// zoom: 14,\r\n// type: \"Investitii\",\r\n// boundariesFileURL:\r\n// \"https://app.startmanager.ro/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\99\\\\ComunaSelimbar_637182259359363414.kml\",\r\n// lat: 45.77281175,\r\n// lng: 24.1870255,\r\n// categories: [\r\n// {\r\n// name: \"Drumuri\",\r\n// id: 38,\r\n// iconURL:\r\n// \"https://app.citymanager.online/Fisiere/MapsIcons/pin-default.png\",\r\n// elements: [\r\n// {\r\n// featuredImage:\r\n// \"https://app.citymanager.online/Fisiere/MapsIcons/no-image.png\",\r\n// title: \"Amenajare santier\\r\\n\",\r\n// location: {\r\n// lat: -1,\r\n// lng: 0,\r\n// },\r\n// address: \"Sibiu Triaj, Sibiu, România\",\r\n// KMLFileURL:\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\10\\\\Pin2_637182261538277459.kml\",\r\n// details: {\r\n// metadata: [\r\n// {\r\n// id: 9,\r\n// type: \"highlight | table | row\",\r\n// content: {\r\n// title: \"Executant\",\r\n// body: \"SC Paconstruct SRL\",\r\n// },\r\n// },\r\n// {\r\n// id: 10,\r\n// type: \"highlight | table | row\",\r\n// content: {\r\n// title: \"Data de incepere a lucrarii\",\r\n// body: \" 23.07.2018\",\r\n// },\r\n// },\r\n// {\r\n// id: 11,\r\n// type: \"highlight | table | row\",\r\n// content: {\r\n// title: \"Valoare investitiei din contracat (cu TVA)\",\r\n// body: \"3202483.82\",\r\n// },\r\n// },\r\n// {\r\n// id: 12,\r\n// type: \"highlight | table | row\",\r\n// content: {\r\n// title: \"Valoare totala a investitiei (cu TVA)\",\r\n// body: \"3724386.97\",\r\n// },\r\n// },\r\n// ],\r\n// Images: [],\r\n// },\r\n// FilterValues: {\r\n// PinFilterValues: [\r\n// {\r\n// filterName: \"Valoare\",\r\n// filterProperty: \"valoare\",\r\n// value: \"0\",\r\n// },\r\n// {\r\n// filterName: \"Stadiu investitie\",\r\n// filterProperty: \"stadiuinvestitie\",\r\n// value: \"2\",\r\n// key: \"In Executie\",\r\n// },\r\n// {\r\n// filterName: \"Data Inceput\",\r\n// filterProperty: \"dataInceput\",\r\n// value: \"2020-01-01\",\r\n// },\r\n// ],\r\n// },\r\n// },\r\n// {\r\n// featuredImage:\r\n// \"https://app.startmanager.ro/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\26\\\\82552123_2610227565770097_4069447891956006912_n (1).jpg637152140076764279.jpg\",\r\n// title:\r\n// \"Continuarea amenajarii Strada Pictor Nicolae Brana, comuna Selimbar\",\r\n// location: {\r\n// lat: 45.782875,\r\n// lng: 24.182186,\r\n// },\r\n// address: \"Strada Nicolae Brana 50, Șelimbăr 557260, România\",\r\n// KMLFileURL:\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\26\\\\Pin1_637182261316135395.kml\",\r\n// details: {\r\n// metadata: [\r\n// {\r\n// id: 21,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Data de incepere a lucrarii\",\r\n// body: \"23.07.2018\",\r\n// },\r\n// },\r\n// {\r\n// id: 22,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Executant\",\r\n// body: \"SC Paconstruct SRL\",\r\n// },\r\n// },\r\n// {\r\n// id: 23,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Sursa de finantare\",\r\n// body: \"Buget local\",\r\n// },\r\n// },\r\n// {\r\n// id: 24,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Valoare investitiei din contract (cu TVA)\",\r\n// body: \"3202483.82\",\r\n// },\r\n// },\r\n// {\r\n// id: 28,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Valoarea totala a investitiei (cu TVA)\",\r\n// body: \"3724386.97\",\r\n// },\r\n// },\r\n// ],\r\n// Images: [\r\n// \"https://app.startmanager.ro/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\26\\\\82552123_2610227565770097_4069447891956006912_n (1).jpg637152140076764279.jpg\",\r\n// \"https://app.startmanager.ro/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\26\\\\logo tnt.png637152140077858113.png\",\r\n// \"https://app.startmanager.ro/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\26\\\\Screenshot 2019-07-08 14.44.12.png637152140078639536.png\",\r\n// ],\r\n// },\r\n// FilterValues: {\r\n// PinFilterValues: [\r\n// {\r\n// filterName: \"Valoare\",\r\n// filterProperty: \"valoare\",\r\n// value: \"10001\",\r\n// },\r\n// {\r\n// filterName: \"Stadiu investitie\",\r\n// filterProperty: \"stadiuinvestitie\",\r\n// value: \"3\",\r\n// key: \"Terminata\",\r\n// },\r\n// {\r\n// filterName: \"Data Inceput\",\r\n// filterProperty: \"dataInceput\",\r\n// value: \"2020-03-21\",\r\n// },\r\n// ],\r\n// },\r\n// },\r\n// ],\r\n// },\r\n// {\r\n// name: \"Turism\",\r\n// id: 39,\r\n// iconURL:\r\n// \"https://app.citymanager.online/Fisiere/MapsIcons/pin-default.png\",\r\n// elements: [\r\n// {\r\n// featuredImage:\r\n// \"https://app.citymanager.online/Fisiere/MapsIcons/no-image.png\",\r\n// title: \"Hotel 3*\",\r\n// location: {\r\n// lat: 45.768515,\r\n// lng: 24.190818,\r\n// },\r\n// address: null,\r\n// details: {\r\n// metadata: [\r\n// {\r\n// id: 29,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"S.C. Turism SRL Selimbar\",\r\n// body: \"capital social 1200 lei\",\r\n// },\r\n// },\r\n// {\r\n// id: 30,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"S.C. Andiamo SRL\",\r\n// body: \"capital social 200 lei\",\r\n// },\r\n// },\r\n// {\r\n// id: 31,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Capacitate turisti\",\r\n// body:\r\n// \"200 paturi in 45 camere duble, 10 camere triple si 10 apartamente\",\r\n// },\r\n// },\r\n// {\r\n// id: 32,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Facilitati masa\",\r\n// body:\r\n// \"2 restaurante a la carte, meniu international, 1 salon mic dejun bufet\",\r\n// },\r\n// },\r\n// ],\r\n// Images: [\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\slider-Selimbar2_637160895562972243.jpg\",\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\images_637160895570472048.jpg\",\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\selimbar-3-678x381-1_637160895571253547.jpg\",\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\82552123_2610227565770097_4069447891956006912_n (1)_637160898871368979.jpg\",\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\stema-romaniei-logo-5261C16723-seeklogo.com_637160898872150807.png\",\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\28\\\\logo tnt_637160898873251811.png\",\r\n// ],\r\n// },\r\n// FilterValues: {\r\n// PinFilterValues: [\r\n// {\r\n// filterName: \"Valoare\",\r\n// filterProperty: \"valoare\",\r\n// value: \"6580\",\r\n// },\r\n// {\r\n// filterName: \"Stadiu investitie\",\r\n// filterProperty: \"stadiuinvestitie\",\r\n// value: \"1\",\r\n// key: \"In Proiect\",\r\n// },\r\n// {\r\n// filterName: \"Data Inceput\",\r\n// filterProperty: \"dataInceput\",\r\n// value: \"2020-04-18\",\r\n// },\r\n// ],\r\n// },\r\n// },\r\n// {\r\n// featuredImage:\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\29\\\\selimbar-3-678x381-1_637158236660659132.jpg\",\r\n// title: \"Parc distractii\",\r\n// location: {\r\n// lat: 45.760747,\r\n// lng: 24.187435,\r\n// },\r\n// address: null,\r\n// details: {\r\n// metadata: [\r\n// {\r\n// id: 33,\r\n// type: \"highlight | columns | row\",\r\n// content: {\r\n// title: \"Numar de locuri\",\r\n// body: \"1000 sezlonguri, 300 scaune masaj, 20 fotolii\",\r\n// },\r\n// },\r\n// ],\r\n// Images: [\r\n// \"https://app.citymanager.online/Fisiere\\\\Files\\\\4406045\\\\Maps\\\\Pins\\\\29\\\\selimbar-3-678x381-1_637158236660659132.jpg\",\r\n// ],\r\n// },\r\n// FilterValues: {\r\n// PinFilterValues: [\r\n// {\r\n// filterName: \"Valoare\",\r\n// filterProperty: \"valoare\",\r\n// value: \"4500000\",\r\n// },\r\n// {\r\n// filterName: \"Stadiu investitie\",\r\n// filterProperty: \"stadiuinvestitie\",\r\n// value: \"3\",\r\n// key: \"Terminata\",\r\n// },\r\n// {\r\n// filterName: \"Data Inceput\",\r\n// filterProperty: \"dataInceput\",\r\n// value: \"2020-05-11\",\r\n// },\r\n// ],\r\n// },\r\n// },\r\n// ],\r\n// },\r\n// ],\r\n// filters: [\r\n// {\r\n// name: \"Valoare\",\r\n// property: \"valoare\",\r\n// type: \"intervalInteger\",\r\n// showInPinWindow: true,\r\n// min: 6580,\r\n// max: 4500000,\r\n// },\r\n// {\r\n// name: \"Stadiu investitie\",\r\n// property: \"stadiuinvestitie\",\r\n// type: \"list\",\r\n// showInPinWindow: true,\r\n// options: [\r\n// {\r\n// key: \"In Executie\",\r\n// value: \"2\",\r\n// },\r\n// {\r\n// key: \"Terminata\",\r\n// value: \"3\",\r\n// },\r\n// {\r\n// key: \"In Proiect\",\r\n// value: \"1\",\r\n// },\r\n// ],\r\n// },\r\n// {\r\n// name: \"Data Inceput\",\r\n// property: \"dataInceput\",\r\n// type: \"date\",\r\n// showInPinWindow: true,\r\n// min: \"2020-03-05\",\r\n// max: \"2020-06-01\",\r\n// },\r\n// ],\r\n// };\r\n\r\n// ReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// ReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}