diff --git a/build/asset-manifest.json b/build/asset-manifest.json index a767b6d..a9d1e33 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -7,8 +7,8 @@ "static/js/1.24b0a8fa.chunk.js": "/static/js/1.24b0a8fa.chunk.js", "static/js/1.24b0a8fa.chunk.js.map": "/static/js/1.24b0a8fa.chunk.js.map", "main.css": "/static/css/main.15caf475.chunk.css", - "main.js": "/static/js/main.57815398.chunk.js", - "main.js.map": "/static/js/main.57815398.chunk.js.map", + "main.js": "/static/js/main.167e3bce.chunk.js", + "main.js.map": "/static/js/main.167e3bce.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.a56842e0.js", "runtime-main.js.map": "/static/js/runtime-main.a56842e0.js.map", "static/css/4.2ef29537.chunk.css": "/static/css/4.2ef29537.chunk.css", @@ -56,6 +56,6 @@ "static/css/4.2ef29537.chunk.css", "static/js/4.ef3b5ef4.chunk.js", "static/css/main.15caf475.chunk.css", - "static/js/main.57815398.chunk.js" + "static/js/main.167e3bce.chunk.js" ] } \ No newline at end of file diff --git a/build/index.html b/build/index.html index 7231a43..25397d3 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -Safety Data
\ No newline at end of file +Safety Data
\ No newline at end of file diff --git a/build/static/js/main.167e3bce.chunk.js b/build/static/js/main.167e3bce.chunk.js new file mode 100644 index 0000000..845c7f2 --- /dev/null +++ b/build/static/js/main.167e3bce.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonpclient=this.webpackJsonpclient||[]).push([[2],{11:function(e,t,r){"use strict";r.d(t,"a",(function(){return $r}));var a,i,n,o,s,c,l,u,p,h,b,y,d,f,j,g,m,v,O,w,T,x,S,C,B,F,k,V,z,M,A=r(0),L=r.n(A),I=r(12),N=r(44),D=r(67),R=r(97),P=r(4),G=r(30),Q=r(3),Y=(r(31),r(2)),W=(a=function e(t,r,a){Object(I.a)(this,e),Object(P.a)(this,"checked",i,this),this.label=void 0,this.filters=void 0,this.label=t,this.checked=r,this.filters=a},i=Object(Q.a)(a.prototype,"checked",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a),_=r(195),K=r(196),q=r(197),E=r(198),H=r(49),J=(n=function(){function e(t,r){var a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,this.arrValues=void 0,this.isArrValuesEmptyOnAllCheck=void 0,Object(P.a)(this,"arrTypes",o,this),this.allTypesOption=void 0,Object(P.a)(this,"text",s,this),Object(P.a)(this,"setFilter",c,this),Object(P.a)(this,"setQueryVals",l,this),this.getFilter=function(){var e=a.arrValues.join(",");return 0==a.arrValues.length?"":"&".concat(a.queryColName,"=").concat(e)},this.setBrowserQueryString=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===a.arrValues.length&&t)e.delete(a.queryColName);else{var r=a.arrValues.join(",");e.set(a.queryColName,r)}},Object(P.a)(this,"setText",u,this),this.name=t,this.queryColName=r,this.arrTypes=[],this.arrValues=[],this.isArrValuesEmptyOnAllCheck=n,this.allTypesOption=i,this.text=""}return Object(G.a)(e,[{key:"isAllValsFalse",get:function(){return 0===this.arrTypes.reduce((function(e,t){return t.checked?++e:e}),0)}},{key:"setValuesByQuery",value:function(e){var t=e.get(this.queryColName);if(null!==t){var r=t.split(",").map(Number);this.arrTypes.forEach((function(e){var t=e.filters.some((function(e){return r.includes(e)}));e.checked=t}))}this.setQueryVals()}}]),e}(),o=Object(Q.a)(n.prototype,"arrTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=Object(Q.a)(n.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Object(Q.a)(n.prototype,"isAllValsFalse",[Y.g],Object.getOwnPropertyDescriptor(n.prototype,"isAllValsFalse"),n.prototype),c=Object(Q.a)(n.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){-1===e.allTypesOption?e.arrTypes[t].checked=r:t===e.allTypesOption?e.arrTypes.forEach((function(t,a){return t.checked=a===e.allTypesOption?r:!r})):(e.arrTypes[e.allTypesOption].checked=!1,e.arrTypes[t].checked=r),e.setQueryVals()}}}),l=Object(Q.a)(n.prototype,"setQueryVals",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=!0,r=[];if(e.allTypesOption>-1&&e.arrTypes[e.allTypesOption].checked)t=!0;else{var a,i=e.arrTypes.values(),n=Object(R.a)(i);try{for(n.s();!(a=n.n()).done;){var o=a.value;o.checked?r=[].concat(Object(D.a)(r),Object(D.a)(o.filters)):t=!1}}catch(s){n.e(s)}finally{n.f()}}t&&e.isArrValuesEmptyOnAllCheck&&(r=[]),e.arrValues=r}}}),Object(Q.a)(n.prototype,"setValuesByQuery",[Y.f],Object.getOwnPropertyDescriptor(n.prototype,"setValuesByQuery"),n.prototype),u=Object(Q.a)(n.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){t?(e.text=e.arrTypes.filter((function(t,r){return t.checked&&r!==e.allTypesOption})).map((function(e){return H.a.t(e.label)})).join(", "),-1===e.allTypesOption&&0===e.arrValues.length&&(e.text="")):e.text=e.arrTypes.filter((function(e){return e.checked})).map((function(e){return H.a.t(e.label)})).join(", ")}}}),n),U=function(){var e=new J("VehicleType","vcl",0);return e.arrTypes.push(new W("vclType.all",!0,[])),e.arrTypes.push(new W("vclType.pedestrian",!1,[0])),e.arrTypes.push(new W("vclType.mobilityscooter",!1,[22])),e.arrTypes.push(new W("vclType.bicycle",!1,[15])),e.arrTypes.push(new W("vclType.e-scooter",!1,[21])),e.arrTypes.push(new W("vclType.e-bike",!1,[23])),e.arrTypes.push(new W("vclType.motorcycle1",!1,[8])),e.arrTypes.push(new W("vclType.motorcycle2",!1,[9])),e.arrTypes.push(new W("vclType.motorcycle3",!1,[10])),e.arrTypes.push(new W("vclType.motorcycle4",!1,[19])),e.arrTypes.push(new W("vclType.car",!1,[1])),e.arrTypes.push(new W("vclType.taxi",!1,[12])),e.arrTypes.push(new W("vclType.tranzit",!1,[2])),e.arrTypes.push(new W("vclType.tender",!1,[3])),e.arrTypes.push(new W("vclType.minbuss",!1,[18])),e.arrTypes.push(new W("vclType.bus",!1,[11])),e.arrTypes.push(new W("vclType.truck1",!1,[24])),e.arrTypes.push(new W("vclType.truck2",!1,[25])),e.arrTypes.push(new W("vclType.truck3",!1,[5])),e.arrTypes.push(new W("vclType.truck4",!1,[6])),e.arrTypes.push(new W("vclType.truck5",!1,[7])),e.arrTypes.push(new W("vclType.tractor",!1,[14])),e.arrTypes.push(new W("vclType.train",!1,[16])),e.arrTypes.push(new W("vclType.other",!1,[17])),e},X=function(e,t){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,n=e;return n+="&gb=".concat(t),""!==r&&(n+="&gb2=".concat(r)),0!==i&&(n+="&sort=".concat(i)),0!==a&&(n+="&lim=".concat(a)),n},Z=function(e,t){var r="";return e>=0&&t>e&&(r+="&p1=".concat(e,"&p2=").concat(t)),r},$=function(e){var t="&lat=".concat(e.getSouth(),",").concat(e.getNorth());return t+="&lon=".concat(e.getWest(),",").concat(e.getEast())},ee=(p=function e(t,r,a){var i=this;Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,Object(P.a)(this,"arrValues",h,this),Object(P.a)(this,"text",b,this),this.isStringValues=void 0,Object(P.a)(this,"setFilter",y,this),this.setBrowserQueryString=function(e){if(i.arrValues.length>0&&""!==i.arrValues[0]){var t="";i.isStringValues?t+=i.arrValues.map((function(e){return"".concat(e.trim())})).join(","):t+=i.arrValues.map((function(e){return e})).join(","),e.set(i.queryColName,t)}else e.delete(i.queryColName)},this.getFilter=function(){var e="";return i.arrValues.length>0&&""!==i.arrValues[0]&&(e+="&".concat(i.queryColName,"="),i.isStringValues?e+=i.arrValues.map((function(e){return'"'.concat(e.trim(),'"')})).join(","):e+=i.arrValues.map((function(e){return e})).join(",")),e},Object(P.a)(this,"setText",d,this),this.name=t,this.queryColName=r,this.arrValues=[],this.isStringValues=a,this.text=""},h=Object(Q.a)(p.prototype,"arrValues",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=Object(Q.a)(p.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=Object(Q.a)(p.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.arrValues=t}}}),d=Object(Q.a)(p.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.text=e.arrValues.join(", ")}}}),p),te=r(96),re=r(114),ae=r(110),ie=(f=function e(t,r){var a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,this.arrTypes=void 0,Object(P.a)(this,"queryValue",j,this),Object(P.a)(this,"text",g,this),this.allTypesOption=void 0,Object(P.a)(this,"setFilter",m,this),this.isEmpty=function(){return a.allTypesOption>=0&&a.queryValue===a.arrTypes[a.allTypesOption]},this.setBrowserQueryString=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(a.isEmpty())t&&e.delete(a.queryColName);else{var r="";"string"===typeof a.queryValue?r+=a.queryValue:r+=a.queryValue.toString(),e.set(a.queryColName,r)}},this.setValuesByQuery=function(e){var t=e.get(a.queryColName);null!==t&&("string"===typeof a.queryValue?a.setFilter(t):a.setFilter(parseInt(t)))},this.getFilter=function(){var e="";return a.isEmpty()||(e+="&".concat(a.queryColName,"="),"string"===typeof a.queryValue?e+=a.queryValue:e+=a.queryValue.toString()),e},Object(P.a)(this,"setText",v,this),this.name=t,this.queryColName=r,this.arrTypes=n,this.queryValue=o,this.allTypesOption=i,this.text=""},j=Object(Q.a)(f.prototype,"queryValue",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=Object(Q.a)(f.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=Object(Q.a)(f.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.queryValue=t}}}),v=Object(Q.a)(f.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){"string"===typeof e.queryValue?e.text=e.queryValue:e.text=e.queryValue.toString()}}}),f),ne=(O=function(e){Object(re.a)(r,e);var t=Object(ae.a)(r);function r(){var e;Object(I.a)(this,r);for(var a=arguments.length,i=new Array(a),n=0;n=0&&e.queryValue===e.arrTypes[e.allTypesOption].val},Object(P.a)(e,"setText",w,Object(te.a)(e)),e}return r}(ie),w=Object(Q.a)(O.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t="";if(!e.isEmpty()){var r=e.arrTypes.find((function(t){return t.val===e.queryValue}));r&&(t="".concat(H.a.t(r.text))),e.text=t}}}}),O),oe=["2015","2016","2017","2018","2019","2020","2021"],se=[{val:'{"min":-1,"max":-1}',text:"all"},{val:'{"min":200000,"max":1000000}',text:"200K-1000K"},{val:'{"min":100000,"max":200000}',text:"100K-200K"},{val:'{"min":50000,"max":100000}',text:"50K-100K"},{val:'{"min":20000,"max":50000}',text:"20K-50K"},{val:'{"min":10000,"max":20000}',text:"10K-20K"},{val:'{"min":0,"max":10000}',text:"0-10K"}],ce=function(e){console.log("reGroupResultIsSelfAcc",e);var t=new Array;return t.push({_id:"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05e2\u05e6\u05de\u05d9\u05ea",count:0}),t.push({_id:"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05dc\u05d0 \u05e2\u05e6\u05de\u05d9\u05ea",count:0}),e.forEach((function(e){le(e._id)?t[0].count+=e.count:t[1].count+=e.count})),t},le=function(e){var t=!1;switch(e){case"\u05e2\u05e6\u05de\u05d9\u05ea":case"\u05d4\u05d7\u05dc\u05e7\u05d4":case"\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea":case"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd":case"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4":case"\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4":case"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1":case"\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2":t=!0;break;default:t=!1}return t},ue=(T=function e(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4?arguments[4]:void 0;Object(I.a)(this,e),Object(P.a)(this,"text",x,this),this.value=void 0,this.limit=void 0,this.sort=void 0,this.reGroupResultFunc=void 0,this.text=t,this.value=r,this.limit=a,this.sort=i,n&&(this.reGroupResultFunc=n)},x=Object(Q.a)(T.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T),pe=function(){var e=new Map;return e.set("sev",new ue("Severity","sev")),e.set("injt",new ue("TypeInjured","injt")),e.set("vcl",new ue("Vehicle","vcl")),e.set("sex",new ue("Gender","sex")),e.set("age",new ue("Age","age")),e.set("pt",new ue("Population","pt")),e.set("year",new ue("Year","year")),e.set("mn",new ue("Month","mn")),e.set("dn",new ue("DayNight","dn")),e.set("wd",new ue("WeekDay","wd")),e.set("rt",new ue("RoadType","rt")),e.set("lca",new ue("LocationAccuracy","lca")),e.set("city",new ue("City","city",15,-1)),e.set("cpop",new ue("CityByPop","cpop")),e.set("st",new ue("Street","st",15,-1)),e.set("rd",new ue("Road","rd",10,-1)),e.set("acc",new ue("AccidentType","acc")),e.set("selfacc",new ue("SelfOrNotAcc","selfacc",0,0,ce)),e.set("vcli",new ue("Vehicles","vcli")),e.set("sp",new ue("SpeedLimit","sp")),e.set("rw",new ue("RoadWidth","rw")),e.set("ml",new ue("Separator","ml")),e.set("ol",new ue("OneLane","ol")),e},he=function(){var e={};return e.Severity=new ue("Severity","injury_severity_hebrew"),e.TypeInjured=new ue("TypeInjured","injured_type_hebrew"),e.Vehicle=new ue("Vehicle","vehicle_vehicle_type_hebrew"),e.Gender=new ue("Gender","sex_hebrew"),e.Age=new ue("Age","age_group_hebrew"),e.Year=new ue("Year","accident_year"),e.Month=new ue("Month","accident_month"),e.DayNight=new ue("DayNight","day_night_hebrew"),e.WeekDay=new ue("WeekDay","day_in_week_hebrew"),e.RoadType=new ue("RoadType","road_type_hebrew"),e.City=new ue("City","accident_yishuv_name",10),e.CityByPop=new ue("CityByPop","accident_yishuv_name"),e.Street=new ue("Street","street1_hebrew",10),e.Road=new ue("Road","road1",10),e.AccidentType=new ue("AccidentType","accident_type_hebrew"),e.Vehicles=new ue("Vehicles","vehicles"),e.SpeedLimit=new ue("SpeedLimit","speed_limit_hebrew"),e.RoadWidth=new ue("RoadWidth","road_width_hebrew"),e.Separator=new ue("Separator","multi_lane_hebrew"),e.OneLane=new ue("OneLane","one_lane_hebrew"),e},be=(S=function e(t,r){var a=this;Object(I.a)(this,e),Object(P.a)(this,"text",C,this),this.name=void 0,this.vals=void 0,this.revTrnas=function(e){return""===e?"":a.vals[e].name},this.fixStrcutTable=function(e){return e.map((function(e){var t=e.count.map((function(e){var t=a.revTrnas(e.grp2);return'"'.concat(t,'":').concat(e.count)})).join(","),r=e._id;null!==r&&void 0!==r&&"string"===typeof r&&(r=r.replace('"','\\"'));var i='{"_id":"'.concat(r,'",').concat(t,"}");return i=JSON.parse(i)}))},this.getBars=function(){return Object.entries(a.vals).map((function(e){var t=Object(N.a)(e,2),r=(t[0],t[1]);return{key:r.name,color:r.color}}))},this.getColumns=function(){var e=Object.entries(a.vals).map((function(e){var t=Object(N.a)(e,2);t[0];return t[1].name}));return e.unshift("_id"),e},this.text=t,this.name=r,this.vals={}},C=Object(Q.a)(S.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S),ye=function e(t,r){Object(I.a)(this,e),this.name=void 0,this.color=void 0,this.name=t,this.color=r},de=(B=function e(t,r,a){var i=this;Object(I.a)(this,e),this.dict=void 0,this.queryColName=void 0,Object(P.a)(this,"groupBy",F,this),Object(P.a)(this,"setFilter",k,this),Object(P.a)(this,"arrGroups",V,this),Object(P.a)(this,"setArrGroups",z,this),this.setBrowserQueryString=function(){var e=new URLSearchParams(location.search);i.groupBy instanceof ue?e.set(i.queryColName,i.groupBy.value):i.groupBy instanceof be&&e.set(i.queryColName,i.groupBy.name),window.history.replaceState({},"","".concat(location.pathname,"?").concat(e.toString()))},Object(P.a)(this,"setValuesByQuery",M,this),this.dict=t,this.queryColName=r,this.groupBy=this.dict.get(a),this.setArrGroups()},F=Object(Q.a)(B.prototype,"groupBy",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=Object(Q.a)(B.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.groupBy=e.dict.get(t)}}}),V=Object(Q.a)(B.prototype,"arrGroups",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),z=Object(Q.a)(B.prototype,"setArrGroups",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.arrGroups=Array.from(e.dict,(function(e){var t=Object(N.a)(e,2);return{value:t[0],text:t[1].text}}))}}}),M=Object(Q.a)(B.prototype,"setValuesByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get(e.queryColName);null!==r&&e.setFilter(r)}}}),B),fe=function(){var e=new Map,t=new be("Severity","sev");t.vals["\u05d4\u05e8\u05d5\u05d2"]=new ye("dead","#8884D8"),t.vals["\u05e4\u05e6\u05d5\u05e2 \u05e7\u05e9\u05d4"]=new ye("severly-injured","#82CA9D"),e.set(t.name,t);var r=new be("Gender","sex");r.vals["\u05d6\u05db\u05e8"]=new ye("male","#8884D8"),r.vals["\u05e0\u05e7\u05d1\u05d4"]=new ye("female","#82CA9D"),e.set(r.name,r);var a=new be("RoadType","rt");a.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-junction","#559E54"),a.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-road","#305A30"),a.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-junction","#1258DC"),a.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-road","#0A337F"),e.set(a.name,a);var i=new be("Year","year");i.vals[2015]=new ye("2015","#82CA9D"),i.vals[2016]=new ye("2016","#559E54"),i.vals[2017]=new ye("2017","#559E54"),i.vals[2018]=new ye("2018","#305A30"),i.vals[2019]=new ye("2019","#305A30"),i.vals[2020]=new ye("2020","#1258DC"),i.vals[2021]=new ye("2021","#1258DC"),e.set(i.name,i);var n=new be("DayNight","dn");n.vals["\u05d9\u05d5\u05dd"]=new ye("day","#82CA9D"),n.vals["\u05dc\u05d9\u05dc\u05d4"]=new ye("night","#559E54"),e.set(n.name,n);var o=new be("TypeInjured","injt");o.vals["\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("pedestrian","#82CA9D"),o.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd"]=new ye("cyclist-d","#559E54"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("cyclist-p","#559E54"),o.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-d","#305A30"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-p","#305A30"),o.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2"]=new ye("motorcycle-d","#1258DC"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("motorcycle-p","#1258DC"),o.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-d","#0A337F"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-p","#0A337F"),e.set(o.name,o);var s=new be("AccidentType","acc");return s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("accType.ped","#e3eaa7"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05e6\u05d3"]=new ye("accType.front-side","#03045E"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05d7\u05d6\u05d9\u05ea"]=new ye("accType.front-front","#4673FA"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05d0\u05d7\u05d5\u05e8"]=new ye("accType.front-rear","#00b4d8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e6\u05d3 \u05d1\u05e6\u05d3"]=new ye("accType.side-side","#90e0ef"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd"]=new ye("accType.obstacle3","#ef6351"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4"]=new ye("accType.obstacle2","#f38375"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05e9\u05e0\u05e2\u05e6\u05e8 \u05dc\u05dc\u05d0 \u05d7\u05e0\u05d9\u05d4"]=new ye("accType.obstacle1","#f7a399"),s.vals["\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4"]=new ye("accType.offroad","#fbc3bc"),s.vals["\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea"]=new ye("accType.turning-over","#FA6E2D"),s.vals["\u05d4\u05d7\u05dc\u05e7\u05d4"]=new ye("accType.slip","#BD5422"),s.vals["\u05d0\u05d7\u05e8"]=new ye("accType.other","#a53860"),s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1"]=new ye("accType.passenger","#31572c"),s.vals["\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2"]=new ye("accType.falloff","#4f772d"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d1\u05d7\u05d6\u05d9\u05ea"]=new ye("accType.rear-front","#CAF0F8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d0\u05dc \u05e6\u05d3"]=new ye("accType.rear-side","#CAF0F8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05d1\u05e2\u05dc \u05d7\u05d9\u05d9\u05dd"]=new ye("accType.animal","#ecf39e"),s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05de\u05de\u05d8\u05e2\u05df \u05e9\u05dc \u05e8\u05db\u05d1"]=new ye("accType.cargo","#0A337F"),e.set(s.name,s),e},je=function(){var e={};return e.Severity=new be("Severity","injury_severity_hebrew"),e.Severity.vals["\u05d4\u05e8\u05d5\u05d2"]=new ye("dead","#8884D8"),e.Severity.vals["\u05e4\u05e6\u05d5\u05e2 \u05e7\u05e9\u05d4"]=new ye("severly-injured","#82CA9D"),e.Gender=new be("Gender","sex_hebrew"),e.Gender.vals["\u05d6\u05db\u05e8"]=new ye("male","#8884D8"),e.Gender.vals["\u05e0\u05e7\u05d1\u05d4"]=new ye("female","#82CA9D"),e.RoadType=new be("RoadType","road_type_hebrew"),e.RoadType.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-junction","#559E54"),e.RoadType.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-road","#305A30"),e.RoadType.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-junction","#1258DC"),e.RoadType.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-road","#0A337F"),e.Year=new be("Year","accident_year"),e.Year.vals[2015]=new ye("2015","#82CA9D"),e.Year.vals[2016]=new ye("2016","#559E54"),e.Year.vals[2017]=new ye("2017","#559E54"),e.Year.vals[2018]=new ye("2018","#305A30"),e.Year.vals[2019]=new ye("2019","#305A30"),e.TypeInjured=new be("TypeInjured","injured_type_hebrew"),e.TypeInjured.vals["\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("pedestrian","#82CA9D"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd"]=new ye("cyclist-d","#559E54"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("cyclist-p","#559E54"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-d","#305A30"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-p","#305A30"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2"]=new ye("motorcycle-d","#1258DC"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("motorcycle-p","#1258DC"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-d","#0A337F"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-p","#0A337F"),e},ge=r(13),me=r.n(ge),ve=r(21),Oe=new function e(){Object(I.a)(this,e),this.fetchGetList=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/",a+=t,e.next=4,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((i=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",i.json());case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchGetGroupBy=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r,a;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="/api/v1/accident/groupby/",r+=t,e.next=4,fetch(r,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((a=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",a.json());case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.fetchGetCount=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/get",a+=t,e.next=4,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((i=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",i.json());case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchFilter=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/".concat(r),e.next=3,fetch(a,{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchAggregatFilter=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="main"===r?"/api/v1/accident/aggmain":"/api/v1/accident/agglatlon",e.next=3,fetch(a,{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchAggregate=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"/api/v1/accident/agg",e.next=3,fetch("/api/v1/accident/agg",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((r=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",r.json());case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},we=function(){function e(){Object(I.a)(this,e),this.getCityByNameHe=function(e,t){var r="/api/v1/city?name_he=".concat(e);fetch(r,{method:"GET",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"}).then((function(e){return e.json()})).then((function(e){t(e)})).catch((function(e){console.log("srv.getCityByNameHe",e)}))}}return Object(G.a)(e,[{key:"getCitiesNames",value:function(e,t){var r="/api/v1/city?lang=".concat(e);fetch(r,{method:"GET",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"}).then((function(e){return e.json()})).then((function(e){t(e)}))}}]),e}(),Te=new(r(203).a)("saftyData");function xe(e){return Se.apply(this,arguments)}function Se(){return(Se=Object(ve.a)(me.a.mark((function e(t){return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Te.injuerd.bulkPut(t);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ce(e){return Be.apply(this,arguments)}function Be(){return(Be=Object(ve.a)(me.a.mark((function e(t){var r,a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==t.length){e.next=6;break}return e.next=3,Te.injuerd.toArray();case 3:r=e.sent,e.next=14;break;case 6:return a=t.shift(),e.next=9,Te.injuerd.where(a.filterName).between(a.startYear,a.endYear,!0,!0);case 9:return i=e.sent,t.forEach((function(e){i=i.and((function(t){if(1===e.values.length)return t[e.filterName]===e.values[0];var r=!1;return e.values.forEach((function(a){return r=r||t[e.filterName]===a})),r}))})),e.next=13,i.toArray();case 13:r=e.sent;case 14:return e.abrupt("return",r);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Te.version(1).stores({injuerd:"id++,_id, accident_id, accident_year, accident_timestamp, sex_hebrew, accident_yishuv_name ,road_type_hebrew"});var Fe,ke,Ve,ze,Me,Ae,Le,Ie,Ne,De,Re,Pe,Ge,Qe,Ye,We,_e,Ke,qe,Ee,He,Je,Ue,Xe,Ze,$e,et,tt,rt,at,it,nt,ot,st,ct,lt,ut,pt,ht,bt,yt,dt,ft,jt,gt,mt,vt,Ot,wt,Tt,xt,St,Ct,Bt,Ft,kt,Vt,zt,Mt,At,Lt,It,Nt,Dt,Rt,Pt,Gt,Qt,Yt,Wt,_t,Kt,qt,Et,Ht,Jt,Ut,Xt,Zt,$t,er,tr,rr,ar,ir,nr,or,sr,cr,lr,ur,pr,hr,br,yr,dr,fr,jr,gr,mr,vr,Or,wr,Tr,xr,Sr,Cr,Br,Fr,kr,Vr,zr,Mr,Ar,Lr,Ir,Nr,Dr,Rr,Pr=r(36),Gr=r(74),Qr=function(){function e(){Object(I.a)(this,e)}return Object(G.a)(e,[{key:"getLoaclStorage",value:function(e){var t=localStorage.getItem(e);return t?JSON.parse(t):[]}},{key:"setLocalStorage",value:function(e,t){localStorage.setItem(e,JSON.stringify(t))}}]),e}(),Yr=r(77),Wr=(Fe=function(){function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.useGetFetch=!0,this.localStorageService=void 0,this.rootStore=void 0,Object(P.a)(this,"filtersArrayLocalStorage",ke,this),Object(P.a)(this,"setCurrentFiltersArrayLocalStorage",Ve,this),Object(P.a)(this,"updateFilterArrayLocalStorage",ze,this),Object(P.a)(this,"showAllVehicleTypes",Me,this),Object(P.a)(this,"updateShowAllVehicleTypes",Ae,this),Object(P.a)(this,"isUpdateFromUrl",Le,this),Object(P.a)(this,"setIsUpdateFromUrl",Ie,this),Object(P.a)(this,"formCardKey",Ne,this),Object(P.a)(this,"setFormCardKey",De,this),Object(P.a)(this,"injurySeverity",Re,this),Object(P.a)(this,"updateInjurySeverity",Pe,this),Object(P.a)(this,"casualtiesNames",Ge,this),Object(P.a)(this,"setCasualtiesNames",Qe,this),Object(P.a)(this,"isMultipleCities",Ye,this),Object(P.a)(this,"setIsMultipleCities",We,this),Object(P.a)(this,"cities",_e,this),Object(P.a)(this,"updateCities",Ke,this),Object(P.a)(this,"cityResult",qe,this),Object(P.a)(this,"streets",Ee,this),Object(P.a)(this,"updateStreets",He,this),Object(P.a)(this,"roads",Je,this),Object(P.a)(this,"setRoads",Ue,this),Object(P.a)(this,"cityPopSizeRange",Xe,this),Object(P.a)(this,"setCityPopSizeRange",Ze,this),Object(P.a)(this,"roadSegment",$e,this),Object(P.a)(this,"updateRoadSegment",et,this),Object(P.a)(this,"roadTypes",tt,this),Object(P.a)(this,"updateRoadType",rt,this),Object(P.a)(this,"locationAccuracy",at,this),Object(P.a)(this,"updateLocationAccuracy",it,this),Object(P.a)(this,"startYear",nt,this),Object(P.a)(this,"setStartYear",ot,this),Object(P.a)(this,"endYear",st,this),Object(P.a)(this,"setEndYear",ct,this),Object(P.a)(this,"dayNight",lt,this),Object(P.a)(this,"updateDayNight",ut,this),Object(P.a)(this,"genderTypes",pt,this),Object(P.a)(this,"updateGenderType",ht,this),Object(P.a)(this,"ageTypes",bt,this),Object(P.a)(this,"updateAgeType",yt,this),Object(P.a)(this,"populationTypes",dt,this),Object(P.a)(this,"updatePopulationType",ft,this),Object(P.a)(this,"accidentType",jt,this),Object(P.a)(this,"updateAccidentType",gt,this),Object(P.a)(this,"injTypes",mt,this),Object(P.a)(this,"updateInjuerdType",vt,this),Object(P.a)(this,"vehicleType",Ot,this),Object(P.a)(this,"updateVehicleType",wt,this),Object(P.a)(this,"involvedVehicle",Tt,this),Object(P.a)(this,"setInvolvedVehicle",xt,this),Object(P.a)(this,"speedLimit",St,this),this.updateSpeedLimit=function(e,t){r.updateFilters(r.speedLimit,e,t)},Object(P.a)(this,"roadWidth",Ct,this),Object(P.a)(this,"updateRoadWidth",Bt,this),Object(P.a)(this,"separator",Ft,this),Object(P.a)(this,"updateSeparator",kt,this),Object(P.a)(this,"oneLane",Vt,this),Object(P.a)(this,"updateOneLane",zt,this),Object(P.a)(this,"injuriesCount",Mt,this),Object(P.a)(this,"setInjuriesCount",At,this),Object(P.a)(this,"isLoadingInjuriesCount",Lt,this),Object(P.a)(this,"dataAllInjuries",It,this),Object(P.a)(this,"updateAllInjuries",Nt,this),Object(P.a)(this,"dataMarkersLean",Dt,this),Object(P.a)(this,"updateDataMarkersLean",Rt,this),Object(P.a)(this,"dataByYears",Pt,this),Object(P.a)(this,"dataFilterdByYears",Gt,this),Object(P.a)(this,"setDataFilterdByYears",Qt,this),Object(P.a)(this,"dataFilterd",Yt,this),Object(P.a)(this,"dataGroupby2",Wt,this),Object(P.a)(this,"isLoading",_t,this),Object(P.a)(this,"updateGroupby",Kt,this),Object(P.a)(this,"groupByDict",qt,this),Object(P.a)(this,"submitGroupByYears",Et,this),this.padDataYearsWith0=function(e){for(var t=[],a=Number(r.startYear.queryValue);a<=Number(r.endYear.queryValue);a+=1)t.push(a);return t.map((function(t){var r=e.find((function(e){return e._id===t})),a=r?r.count:0;return{_id:t,count:a}}))},this.getCountFromGroupByRes=function(e){return e.reduce((function(e,t){return e+t.count}),0)},Object(P.a)(this,"submitfilterdGroupByYears",Ht,this),Object(P.a)(this,"submitfilterdGroup",Jt,this),Object(P.a)(this,"submitfilterdGroupByPop",Ut,this),Object(P.a)(this,"submitfilterdGroup2",Xt,this),Object(P.a)(this,"updateGroupBy2",Zt,this),Object(P.a)(this,"group2Dict",$t,this),Object(P.a)(this,"isUse2StepsMarkers",er,this),Object(P.a)(this,"markersLoadStep",tr,this),Object(P.a)(this,"setMarkersLoadStep",rr,this),Object(P.a)(this,"submitFilter",ar,this),this.submintMainDataFilter=function(){if(r.isLoading=!0,r.useGetFetch){var e=r.getFilterQueryString(null);r.setFiltersText(!0),r.setBrowserQueryString(),r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Oe.fetchGetList(e,"main").then((function(e){null!==e&&void 0!==e&&(r.updateAllInjuries(e),1===r.useLocalDb&&xe(e)),r.isLoading=!1}))}else{JSON.parse(r.cityPopSizeRange.queryValue.toString());var t=r.getFilterForPost(null);r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Oe.fetchAggregatFilter(t,"main").then((function(e){null!==e&&void 0!==e&&(r.updateAllInjuries(e),1===r.useLocalDb&&xe(e)),r.isLoading=!1}))}},this.submintGetMarkerFirstStep=function(){JSON.parse(r.cityPopSizeRange.queryValue.toString());var e=r.getFilterForPost(null);Oe.fetchAggregatFilter(e,"latlon").then((function(e){null!==e&&void 0!==e&&r.updateDataMarkersLean(e)}))},this.submitCityNameAndLocation=function(){if(r.cities.arrValues.length>=1){var e=r.cities.arrValues[0],t=new we,a=r.rootStore.mapStore.isCenterMapByCity()?r.rootStore.mapStore.updateMapCenterByCity:function(){};t.getCityByNameHe(e,a);r.cityResult=r.cities.arrValues[0]}else r.cityResult=""},this.getFilterQueryString=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a="?";a+=r.startYear.getFilter(),a+=r.endYear.getFilter(),a+=r.injurySeverity.getFilter(),a+=r.cities.getFilter(),t&&null!=e&&(a+=$(e)),a+=r.dayNight.getFilter(),a+=r.streets.getFilter(),a+=r.roads.getFilter(),a+=r.roadSegment.getFilter(),a+=r.injTypes.getFilter(),a+=r.genderTypes.getFilter(),a+=r.ageTypes.getFilter(),a+=r.populationTypes.getFilter(),a+=r.accidentType.getFilter(),a+=r.vehicleType.getFilter(),a+=r.involvedVehicle.getFilter(),a+=r.locationAccuracy.getFilter(),a+=r.roadTypes.getFilter(),a+=r.speedLimit.getFilter(),a+=r.roadWidth.getFilter(),a+=r.separator.getFilter(),a+=r.oneLane.getFilter();var i=JSON.parse(r.cityPopSizeRange.queryValue.toString());return a+=Z(i.min,i.max)},this.setFiltersText=function(e){r.startYear.setText(),r.endYear.setText(),r.injTypes.setText(e),r.dayNight.setText(e),r.genderTypes.setText(e),r.ageTypes.setText(e),r.populationTypes.setText(e),r.locationAccuracy.setText(e),r.roadTypes.setText(e),r.cities.setText(),r.roads.setText(),r.cityPopSizeRange.setText(),r.accidentType.setText(e),r.vehicleType.setText(e),r.involvedVehicle.setText(e)},Object(P.a)(this,"setBrowserQueryString",ir,this),Object(P.a)(this,"setStoreByQuery",nr,this),this.getFilterForPost=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a='{"$and" : [';return a+='{"accident_year": { "$gte" : '.concat(r.startYear,',"$lte": ').concat(r.endYear,"}}"),t&&null!=e&&(a+=$(e)),a+="]}"},Object(P.a)(this,"updateFilters",or,this),this.getfilterBySeverityAndCity=function(){var e="?";return e+=r.startYear.getFilter(),e+=r.injurySeverity.getFilter(),e+=r.cities.getFilter()},this.getFilterFromArray=function(e,t){var r="";return e.length>0&&""!==e[0]&&(r+=',{"$or": [',r+=e.map((function(e){return'{"'.concat(t,'" : "').concat(e.trim(),'"}')})).join(","),r+="]}"),r},this.getFilterFromNumArray=function(e,t){var r="";return e.length>0&&(r+=',{"$or": [',r+=e.map((function(e){return'{"'.concat(t,'" : ').concat(parseInt(e,10),"}")})).join(","),r+="]}"),r},Object(P.a)(this,"useLocalDb",sr,this),this.submitMainDataFilterLocalDb=function(){r.isLoading=!0;var e=r.getFilterIDB();r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Ce(e).then((function(e){null!==e&&void 0!==e&&r.updateAllInjuries(e),r.isLoading=!1}))},this.submintGetMarkersBBoxIdb=function(e){Ce(r.getFilterBboxIDB(e)).then((function(e){null!==e&&void 0!==e&&r.rootStore.mapStore.updateDataMarkersInBounds(e)}))},this.getFilterIDB=function(){var e=[],t={filterName:"accident_year",startYear:r.startYear.queryValue.toString(),endYear:r.endYear.queryValue.toString()};return e.push(t),r.getfilterCityIDB(e),r.getFilterStreetsIDB(e),r.getMultiplefilterIDB(e,r.dayNight),r.getFilterFromArrayIDb(e,"road_segment_name",r.roadSegment.arrValues),r.getMultiplefilterIDB(e,r.roadTypes),r.getMultiplefilterIDB(e,r.injTypes),r.getMultiplefilterIDB(e,r.genderTypes),r.getMultiplefilterIDB(e,r.ageTypes),r.getMultiplefilterIDB(e,r.populationTypes),r.getMultiplefilterIDB(e,r.accidentType),r.getMultiplefilterIDB(e,r.vehicleType),r.getMultiplefilterIDB(e,r.roadTypes),r.getMultiplefilterIDB(e,r.speedLimit),r.getMultiplefilterIDB(e,r.roadWidth),r.getMultiplefilterIDB(e,r.separator),r.getMultiplefilterIDB(e,r.oneLane),e},this.getFilterBboxIDB=function(e){var t=[],a={filterName:"bbox",p1:e.getSouthWest,p2:e.getNorthEast};t.push(a);var i={filterName:"accident_year",startYear:r.startYear.queryValue.toString(),endYear:r.endYear.queryValue.toString()};return t.push(i),r.getfilterCityIDB(t),r.getFilterStreetsIDB(t),r.getMultiplefilterIDB(t,r.dayNight),r.getFilterFromArrayIDb(t,"road_segment_name",r.roadSegment.arrValues),r.getMultiplefilterIDB(t,r.roadTypes),r.getMultiplefilterIDB(t,r.injTypes),r.getMultiplefilterIDB(t,r.genderTypes),r.getMultiplefilterIDB(t,r.ageTypes),r.getMultiplefilterIDB(t,r.populationTypes),r.getMultiplefilterIDB(t,r.accidentType),r.getMultiplefilterIDB(t,r.vehicleType),r.getMultiplefilterIDB(t,r.roadTypes),r.getMultiplefilterIDB(t,r.speedLimit),r.getMultiplefilterIDB(t,r.roadWidth),r.getMultiplefilterIDB(t,r.separator),r.getMultiplefilterIDB(t,r.oneLane),t},this.getMultiplefilterIDB=function(e,t){if(!(t.allTypesOption>-1&&t.arrTypes[t.allTypesOption].checked)){var r,a=!0,i=[],n=t.arrTypes.values(),o=Object(R.a)(n);try{for(o.s();!(r=o.n()).done;){var s=r.value;s.checked?i=[].concat(Object(D.a)(i),Object(D.a)(s.filters)):a=!1}}catch(u){o.e(u)}finally{o.f()}if(!a){var c=i.map((function(e){return-1===e?null:e})),l={filterName:t.queryColName,values:c};e.push(l)}}},this.getfilterCityIDB=function(e){if(r.cities.arrValues.length>0){var t={filterName:"accident_yishuv_name",values:r.cities.arrValues};e.push(t)}},this.getFilterStreetsIDB=function(e){if(r.streets.arrValues.length>0&&""!==r.streets.arrValues[0]){var t={filterName:"street1_hebrew",values:r.streets.arrValues.map((function(e){return e.trim()}))};e.push(t)}},this.getFilterFromArrayIDb=function(e,t,r){if(r.length>0&&""!==r[0]){var a={filterName:t,values:r.map((function(e){return e.trim()}))};e.push(a)}},this.rootStore=t,this.injurySeverity=function(){var e=new J("Severity","sev",-1,!1);return e.arrTypes.push(new W("dead",!0,[1])),e.arrTypes.push(new W("severly-injured",!1,[2])),e.setQueryVals(),e}(),this.setCasualtiesNames(this.injurySeverity),this.startYear=new ie("FromYear","sy",-1,oe,2016),this.endYear=new ie("ToYear","ey",-1,oe,2021),this.dayNight=function(){var e=new J("DayNight","dn");return e.arrTypes.push(new W("day",!0,[1])),e.arrTypes.push(new W("night",!0,[5])),e}(),this.locationAccuracy=function(){var e=new J("LocationAccuracy","lca");return e.arrTypes.push(new W("accurate_location",!0,[1])),e.arrTypes.push(new W("city_center",!0,[2])),e.arrTypes.push(new W("road_center",!0,[3])),e.arrTypes.push(new W("km_cneter",!0,[4])),e.arrTypes.push(new W("no_location",!0,[9])),e}(),this.roadTypes=function(){var e=new J("RoadType","rt");return e.arrTypes.push(new W("urban-junction",!0,[1])),e.arrTypes.push(new W("urban-road",!0,[2])),e.arrTypes.push(new W("non-urban-junction",!0,[3])),e.arrTypes.push(new W("non-urban-road",!0,[4])),e}(),this.roads=new ee("Road","rd",!1),this.roadSegment=new ee("RoadSegment","rds",!0),this.cities=new ee("City","city",!0),this.streets=new ee("Street","st",!0),this.cityPopSizeRange=new ne("city_size","p1",0,se,'{"min":-1,"max":-1}'),this.genderTypes=function(){var e=new J("Gender","sex");return e.arrTypes.push(new W("female",!0,[2])),e.arrTypes.push(new W("male",!0,[1])),e}(),this.ageTypes=function(){var e=new J("Age","age",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("00-04",!1,[1])),e.arrTypes.push(new W("05-09",!1,[2])),e.arrTypes.push(new W("10-14",!1,[3])),e.arrTypes.push(new W("15-19",!1,[4])),e.arrTypes.push(new W("20-29",!1,[5,6])),e.arrTypes.push(new W("30-39",!1,[7,8])),e.arrTypes.push(new W("40-49",!1,[9,10])),e.arrTypes.push(new W("50-59",!1,[11,12])),e.arrTypes.push(new W("60-69",!1,[13,14])),e.arrTypes.push(new W("70-79",!1,[15,16])),e.arrTypes.push(new W("80+",!1,[17,18])),e.arrTypes.push(new W("unknown",!1,[99])),e}(),this.populationTypes=function(){var e=new J("Population","pt");return e.arrTypes.push(new W("jews",!0,[1])),e.arrTypes.push(new W("arabs",!0,[2])),e.arrTypes.push(new W("immigrants",!0,[4])),e.arrTypes.push(new W("others",!0,[3])),e}(),this.accidentType=function(){var e=new J("AccidentType","acc",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("accType.ped",!1,[1])),e.arrTypes.push(new W("accType.front-side",!1,[2])),e.arrTypes.push(new W("accType.front-front",!1,[5])),e.arrTypes.push(new W("accType.front-rear",!1,[3])),e.arrTypes.push(new W("accType.side-side",!1,[4])),e.arrTypes.push(new W("accType.obstacle1",!1,[6])),e.arrTypes.push(new W("accType.obstacle2",!1,[7])),e.arrTypes.push(new W("accType.obstacle3",!1,[8])),e.arrTypes.push(new W("accType.offroad",!1,[9])),e.arrTypes.push(new W("accType.turning-over",!1,[10])),e.arrTypes.push(new W("accType.slip",!1,[11])),e.arrTypes.push(new W("accType.passenger",!1,[12])),e.arrTypes.push(new W("accType.falloff",!1,[13])),e.arrTypes.push(new W("accType.rear-front",!1,[17])),e.arrTypes.push(new W("accType.rear-side",!1,[18])),e.arrTypes.push(new W("accType.animal",!1,[19])),e.arrTypes.push(new W("accType.cargo",!1,[20])),e.arrTypes.push(new W("accType.other",!1,[15])),e}(),this.injTypes=function(){var e=new J("TypeInjured","injt",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("pedestrian",!1,[1])),e.arrTypes.push(new W("cyclist",!1,[6,7])),e.arrTypes.push(new W("other",!1,[8,9])),e.arrTypes.push(new W("motorcycle",!1,[4,5])),e.arrTypes.push(new W("wheels4+",!1,[2,3])),e}(),this.vehicleType=U(),this.involvedVehicle=function(){var e=new J("Vehicles","vcli",0);return e.arrTypes.push(new W("vclType.all",!0,[])),e.arrTypes.push(new W("vclType.mobilityscooter",!1,[22])),e.arrTypes.push(new W("vclType.bicycle",!1,[15])),e.arrTypes.push(new W("vclType.e-scooter",!1,[21])),e.arrTypes.push(new W("vclType.e-bike",!1,[23])),e.arrTypes.push(new W("vclType.motorcycle",!1,[8])),e.arrTypes.push(new W("vclType.car",!1,[1])),e.arrTypes.push(new W("vclType.taxi",!1,[12])),e.arrTypes.push(new W("vclType.tranzit",!1,[2])),e.arrTypes.push(new W("vclType.tender",!1,[3])),e.arrTypes.push(new W("vclType.bus",!1,[11])),e.arrTypes.push(new W("vclType.truck",!1,[5])),e.arrTypes.push(new W("vclType.tractor",!1,[14])),e.arrTypes.push(new W("vclType.train",!1,[16])),e.arrTypes.push(new W("vclType.other",!1,[17])),e}(),this.speedLimit=function(){var e=new J("SpeedLimit","sp",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("speed50",!1,[1])),e.arrTypes.push(new W("speed60",!1,[2])),e.arrTypes.push(new W("speed70",!1,[3])),e.arrTypes.push(new W("speed80",!1,[4])),e.arrTypes.push(new W("speed90",!1,[5])),e.arrTypes.push(new W("speed100",!1,[6])),e.arrTypes.push(new W("speed110",!1,[7])),e.arrTypes.push(new W("speed120",!1,[8])),e.arrTypes.push(new W("speed-unknown",!1,[0])),e}(),this.roadWidth=function(){var e=new J("RoadWidth","rw",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("road-width-5",!1,[1])),e.arrTypes.push(new W("road-width-7",!1,[2])),e.arrTypes.push(new W("road-width-10",!1,[3])),e.arrTypes.push(new W("road-width-14",!1,[4])),e.arrTypes.push(new W("road-width-14+",!1,[5])),e.arrTypes.push(new W("unknown",!1,[0])),e}(),this.separator=function(){var e=new J("Separator","ml",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("separator-fence",!1,[2])),e.arrTypes.push(new W("separator-built",!1,[3])),e.arrTypes.push(new W("separator-not-built",!1,[4])),e.arrTypes.push(new W("separator-paint",!1,[1])),e.arrTypes.push(new W("separator-ohter",!1,[5])),e}(),this.oneLane=function(){var e=new J("OneLane","ol",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("onelane-oneway",!1,[1])),e.arrTypes.push(new W("onelane-twoway-line",!1,[2])),e.arrTypes.push(new W("onelane-twoway-noline",!1,[3])),e.arrTypes.push(new W("onelane-unknown",!1,[9])),e}();var a=this.useGetFetch?pe():he();this.groupByDict=new de(a,"gb","injt");var i=function(e){return e?fe():je()}(this.useGetFetch);this.group2Dict=new de(i,"gb2","sex"),this.dataByYears=_,this.dataFilterdByYears=K,this.dataFilterd=q,this.dataGroupby2=E,this.appInitialized=!1,this.localStorageService=new Qr}return Object(G.a)(e,[{key:"isValidSeverity",get:function(){return!this.injurySeverity.isAllValsFalse}},{key:"getCityNameFromQuery",value:function(e,t){var r=t?[t]:[],a=e.get("city");if(null!==a){var i=a.split(",");i.length>1&&this.isMultipleCities?r=i:Yr.includes(a)&&(r=[Yr.find((function(e){return e===a}))])}return r}},{key:"isValidWhere",get:function(){return!this.roadTypes.isAllValsFalse&&!this.locationAccuracy.isAllValsFalse}},{key:"isValidWhen",get:function(){return!this.dayNight.isAllValsFalse}},{key:"isValidWho",get:function(){return!this.genderTypes.isAllValsFalse&&!this.ageTypes.isAllValsFalse&&!this.populationTypes.isAllValsFalse}},{key:"isValidWhat",get:function(){return!this.accidentType.isAllValsFalse}},{key:"isValidWhatVehicle",get:function(){return!this.injTypes.isAllValsFalse&&!this.vehicleType.isAllValsFalse&&!this.involvedVehicle.isAllValsFalse}},{key:"isValidWhatRoad",get:function(){return!this.speedLimit.isAllValsFalse&&!this.roadWidth.isAllValsFalse&&!this.separator.isAllValsFalse&&!this.oneLane.isAllValsFalse}},{key:"isValidAllFilters",get:function(){return this.isValidSeverity&&this.isValidWhen&&this.isValidWho&&this.isValidWhere&&this.isValidWhat&&this.isValidWhatVehicle&&this.isValidWhatRoad}}]),e}(),ke=Object(Q.a)(Fe.prototype,"filtersArrayLocalStorage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Ve=Object(Q.a)(Fe.prototype,"setCurrentFiltersArrayLocalStorage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.filtersArrayLocalStorage=e.localStorageService.getLoaclStorage("my-filters")}}}),ze=Object(Q.a)(Fe.prototype,"updateFilterArrayLocalStorage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.filtersArrayLocalStorage=e.localStorageService.getLoaclStorage("my-filters"),e.filtersArrayLocalStorage.push(t),e.localStorageService.setLocalStorage("my-filters",e.filtersArrayLocalStorage)}}}),Me=Object(Q.a)(Fe.prototype,"showAllVehicleTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Ae=Object(Q.a)(Fe.prototype,"updateShowAllVehicleTypes",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showAllVehicleTypes=t,e.showAllVehicleTypes?e.vehicleType=U():e.vehicleType=function(){var e=new J("VehicleType","vcl",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("pedestrian",!1,[0])),e.arrTypes.push(new W("mobilityscooter",!1,[22])),e.arrTypes.push(new W("bicycle",!1,[15])),e.arrTypes.push(new W("e-scooter",!1,[21])),e.arrTypes.push(new W("e-bike",!1,[23])),e.arrTypes.push(new W("motorcycle",!1,[8,9,10,19])),e.arrTypes.push(new W("car",!1,[1])),e.arrTypes.push(new W("taxi",!1,[12])),e.arrTypes.push(new W("tranzit",!1,[2])),e.arrTypes.push(new W("tender",!1,[3])),e.arrTypes.push(new W("bus",!1,[11,18])),e.arrTypes.push(new W("truck",!1,[24,25,5,6,7])),e.arrTypes.push(new W("tractor",!1,[14])),e.arrTypes.push(new W("train",!1,[16])),e.arrTypes.push(new W("other",!1,[17])),e}()}}}),Le=Object(Q.a)(Fe.prototype,"isUpdateFromUrl",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),Ie=Object(Q.a)(Fe.prototype,"setIsUpdateFromUrl",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isUpdateFromUrl=t}}}),Ne=Object(Q.a)(Fe.prototype,"formCardKey",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),De=Object(Q.a)(Fe.prototype,"setFormCardKey",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.formCardKey=t}}}),Re=Object(Q.a)(Fe.prototype,"injurySeverity",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Pe=Object(Q.a)(Fe.prototype,"updateInjurySeverity",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.injurySeverity,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidSeverity",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidSeverity"),Fe.prototype),Ge=Object(Q.a)(Fe.prototype,"casualtiesNames",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"casualties"}}),Qe=Object(Q.a)(Fe.prototype,"setCasualtiesNames",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r="casualties",a=t.arrTypes[0],i=t.arrTypes[1];a.checked&&!i.checked?r="killed":!a.checked&&i.checked&&(r="severely-injured"),e.casualtiesNames=r}}}),Ye=Object(Q.a)(Fe.prototype,"isMultipleCities",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),We=Object(Q.a)(Fe.prototype,"setIsMultipleCities",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isMultipleCities=t}}}),_e=Object(Q.a)(Fe.prototype,"cities",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ke=Object(Q.a)(Fe.prototype,"updateCities",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.cities.setFilter(t),0===e.cities.arrValues.length)e.streets.arrValues=[];else if(r){var a=Object(N.a)(e.cities.arrValues,1);e.cityResult=a[0]}}}}),qe=Object(Q.a)(Fe.prototype,"cityResult",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),Ee=Object(Q.a)(Fe.prototype,"streets",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),He=Object(Q.a)(Fe.prototype,"updateStreets",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.streets.setFilter(t.split(","))}}}),Je=Object(Q.a)(Fe.prototype,"roads",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ue=Object(Q.a)(Fe.prototype,"setRoads",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.roads.setFilter(t)}}}),Xe=Object(Q.a)(Fe.prototype,"cityPopSizeRange",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ze=Object(Q.a)(Fe.prototype,"setCityPopSizeRange",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.cityPopSizeRange.setFilter(t)}}}),$e=Object(Q.a)(Fe.prototype,"roadSegment",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),et=Object(Q.a)(Fe.prototype,"updateRoadSegment",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.roadSegment.setFilter(t.split(","))}}}),tt=Object(Q.a)(Fe.prototype,"roadTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),rt=Object(Q.a)(Fe.prototype,"updateRoadType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.roadTypes,t,r)}}}),at=Object(Q.a)(Fe.prototype,"locationAccuracy",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),it=Object(Q.a)(Fe.prototype,"updateLocationAccuracy",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.locationAccuracy,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhere",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhere"),Fe.prototype),nt=Object(Q.a)(Fe.prototype,"startYear",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ot=Object(Q.a)(Fe.prototype,"setStartYear",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.startYear.setFilter(parseInt(t))}}}),st=Object(Q.a)(Fe.prototype,"endYear",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ct=Object(Q.a)(Fe.prototype,"setEndYear",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.endYear.setFilter(parseInt(t))}}}),lt=Object(Q.a)(Fe.prototype,"dayNight",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ut=Object(Q.a)(Fe.prototype,"updateDayNight",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.dayNight,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhen",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhen"),Fe.prototype),pt=Object(Q.a)(Fe.prototype,"genderTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ht=Object(Q.a)(Fe.prototype,"updateGenderType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.genderTypes,t,r)}}}),bt=Object(Q.a)(Fe.prototype,"ageTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),yt=Object(Q.a)(Fe.prototype,"updateAgeType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.ageTypes,t,r)}}}),dt=Object(Q.a)(Fe.prototype,"populationTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ft=Object(Q.a)(Fe.prototype,"updatePopulationType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.populationTypes,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWho",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWho"),Fe.prototype),jt=Object(Q.a)(Fe.prototype,"accidentType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),gt=Object(Q.a)(Fe.prototype,"updateAccidentType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.accidentType,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhat",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhat"),Fe.prototype),mt=Object(Q.a)(Fe.prototype,"injTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),vt=Object(Q.a)(Fe.prototype,"updateInjuerdType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.injTypes,t,r)}}}),Ot=Object(Q.a)(Fe.prototype,"vehicleType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),wt=Object(Q.a)(Fe.prototype,"updateVehicleType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.vehicleType,t,r)}}}),Tt=Object(Q.a)(Fe.prototype,"involvedVehicle",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),xt=Object(Q.a)(Fe.prototype,"setInvolvedVehicle",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.involvedVehicle,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhatVehicle",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhatVehicle"),Fe.prototype),St=Object(Q.a)(Fe.prototype,"speedLimit",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ct=Object(Q.a)(Fe.prototype,"roadWidth",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Bt=Object(Q.a)(Fe.prototype,"updateRoadWidth",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.roadWidth,t,r)}}}),Ft=Object(Q.a)(Fe.prototype,"separator",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),kt=Object(Q.a)(Fe.prototype,"updateSeparator",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.separator,t,r)}}}),Vt=Object(Q.a)(Fe.prototype,"oneLane",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),zt=Object(Q.a)(Fe.prototype,"updateOneLane",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.oneLane,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhatRoad",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhatRoad"),Fe.prototype),Mt=Object(Q.a)(Fe.prototype,"injuriesCount",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),At=Object(Q.a)(Fe.prototype,"setInjuriesCount",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.injuriesCount=t,e.isLoadingInjuriesCount=!1}}}),Lt=Object(Q.a)(Fe.prototype,"isLoadingInjuriesCount",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),It=Object(Q.a)(Fe.prototype,"dataAllInjuries",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Nt=Object(Q.a)(Fe.prototype,"updateAllInjuries",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMarkersLoadStep(2),e.dataAllInjuries=t,e.rootStore.mapStore.setBounds(t,e.cities.arrValues),e.rootStore.mapStore.bboxType===Gr.a.LOCAL_BBOX&&e.rootStore.mapStore.getMarkersInLocalBBox(.1)}}}),Dt=Object(Q.a)(Fe.prototype,"dataMarkersLean",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Rt=Object(Q.a)(Fe.prototype,"updateDataMarkersLean",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMarkersLoadStep(1),e.dataMarkersLean=t}}}),Pt=Object(Q.a)(Fe.prototype,"dataByYears",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Gt=Object(Q.a)(Fe.prototype,"dataFilterdByYears",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Qt=Object(Q.a)(Fe.prototype,"setDataFilterdByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.dataFilterdByYears=t}}}),Yt=Object(Q.a)(Fe.prototype,"dataFilterd",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Wt=Object(Q.a)(Fe.prototype,"dataGroupby2",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),_t=Object(Q.a)(Fe.prototype,"isLoading",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Object(Q.a)(Fe.prototype,"isValidAllFilters",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidAllFilters"),Fe.prototype),Kt=Object(Q.a)(Fe.prototype,"updateGroupby",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){if(e.groupByDict.setFilter(t),e.groupByDict.setBrowserQueryString(),e.useGetFetch||"CityByPop"!==e.groupByDict.groupBy.text?e.submitfilterdGroup(e.groupByDict.groupBy):e.submitfilterdGroupByPop(),"CityByPop"!==e.groupByDict.groupBy.text){var r=e.group2Dict.groupBy.name;e.submitfilterdGroup2(e.groupByDict.groupBy,r)}}}}),qt=Object(Q.a)(Fe.prototype,"groupByDict",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Et=Object(Q.a)(Fe.prototype,"submitGroupByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){if(e.useGetFetch){var t=e.getfilterBySeverityAndCity(),r=X(t,"year");Oe.fetchGetGroupBy(r).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.dataByYears=r}}))}else{var a=e.getfilterBySeverityAndCity(),i=X(a,"accident_year");Oe.fetchAggregate(i).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.dataByYears=r}}))}}}}),Ht=Object(Q.a)(Fe.prototype,"submitfilterdGroupByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.isLoadingInjuriesCount=!0;var t=JSON.parse(e.cityPopSizeRange.queryValue.toString());if(e.useGetFetch){var r=e.getFilterQueryString(null),a=X(r,"year",t.min,t.max);Oe.fetchGetGroupBy(a).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.setDataFilterdByYears(r);var a=e.getCountFromGroupByRes(t);e.setInjuriesCount(a)}}))}else{var i=e.getFilterForPost(null),n=X(i,"accident_year",t.min,t.max);Oe.fetchAggregate(n).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.setDataFilterdByYears(r);var a=e.getCountFromGroupByRes(t);e.setInjuriesCount(a)}}))}}}}),Jt=Object(Q.a)(Fe.prototype,"submitfilterdGroup",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=JSON.parse(e.cityPopSizeRange.queryValue.toString());if(e.useGetFetch){var a=e.getFilterQueryString(null),i=X(a,t.value,r.min,r.max,"",t.limit,t.sort);Oe.fetchGetGroupBy(i).then((function(r){t.reGroupResultFunc&&(r=t.reGroupResultFunc(r)),void 0!==r&&(e.dataFilterd=r)}))}else{var n=e.getFilterForPost(null),o=X(n,t.value,r.min,r.max,"",t.limit);Oe.fetchAggregate(o).then((function(t){void 0!==t&&(e.dataFilterd=t)}))}}}}),Ut=Object(Q.a)(Fe.prototype,"submitfilterdGroupByPop",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=JSON.parse(e.cityPopSizeRange.queryValue.toString()),r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e5,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e5,a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,n="".concat('[{"$match": ').concat(e,"}");return n+=',{"$lookup":{ "from": "cities", "localField": "accident_yishuv_name", "foreignField": "name_he","as": "city"}}',t>=0&&r>0&&(n+=',{ "$match": { "city.population": { "$gte" : '.concat(t,' , "$lte" : ').concat(r,"}}}")),n+=',{"$group": {"_id": "$accident_yishuv_name","t_count" : { "$sum" : 1 },"t_population" : { "$first" : "$city.population" }}}',n+=',{ "$unwind" : "$t_population"}',n+=',{ "$project" : { "count" :{ "$multiply" : [100000, { "$divide" : ["$t_count", "$t_population"] } ]}}}',n+=0===i?',{"$sort": {"count": '.concat(a,"}}"):"".concat(',{"$sort": {"count": '.concat(a,"}}")+',{"$limit": ').concat(i,"}"),n+"]"}(e.getFilterForPost(null),t.min,t.max,-1,15);Oe.fetchAggregate(r).then((function(t){void 0!==t&&(e.dataFilterd=t)}))}}}),Xt=Object(Q.a)(Fe.prototype,"submitfilterdGroup2",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.useGetFetch){var a=JSON.parse(e.cityPopSizeRange.queryValue.toString()),i=e.getFilterQueryString(null),n=X(i,t.value,a.min,a.max,r,t.limit);Oe.fetchGetGroupBy(n).then((function(t){if(void 0!==t&&t.length>0)try{var r=e.group2Dict.groupBy.fixStrcutTable(t);e.dataGroupby2=r}catch(a){Pr.a.log(a),e.dataGroupby2=[]}else e.dataGroupby2=[]}))}else{var o=JSON.parse(e.cityPopSizeRange.queryValue.toString()),s=e.getFilterForPost(null),c=X(s,t.value,o.min,o.max,r,t.limit);Oe.fetchAggregate(c).then((function(t){if(void 0!==t&&t.length>0)try{var r=e.group2Dict.groupBy.fixStrcutTable(t);e.dataGroupby2=r}catch(a){Pr.a.log(a),e.dataGroupby2=[]}else e.dataGroupby2=[]}))}}}}),Zt=Object(Q.a)(Fe.prototype,"updateGroupBy2",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.group2Dict.setFilter(t),e.group2Dict.setBrowserQueryString();var r=e.group2Dict.groupBy.name;e.submitfilterdGroup2(e.groupByDict.groupBy,r)}}}),$t=Object(Q.a)(Fe.prototype,"group2Dict",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),er=Object(Q.a)(Fe.prototype,"isUse2StepsMarkers",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),tr=Object(Q.a)(Fe.prototype,"markersLoadStep",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 1}}),rr=Object(Q.a)(Fe.prototype,"setMarkersLoadStep",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isUse2StepsMarkers&&(e.markersLoadStep=t)}}}),ar=Object(Q.a)(Fe.prototype,"submitFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){2===e.useLocalDb?e.submitMainDataFilterLocalDb():(e.rootStore.mapStore.bboxType===Gr.a.SERVER_BBOX&&e.rootStore.mapStore.submintGetMarkersBBox(),e.isUse2StepsMarkers&&e.submintGetMarkerFirstStep(),e.submintMainDataFilter()),e.submitCityNameAndLocation(),e.submitGroupByYears(),e.submitfilterdGroupByYears(),e.useGetFetch||"CityByPop"!==e.groupByDict.groupBy.text?e.submitfilterdGroup(e.groupByDict.groupBy):e.submitfilterdGroupByPop(),e.submitfilterdGroup2(e.groupByDict.groupBy,e.group2Dict.groupBy.name),e.setCasualtiesNames(e.injurySeverity);var t=e.rootStore.uiStore.language;"city"===e.rootStore.uiStore.currentPage&&e.rootStore.imageStore.getImagesByPlace(e.cityResult,t)}}}),ir=Object(Q.a)(Fe.prototype,"setBrowserQueryString",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=new URLSearchParams(location.search);t.set("tab",e.rootStore.uiStore.currentTab),e.startYear.setBrowserQueryString(t,!1),e.endYear.setBrowserQueryString(t,!1),e.injurySeverity.setBrowserQueryString(t,!1),e.roadTypes.setBrowserQueryString(t),e.injTypes.setBrowserQueryString(t),e.genderTypes.setBrowserQueryString(t),e.ageTypes.setBrowserQueryString(t),e.populationTypes.setBrowserQueryString(t),e.cities.setBrowserQueryString(t),e.roads.setBrowserQueryString(t),e.locationAccuracy.setBrowserQueryString(t),e.accidentType.setBrowserQueryString(t),e.vehicleType.setBrowserQueryString(t),e.involvedVehicle.setBrowserQueryString(t),e.speedLimit.setBrowserQueryString(t),e.roadWidth.setBrowserQueryString(t),e.separator.setBrowserQueryString(t),e.oneLane.setBrowserQueryString(t),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t.toString())),e.groupByDict.setBrowserQueryString()}}}),nr=Object(Q.a)(Fe.prototype,"setStoreByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.startYear.setValuesByQuery(t),e.endYear.setValuesByQuery(t),e.injurySeverity.setValuesByQuery(t),e.dayNight.setValuesByQuery(t);var a=e.getCityNameFromQuery(t,r);a&&e.updateCities(a,!0),e.locationAccuracy.setValuesByQuery(t),e.roadTypes.setValuesByQuery(t),e.injTypes.setValuesByQuery(t),e.genderTypes.setValuesByQuery(t),e.ageTypes.setValuesByQuery(t),e.populationTypes.setValuesByQuery(t),e.accidentType.setValuesByQuery(t),e.vehicleType.setValuesByQuery(t),e.involvedVehicle.setValuesByQuery(t),e.speedLimit.setValuesByQuery(t),e.roadWidth.setValuesByQuery(t),e.separator.setValuesByQuery(t),e.oneLane.setValuesByQuery(t),e.groupByDict.setValuesByQuery(t),e.group2Dict.setValuesByQuery(t)}}}),or=Object(Q.a)(Fe.prototype,"updateFilters",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return function(e,t,r){e.setFilter(t,r),-1===e.allTypesOption?e.arrTypes[t].checked=r:t===e.allTypesOption?e.arrTypes.forEach((function(t,a){return t.checked=a===e.allTypesOption?r:!r})):(e.arrTypes[e.allTypesOption].checked=!1,e.arrTypes[t].checked=r)}}}),sr=Object(Q.a)(Fe.prototype,"useLocalDb",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),Fe),_r=r(45),Kr=(cr=function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,Object(P.a)(this,"language",lr,this),Object(P.a)(this,"updateLanguage",ur,this),Object(P.a)(this,"direction",pr,this),Object(P.a)(this,"setDirection",hr,this),this.reactionChangeLang=Object(Y.o)((function(){return r.language}),(function(e){H.a.changeLanguage(e)})),this.initLang=function(){try{var e=localStorage.getItem("lang");if(null!==e){var t=JSON.parse(e);r.updateLanguage(t)}}catch(a){Pr.a.log(a)}},Object(P.a)(this,"showFilterModal",br,this),Object(P.a)(this,"setShowFilterModal",yr,this),Object(P.a)(this,"initPage",dr,this),Object(P.a)(this,"setInitPage",fr,this),Object(P.a)(this,"setStoreByQuery",jr,this),this.getValFromQuery=function(e,t,r){var a=e.get(t);return null!==a?a:r},Object(P.a)(this,"currentPage",gr,this),Object(P.a)(this,"setCurrentPage",mr,this),Object(P.a)(this,"currentTab",vr,this),Object(P.a)(this,"setCurrentTab",Or,this),Object(P.a)(this,"setQueryStrTab",wr,this),Object(P.a)(this,"searchParams",Tr,this),Object(P.a)(this,"chartType",xr,this),Object(P.a)(this,"chartTypeList",Sr,this),Object(P.a)(this,"updateChartType",Cr,this),Object(P.a)(this,"showPercentageChart",Br,this),Object(P.a)(this,"updateShowPercentageChart",Fr,this),this.rootStore=t,this.initLang(),this.appInitialized=!1},lr=Object(Q.a)(cr.prototype,"language",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"he"}}),ur=Object(Q.a)(cr.prototype,"updateLanguage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.language=t,localStorage.setItem("lang",JSON.stringify(t));var r="en"===t?"ltr":"rtl";e.setDirection(r)}}}),pr=Object(Q.a)(cr.prototype,"direction",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"rtl"}}),hr=Object(Q.a)(cr.prototype,"setDirection",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.direction=t}}}),br=Object(Q.a)(cr.prototype,"showFilterModal",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),yr=Object(Q.a)(cr.prototype,"setShowFilterModal",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showFilterModal=t}}}),dr=Object(Q.a)(cr.prototype,"initPage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),fr=Object(Q.a)(cr.prototype,"setInitPage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.initPage=t}}}),jr=Object(Q.a)(cr.prototype,"setStoreByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){var a=new URLSearchParams(window.location.search),i=e.getValFromQuery(a,"tab",t);i&&e.setCurrentTab(i),e.rootStore.filterStore.setStoreByQuery(a,r),e.rootStore.mapStore.setStoreByQuery(a)}}}),gr=Object(Q.a)(cr.prototype,"currentPage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"home"}}),mr=Object(Q.a)(cr.prototype,"setCurrentPage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currentPage=t}}}),vr=Object(Q.a)(cr.prototype,"currentTab",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"charts"}}),Or=Object(Q.a)(cr.prototype,"setCurrentTab",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currentTab=t,e.setQueryStrTab()}}}),wr=Object(Q.a)(cr.prototype,"setQueryStrTab",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){Object(_r.b)("tab",e.currentTab)}}}),Tr=Object(Q.a)(cr.prototype,"searchParams",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),xr=Object(Q.a)(cr.prototype,"chartType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"BarChart"}}),Sr=Object(Q.a)(cr.prototype,"chartTypeList",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return["BarChart","PieChart","HorizontalBar"]}}),Cr=Object(Q.a)(cr.prototype,"updateChartType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.chartType=t}}}),Br=Object(Q.a)(cr.prototype,"showPercentageChart",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Fr=Object(Q.a)(cr.prototype,"updateShowPercentageChart",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showPercentageChart=t}}}),cr),qr=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=""===r?"/api/v1/img/tags/".concat(t):"/api/v1/img/tags/".concat(r,"/").concat(t),e.next=3,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Er=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/img/place/".concat(r,"/").concat(t),e.next=3,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Hr=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r,a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t.file){e.next=2;break}return e.abrupt("return",[]);case 2:return(a=new FormData).append("titlehe",t.titlehe),a.append("texthe",t.texthe),a.append("image",t.file),a.append("tags",t.tags),a.append("place",t.place),void 0!==t.index&&a.append("index",null===(r=t.index)||void 0===r?void 0:r.toString()),"/api/v1/img/",e.next=12,fetch("/api/v1/img/",{method:"POST",mode:"cors",body:a});case 12:if((i=e.sent).ok){e.next=15;break}return e.abrupt("return",[]);case 15:return e.abrupt("return",i.json());case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Jr=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"/api/v1/img/props",e.next=3,fetch("/api/v1/img/props",{method:"PUT",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(t)});case 3:if((r=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",r.json());case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ur=(kr=function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,Object(P.a)(this,"imageList",Vr,this),Object(P.a)(this,"setImageList",zr,this),Object(P.a)(this,"isLoading",Mr,this),Object(P.a)(this,"currTag",Ar,this),Object(P.a)(this,"setCurrTag",Lr,this),this.tagsArr=[{val:"\u05db\u05dc\u05dc\u05d9",text:"general"},{val:"\u05d4\u05d5\u05dc\u05db\u05d9 \u05e8\u05d2\u05dc",text:"pedestrian"},{val:"\u05e8\u05d5\u05db\u05d1\u05d9 \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd",text:"cyclist"},{val:"\u05e8\u05d5\u05db\u05d1\u05d9 \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2",text:"motorcycle"},{val:"\u05de\u05db\u05d5\u05e0\u05d9\u05d5\u05ea",text:"car"},{val:"\u05d0\u05d5\u05d8\u05d5\u05d1\u05d5\u05e1\u05d9\u05dd",text:"bus"},{val:"\u05d9\u05dc\u05d3\u05d9\u05dd",text:"kids"}],Object(P.a)(this,"currImage",Ir,this),Object(P.a)(this,"setCurrImage",Nr,this),Object(P.a)(this,"hideDescription",Dr,this),Object(P.a)(this,"toggleHideDescription",Rr,this),this.setCurrImageVal=function(e,t){null!==r.currImage&&(r.currImage[e]=t)},this.submitImageFile=function(){null!==r.currImage&&(0===r.currImage._id&&void 0!==r.currImage.file?Hr(r.currImage):Jr(r.currImage))},this.getImages=function(e){var t=r.rootStore.uiStore.language;if("city"===e){var a=r.rootStore.filterStore.cityResult;r.getImagesByPlace(a,t)}else r.getImagesByTag(r.currTag,t)},this.getImagesByTag=function(e,t){r.isLoading=!0,qr(e,t).then((function(e){null!==e&&void 0!==e&&r.setImageList(e),r.isLoading=!1}))},this.getImagesByPlace=function(e,t){Er(e,t).then((function(e){null!==e&&void 0!==e&&r.setImageList(e)}))},this.rootStore=t},Vr=Object(Q.a)(kr.prototype,"imageList",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),zr=Object(Q.a)(kr.prototype,"setImageList",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.imageList=t,e.imageList.length>0&&e.setCurrImage(e.imageList[0])}}}),Mr=Object(Q.a)(kr.prototype,"isLoading",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Ar=Object(Q.a)(kr.prototype,"currTag",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"\u05db\u05dc\u05dc\u05d9"}}),Lr=Object(Q.a)(kr.prototype,"setCurrTag",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currTag=t;var r=e.rootStore.uiStore.language;e.getImagesByTag(t,r)}}}),Ir=Object(Q.a)(kr.prototype,"currImage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),Nr=Object(Q.a)(kr.prototype,"setCurrImage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currImage=t}}}),Dr=Object(Q.a)(kr.prototype,"hideDescription",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Rr=Object(Q.a)(kr.prototype,"toggleHideDescription",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.hideDescription=!e.hideDescription,e.hideDescription?document.documentElement.style.setProperty("--image-gallery-description-visable","none"):document.documentElement.style.setProperty("--image-gallery-description-visable","inherit")}}}),kr),Xr=new function e(){Object(I.a)(this,e),this.appInitialized=!1,this.uiStore=void 0,this.mapStore=void 0,this.filterStore=void 0,this.imageStore=void 0,this.uiStore=new Kr(this),this.mapStore=new Gr.b(this),this.filterStore=new Wr(this),this.imageStore=new Ur(this)},Zr=L.a.createContext(Xr),$r=function(){var e=L.a.useContext(Zr);if(!e)throw new Error("You have forgot to use StoreProvider, shame on you.");return e}},147:function(e,t,r){"use strict";var a=r(70),i=(r(0),r(1));t.a=function(e){var t=e.children,r=e.header,n=e.style,o=r?Object(i.jsxs)(i.Fragment,{children:[" ",Object(i.jsx)("h6",{children:r})," ",Object(i.jsx)("hr",{})," "]}):null;return Object(i.jsxs)("div",{style:Object(a.a)({},n),className:"p-3 bg-white rounded shadow",children:[o,t]})}},188:function(e,t,r){"use strict";var a=r(0),i=r(144),n=r(16),o=r(1),s=function(e){var t=e.group,r=e.label,a=e.id,s=e.checked,c=e.onChange,l=Object(i.a)().t;return Object(o.jsx)(n.a.Check,{inline:!0,label:l(r),type:"checkbox",id:"cbox".concat(t).concat(a),checked:s,onChange:c})};t.a=Object(a.memo)(s)},191:function(e,t,r){"use strict";var a=r(0),i=r.n(a),n=r(144),o=r(116),s=r(69),c=r(11),l=r(10),u=r(1),p=Object(l.a)((function(e){var t=e.title,r=e.showModal,a=e.setShow,i=e.children,l=e.size,p=e.action,h=Object(n.a)().t,b=function(){return a(!1)},y=Object(c.a)().filterStore,d=p?Object(u.jsx)(o.a,{variant:"primary",onClick:p,disabled:y.isLoading||!y.isValidAllFilters,children:y.isLoading?h("Loading"):h("Submit")}):null;return Object(u.jsxs)(s.a,{size:l,show:r,onHide:b,children:[Object(u.jsx)(s.a.Header,{closeButton:!0,children:Object(u.jsx)(s.a.Title,{children:h(t)})}),Object(u.jsx)(s.a.Body,{style:{maxHeight:"calc(100vh - 240px)",overflowY:"auto"},children:i}),Object(u.jsxs)(s.a.Footer,{children:[d,Object(u.jsx)(o.a,{variant:"secondary",onClick:b,children:h("Close")})]})]})}));t.a=i.a.memo(p)},195:function(e){e.exports=JSON.parse('[{"_id":"2015","count":370},{"_id":"2016","count":391},{"_id":"2017","count":372},{"_id":"2018","count":327},{"_id":"2019","count":367}]')},196:function(e){e.exports=JSON.parse('[{"_id":"2015","count":370},{"_id":"2016","count":391},{"_id":"2017","count":372},{"_id":"2018","count":327},{"_id":"2019","count":367}]')},197:function(e){e.exports=JSON.parse('[{"_id":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","count":533},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","count":263},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","count":73},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","count":488},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","count":80},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)","count":16},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)","count":1},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","count":352},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","count":21}]')},198:function(e){e.exports=JSON.parse('[{"_id":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","female":198,"male":335},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","male":261,"female":2},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","male":68,"female":5},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","female":78,"male":409},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","male":77,"female":2},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)","male":12,"female":4},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)","male":1},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","female":163,"male":183},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","female":6,"male":15}]')},199:function(e){e.exports=JSON.parse('{"2015":"2015","2016":"2016","2017":"2017","2018":"2018","2019":"2019","2020":"2020","2021":"2021","test":"Test translation","Hebrew":"\u05e2\u05d1\u05e8\u05d9\u05ea","English":"English","Home":"Home","HeatMap":"Heat Map","Markers":"Markers","Cities":"Cities","About":"About","Israel":"Israel","Charts":"Charts","Groups":"Groups","Map":"Map","Chart Options":"Chart Options","ChartType":"Chart Type","BarChart":"Bar Chart","PieChart":"Pie Chart","HorizontalBar":"Horizontal Bar Chart","PercentageChart":"Percentage values","small-markers":"Small Marker","big-markers":"Big Marker","Table":"Table","Images":"Images","Filter Options":"Filter Options","HideFilter":"Hide Filter","ShowFilter":"Show Filter","Close":"Close","ShowAllVehicleTypes":"Show All Vehicle Types","When":"When","FromYear":"From Year","ToYear":"To Year","DayNight":"Day\\\\Night","day":"Day","night":"Night","WeekDay":"Week Day","Year":"Year","Month":"Month","Where":"Where","LocationAccuracy":"Location Accuracy","accurate_location":"Accurate Location","city_center":"city Center","road_center":"Road Center","km_cneter":"Km Center","no_location":"No Location","City":"City","CityByPop":"Per 100k residents","city_size":"City Population","200K-1000K":"200K-1000K","100K-200K":"100K-200K","50K-100K":"50K-100K","20K-50K":"20K-50K","10K-20K":"10K-20K","0-10K":"0-10K","Street":"Street","ChooseCity":"Choose a City...","several-cities":"Several Cities","Road":"Road","several-roads":"Several Roads","RoadSegment":"Road Segment","Who":"Who","Severity":"Severity","dead":"Dead","severly-injured":"Severly","Vehicle":"Vehicle","TypeInjured":"Type Injured","all":"All","pedestrian":"Pedestrian","cyclist":"Cyclist","motorcycle":"Motorcycle","Wheels4+":"4+ Wheels","other":"Micromobility","cyclist-d":"Cyclist, driver","cyclist-p":"Cyclist, passenger","inj-unknown-d":"Unknown, driver","inj-unknown-p":"Unknown, passenger","motorcycle-d":"Motorcycle, driver","motorcycle-p":"Motorcycle, passenger","wheels4+-d":"4+ Wheels, driver","wheels4+-p":"4+ Wheels, passenger","Gender":"Gender","female":"Female","male":"Male","Age":"Age","00-04":"00-04","05-09":"05-09","10-14":"10-14","15-19":"15-19","20-29":"20-29","30-39":"30-39","40-49":"40-49","50-59":"50-59","60-69":"60-69","70-79":"70-79","80+":"80+","_id":"type","Population":"Population","jews":"jews","arabs":"arabs","immigrants":"immigrants","others":"others","unknown":"unknown","What":"What","AccidentType":"Accident Type","accType":{"ped":"hit pedestrian","front-side":"front-side","front-front":"front-front","front-rear":"front-rear","side-side":"side-side","obstacle":"collision with object","obstacle1":"collision with stopped vehicle","obstacle2":"collision with parked vehicle","obstacle3":"collision with inanimate object","turning-over":"turning over","slip":"slip","offroad":"got off the road","passenger":"passenger hit inside the vehicle","falloff":"falling from a moving vehicle","other":"other","rear-front":"rear-front","rear-side":"rear-side","animal":"collision with animal","cargo":"hit by cargo"},"SelfOrNotAcc":"Self/Multiple","selfAccType":{"self":"self accident","non-self":"multiple accident"},"Vehicles":"Involved Vehicles","WhatVehicle":"What Vehicle","VehicleType":"Injured Vehicle","vclType":{"all":"All","pedestrian":"Pedestrian","mobilityscooter":"Mobility scooter","bicycle":"Bicycle","e-scooter":"E-scooter","e-bike":"E-bike","motorcycle":"Motorcycle","motorcycle1":"Motorcycle under 50 cc","motorcycle2":"Motorcycle 50-125 cc","motorcycle3":"Motorcycle 126-400 cc","motorcycle4":"Motorcycle 400+ cc","car":"Car","taxi":"Taxi","minbuss":"Minbuss","bus":"Nus","tranzit":"Tranzit","tender":"Tender","truck":"Truck","truck1":"Truck 3.6 - 9.9 ton","truck2":"Truck 10 - 12 ton","truck3":"Truck 12.1 - 15.9 ton","truck4":"Truck 16 - 33.9 ton","truck5":"Truck 34+ ton","tractor":"Tractor","train":"Train","other":"Other"},"WhatRoad":"What Road","RoadType":"Road Type","urban-junction":"Urban junction","urban-road":"Urban road","non-urban-junction":"Non-urban junction","non-urban-road":"Non-urban road","SpeedLimit":"Speed Limit","speed50":"Up to 50","speed60":"60","speed70":"70","speed80":"80","speed90":"90","speed100":"100","speed110":"110","speed120":"120","speed-unknown":"unknown","RoadWidth":"Road Width","road-width-5":"Up to 5 meters","road-width-7":"5-7 meters","road-width-10":"7-10.5 meters","road-width-14":"10.5-14 meters","road-width-14+":"14+ meters","MultiLane":"Multi Lane","Separator":"separator (in Multi Lane)","separator-fence":"fence","separator-built":"built, no fence","separator-not-built":"not built","separator-paint":"paint","separator-ohter":"oter","separator-not-relevant":"not-relevant","OneLane":"One Lane","onelane-twoway-line":"two-way + line","onelane-twoway-noline":"two-way no line","onelane-oneway":"one way","onelane-unknown":"unknown lane count","onelane-not-relevant":"not-relevant","check_one_checkbox":"Please Check at least one Checkbox.","Submit":"Submit","Loading":"Loading","in-region":"In The Region","casualties":"Casualties","killed":"Killed","severely-injured":"Severely-injured","by-years":"By Years","GroupBy":"Group By","Found":"Found","resize":"Resize","NoResultsFound":"No results found","export-to-csv":"Export to CSV","general":"General","kids":"Kids","hide-description":"Hide Text","show-description":"Show Text","not-found-images":"No photos found for this category","Filters":"Filters","My-Filters":"My-Filters","Filter":"Filter","Save":"Save","#Map":"=========Map==========","MarkersColorType":"Color By","MarkersIconType":"Icon By"}')},200:function(e){e.exports=JSON.parse('{"2015":"2015","2016":"2016","2017":"2017","2018":"2018","2019":"2019","2020":"2020","2021":"2021","test":"\u05d1\u05d3\u05d9\u05e7\u05ea \u05ea\u05e8\u05d2\u05d5\u05dd","Hebrew":"\u05e2\u05d1\u05e8\u05d9\u05ea","English":"English","Home":"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea","HeatMap":"\u05de\u05e4\u05ea \u05d7\u05d5\u05dd","Markers":"\u05e1\u05de\u05e0\u05d9\u05dd","Cities":"\u05d9\u05d9\u05e9\u05d5\u05d1\u05d9\u05dd","About":"\u05d0\u05d5\u05d3\u05d5\u05ea","Israel":"\u05d9\u05e9\u05e8\u05d0\u05dc","Charts":"\u05d2\u05e8\u05e4\u05d9\u05dd","Groups":"\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea","Map":"\u05de\u05e4\u05d4","Chart Options":"\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d2\u05e8\u05e4\u05d9\u05dd","ChartType":"\u05e1\u05d5\u05d2 \u05d2\u05e8\u05e3","BarChart":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05de\u05d5\u05d3\u05d5\u05ea","PieChart":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05d5\u05d2\u05d4","HorizontalBar":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05de\u05d5\u05d3\u05d5\u05ea \u05d0\u05d5\u05e4\u05e7\u05d9\u05d5\u05ea","PercentageChart":"\u05e2\u05e8\u05db\u05d9 \u05d0\u05d7\u05d5\u05d6\u05d9\u05dd","small-markers":"\u05e1\u05de\u05df \u05e7\u05d8\u05df","big-markers":"\u05e1\u05de\u05df \u05d2\u05d3\u05d5\u05dc","Table":"\u05d8\u05d1\u05dc\u05d4","Images":"\u05ea\u05de\u05d5\u05e0\u05d5\u05ea","Filter Options":"\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e1\u05d9\u05e0\u05d5\u05df","HideFilter":"\u05d4\u05e1\u05ea\u05e8 \u05e4\u05d9\u05dc\u05d8\u05e8","ShowFilter":"\u05d4\u05e6\u05d2 \u05e4\u05d9\u05dc\u05d8\u05e8","Close":"\u05e1\u05d2\u05d5\u05e8","ShowAllVehicleTypes":"\u05d4\u05e6\u05d2 \u05db\u05dc \u05e1\u05d5\u05d2\u05d9 \u05d4\u05e8\u05db\u05d1\u05d9\u05dd","When":"\u05de\u05ea\u05d9","FromYear":"\u05de\u05e9\u05e0\u05d4","ToYear":"\u05e2\u05d3 \u05e9\u05e0\u05d4","DayNight":"\u05d9\u05d5\u05dd\\\\\u05dc\u05d9\u05dc\u05d4","day":"\u05d9\u05d5\u05dd","night":"\u05dc\u05d9\u05dc\u05d4","WeekDay":"\u05d9\u05d5\u05dd \u05d1\u05e9\u05d1\u05d5\u05e2","Year":"\u05e9\u05e0\u05d4","Month":"\u05d7\u05d5\u05d3\u05e9","Where":"\u05d0\u05d9\u05e4\u05d4","LocationAccuracy":"\u05d3\u05d9\u05d5\u05e7 \u05de\u05d9\u05e7\u05d5\u05dd","accurate_location":"\u05e2\u05d9\u05d2\u05d5\u05df \u05de\u05d3\u05d5\u05d9\u05e7","city_center":"\u05de\u05e8\u05db\u05d6 \u05d9\u05e9\u05d5\u05d1","road_center":"\u05de\u05e8\u05db\u05d6 \u05d3\u05e8\u05da","km_cneter":"\u05de\u05e8\u05db\u05d6 \u05e7\u05d9\u05dc\u05d5\u05de\u05d8\u05e8","no_location":"\u05dc\u05d0 \u05e2\u05d5\u05d2\u05df","City":"\u05d9\u05d9\u05e9\u05d5\u05d1","CityByPop":"\u05d1\u05d9\u05d7\u05e1 \u05dc\u05de\u05d0\u05d4 \u05d0\u05dc\u05e3 \u05ea\u05d5\u05e9\u05d1\u05d9\u05dd","city_size":"\u05d9\u05e9\u05d5\u05d1\u05d9\u05dd \u05d1\u05d2\u05d5\u05d3\u05dc","200K-1000K":"200K-1000K","100K-200K":"100K-200K","50K-100K":"50K-100K","20K-50K":"20K-50K","10K-20K":"10K-20K","0-10K":"0-10K","ChooseCity":"\u05d1\u05d7\u05e8\u05d5 \u05d9\u05d9\u05e9\u05d5\u05d1...","several-cities":"\u05de\u05e1\u05e4\u05e8 \u05d9\u05e9\u05d5\u05d1\u05d9\u05dd","Street":"\u05e8\u05d7\u05d5\u05d1","Road":"\u05db\u05d1\u05d9\u05e9","several-roads":"\u05de\u05e1\u05e4\u05e8 \u05db\u05d1\u05d9\u05e9\u05d9\u05dd","RoadSegment":"\u05e7\u05d8\u05e2 \u05db\u05d1\u05d9\u05e9","Who":"\u05de\u05d9","Severity":"\u05d7\u05d5\u05de\u05e8\u05d4","dead":"\u05d4\u05e8\u05d5\u05d2","severly-injured":"\u05e7\u05e9\u05d4","Vehicle":"\u05db\u05dc\u05d9 \u05e8\u05db\u05d1","TypeInjured":"\u05e1\u05d5\u05d2 \u05e0\u05e4\u05d2\u05e2","all":"\u05db\u05dc \u05d4\u05e1\u05d5\u05d2\u05d9\u05dd","pedestrian":"\u05d4\u05d5\u05dc\u05da-\u05e8\u05d2\u05dc","cyclist":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","motorcycle":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","wheels4+":"4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","other":"\u05db\u05dc\u05d9\u05dd \u05d7\u05e9\u05de\u05dc\u05d9\u05d9\u05dd","cyclist-d":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd, \u05e0\u05d4\u05d2","cyclist-p":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd, \u05e0\u05d5\u05e1\u05e2","inj-unknown-d":"\u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2, \u05e0\u05d4\u05d2","inj-unknown-p":"\u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2, \u05e0\u05d5\u05e1\u05e2","motorcycle-d":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2, \u05e0\u05d4\u05d2","motorcycle-p":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2, \u05e0\u05d5\u05e1\u05e2","wheels4+-d":"\u05e0\u05d4\u05d2 4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","wheels4+-p":"\u05e0\u05d5\u05e1\u05e2 4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","Gender":"\u05de\u05d2\u05d3\u05e8","female":"\u05e0\u05e7\u05d1\u05d5\u05ea","male":"\u05d6\u05db\u05e8\u05d9\u05dd","Age":"\u05d2\u05d9\u05dc","00-04":"00-04","05-09":"05-09","10-14":"10-14","15-19":"15-19","20-29":"20-29","30-39":"30-39","40-49":"40-49","50-59":"50-59","60-69":"60-69","70-79":"70-79","80+":"80+","_id":"\u05e1\u05d5\u05d2","Population":"\u05de\u05d5\u05e6\u05d0","jews":"\u05d9\u05d4\u05d5\u05d3\u05d9\u05dd","arabs":"\u05e2\u05e8\u05d1\u05d9\u05dd","immigrants":"\u05de\u05d4\u05d2\u05e8\u05d9\u05dd","others":"\u05d0\u05d7\u05e8\u05d9\u05dd","unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","What":"\u05de\u05d4","AccidentType":"\u05e1\u05d5\u05d2 \u05ea\u05d0\u05d5\u05e0\u05d4","accType":{"ped":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","front-side":"\u05d7\u05d6\u05d9\u05ea-\u05e6\u05d3","front-front":"\u05d7\u05d6\u05d9\u05ea-\u05d7\u05d6\u05d9\u05ea","front-rear":"\u05d7\u05d6\u05d9\u05ea-\u05d0\u05d7\u05d5\u05e8","side-side":"\u05e6\u05d3-\u05e6\u05d3","obstacle1":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05e9\u05e0\u05e2\u05e6\u05e8 \u05dc\u05dc\u05d0 \u05d7\u05e0\u05d9\u05d4","obstacle2":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4","obstacle3":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd","offroad":"\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4","obstacle":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e2\u05e6\u05dd","turning-over":"\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea","slip":"\u05d4\u05d7\u05dc\u05e7\u05d4","passenger":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1","falloff":"\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2","other":"\u05d0\u05d7\u05e8","rear-front":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d1\u05d7\u05d6\u05d9\u05ea","rear-side":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d0\u05dc \u05e6\u05d3","animal":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05d1\u05e2\u05dc \u05d7\u05d9\u05d9\u05dd","cargo":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05de\u05de\u05d8\u05e2\u05df \u05e9\u05dc \u05e8\u05db\u05d1"},"SelfOrNotAcc":"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05e2\u05e6\u05de\u05d9\u05ea\\\\\u05de\u05e8\u05d5\u05d1\u05d4","selfAccType":{"self":"\u05e2\u05e6\u05de\u05d9\u05ea","non-self":"\u05dc\u05d0 \u05e2\u05e6\u05de\u05d9\u05ea"},"Vehicles":"\u05e8\u05db\u05d1\u05d9\u05dd \u05de\u05e2\u05d5\u05e8\u05d1\u05d9\u05dd","WhatVehicle":"\u05d0\u05d9\u05d6\u05d4 \u05e8\u05db\u05d1","VehicleType":"\u05e8\u05db\u05d1 \u05d4\u05e0\u05e4\u05d2\u05e2","vclType":{"all":"\u05db\u05dc \u05d4\u05e1\u05d5\u05d2\u05d9\u05dd","pedestrian":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","mobilityscooter":"\u05e7\u05dc\u05e0\u05d5\u05e2\u05d9\u05ea","bicycle":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","e-scooter":"\u05e7\u05d5\u05e8\u05e7\u05d9\u05e0\u05d8 \u05d7\u05e9\u05de\u05dc\u05d9","e-bike":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd \u05d7\u05e9\u05de\u05dc\u05d9\u05d9\u05dd","motorcycle":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","motorcycle1":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 \u05e2\u05d3 50 \u05e1\u05de\\"\u05e7","motorcycle2":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 51 - 125 \u05e1\u05de\\"\u05e7","motorcycle3":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 126 - 400 \u05e1\u05de\\"\u05e7","motorcycle4":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 401+ \u05e1\u05de\\"\u05e7","car":"\u05de\u05db\u05d5\u05e0\u05d9\u05ea","taxi":"\u05de\u05d5\u05e0\u05d9\u05ea","minbuss":"\u05de\u05d9\u05e0\u05d9\u05d1\u05d5\u05e1","bus":"\u05d0\u05d5\u05d8\u05d5\u05d1\u05d5\u05e1","tranzit":"\u05d8\u05e8\u05e0\u05d6\u05d9\u05d8","tender":"\u05d8\u05e0\u05d3\u05e8","truck":"\u05de\u05e9\u05d0\u05d9\u05ea","tractor":"\u05d8\u05e8\u05e7\u05d8\u05d5\u05e8","truck1":"\u05de\u05e9\u05d0\u05d9\u05ea 3.6 - 9.9 \u05d8\u05d5\u05df","truck2":"\u05de\u05e9\u05d0\u05d9\u05ea 10 - 12 \u05d8\u05d5\u05df","truck3":"\u05de\u05e9\u05d0\u05d9\u05ea 12.1 - 15.9 \u05d8\u05d5\u05df","truck4":"\u05de\u05e9\u05d0\u05d9\u05ea 16 - 33.9 \u05d8\u05d5\u05df","truck5":"\u05de\u05e9\u05d0\u05d9\u05ea 34+ \u05d8\u05d5\u05df","train":"\u05e8\u05db\u05d1\u05ea","other":"\u05d0\u05d7\u05e8"},"WhatRoad":"\u05ea\u05e0\u05d0\u05d9 \u05d3\u05e8\u05da","RoadType":"\u05e1\u05d5\u05d2 \u05d3\u05e8\u05da","urban-junction":"\u05e6\u05d5\u05de\u05ea \u05e2\u05d9\u05e8\u05d5\u05e0\u05d9","urban-road":"\u05d3\u05e8\u05da \u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea","non-urban-junction":"\u05e6\u05d5\u05de\u05ea \u05d1\u05d9\u05e0\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9","non-urban-road":"\u05d3\u05e8\u05da \u05d1\u05d9\u05e0\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea","SpeedLimit":"\u05de\u05d2\u05d1\u05dc\u05ea \u05de\u05d4\u05d9\u05e8\u05d5\u05ea","speed50":"\u05e2\u05d3 50","speed60":"60","speed70":"70","speed80":"80","speed90":"90","speed100":"100","speed110":"110","speed120":"120","speed-unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","RoadWidth":"\u05e8\u05d5\u05d7\u05d1 \u05d3\u05e8\u05da","road-width-5":"\u05e2\u05d3 5 \u05de\u05d8\u05e8","road-width-7":"5-7 \u05de\u05d8\u05e8","road-width-10":"7-10.5 \u05de\u05d8\u05e8","road-width-14":"10.5-14 \u05de\u05d8\u05e8","road-width-14+":"14+ \u05de\u05d8\u05e8","MultiLane":"\u05e8\u05d1-\u05e0\u05ea\u05d9\u05d1\u05d9","Separator":"\u05de\u05e4\u05e8\u05d3\u05d4 (\u05e8\u05d1 \u05e0\u05ea\u05d9\u05d1\u05d9)","separator-fence":"\u05d2\u05d3\u05e8","separator-built":"\u05d1\u05e0\u05d5\u05d9\u05d4 \u05dc\u05dc\u05d0 \u05d2\u05d3\u05e8","separator-not-built":"\u05dc\u05d0 \u05d1\u05e0\u05d5\u05d9\u05d4","separator-paint":"\u05e6\u05d1\u05e2","separator-ohter":"\u05d0\u05d7\u05e8","separator-not-relevant":"\u05dc\u05d0 \u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9","OneLane":"\u05e0\u05ea\u05d9\u05d1 \u05d1\u05d5\u05d3\u05d3","onelane-twoway-line":"\u05d3\u05d5 \u05e1\u05d9\u05d8\u05e8\u05d9 + \u05e7\u05d5 \u05d4\u05e4\u05e8\u05d3\u05d4 \u05e8\u05e6\u05d5\u05e3","onelane-twoway-noline":"\u05d3\u05d5 \u05e1\u05d9\u05d8\u05e8\u05d9 \u05d0\u05d9\u05df \u05e7\u05d5 \u05d4\u05e4\u05e8\u05d3\u05d4 \u05e8\u05e6\u05d5\u05e3","onelane-oneway":"\u05d7\u05d3 \u05e1\u05d9\u05d8\u05e8\u05d9","onelane-unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2 \u05de\u05e1 \u05de\u05e1\u05dc\u05d5\u05dc\u05d9\u05dd","onelane-not-relevant":"\u05dc\u05d0 \u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9","check_one_checkbox":"\u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8\u05d5 \u05dc\u05e4\u05d7\u05d5\u05ea \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d0\u05d7\u05ea","Submit":"\u05e1\u05e0\u05df","Loading":"\u05d8\u05d5\u05e2\u05df","in-region":"\u05d1\u05d0\u05d6\u05d5\u05e8","casualties":"\u05e0\u05e4\u05d2\u05e2\u05d9\u05dd","killed":"\u05d4\u05e8\u05d5\u05d2\u05d9\u05dd","severely-injured":"\u05e4\u05e6\u05d5\u05e2\u05d9\u05dd \u05e7\u05e9\u05d9\u05dd","by-years":"\u05dc\u05e4\u05d9 \u05e9\u05e0\u05d9\u05dd","GroupBy":"\u05e7\u05d1\u05e5 \u05dc\u05e4\u05d9","Found":"\u05e0\u05de\u05e6\u05d0\u05d5","resize":"\u05d4\u05d2\u05d3\u05dc\u05d4","NoResultsFound":"\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea","export-to-csv":"\u05d9\u05e6\u05d5\u05d0 \u05dc\u05e7\u05d5\u05d1\u05e5 CSV","general":"\u05db\u05dc\u05dc\u05d9","kids":"\u05d9\u05dc\u05d3\u05d9\u05dd","hide-description":"\u05d4\u05e1\u05ea\u05e8 \u05ea\u05d0\u05d5\u05e8","show-description":"\u05d4\u05e6\u05d2 \u05ea\u05d0\u05d5\u05e8","not-found-images":"\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05dc\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05d6\u05d5","Filters":"\u05e1\u05d9\u05e0\u05d5\u05e0\u05d9\u05dd","My-Filters":"\u05e1\u05d9\u05e0\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05d9","Filter":"\u05e1\u05d9\u05e0\u05d5\u05df","Save":"\u05e9\u05de\u05d5\u05e8","#Map":"=========Map==========","MarkersColorType":"\u05e6\u05d1\u05e2 \u05dc\u05e4\u05d9","MarkersIconType":"\u05e1\u05de\u05e0\u05d9\u05dd \u05dc\u05e4\u05d9"}')},206:function(e){e.exports=JSON.parse('["1","2","3","4","5","6","7","9","10","12","20","22","25","31","34","35","38","40","41","42","44","45","46","50","55","57","60","61","65","66","67","70","71","73","75","77","79","80","85","87","89","90","91","92","98","99","204","206","211","222","224","225","227","232","234","241","258","264","293","310","316","317","325","334","352","353","356","358","367","375","383","386","395","396","398","402","404","406","410","411","412","417","424","425","431","434","436","437","443","444","446","449","453","457","458","461","463","465","466","471","481","482","483","505","508","531","551","553","554","555","557","562","574","578","581","596","611","650","651","652","653","654","669","671","672","675","705","716","717","721","722","752","754","762","767","768","772","780","781","784","789","804","805","806","807","808","854","864","866","886","888","899","918","959","977","978","989","2104","2114","2211","2229","2333","2357","2410","2444","2544","2933","3157","3253","3401","3402","3411","3412","3413","3415","3500","3507","3511","3523","3533","3553","3565","3631","3633","3703","3711","3712","3755","3835","3855","3866","3877","3922","3933","3955","3965","4060","4101","4103","4123","4173","4303","4311","4313","4370","4372","4402","4404","4460","4570","4578","4612","4613","4622","4711","4775","5050","5060","5062","5066","5233","5442","5443","5505","5511","5519","5613","5614","5702","5710","5711","5714","5720","5785","5803","6000","6353","6400","6403","6502","6511","6513","6515","6517","6523","6524","6531","6533","6535","6661","6667","6692","6724","6953","6954","7021","7155","7212","7255","7266","7268","7269","7276","7513","7516","7555","7626","7703","7899","7912","7933","7935","7955","8050","8071","8510","8533","8534","8544","8556","8655","8677","8697","8721","8833","8834","8900","8913","8944","8993","9088","9323","9330","9357","9778","9779","9888","9898","9998"]')},216:function(e,t,r){},221:function(e,t,r){},36:function(e,t,r){"use strict";var a=r(12),i=r(30),n=new(function(){function e(){Object(a.a)(this,e)}return Object(i.a)(e,[{key:"log",value:function(e){console.log(e)}},{key:"error",value:function(e){console.error(e)}}]),e}());Object.freeze(n),t.a=n},383:function(e,t,r){},384:function(e,t,r){},387:function(e,t,r){},388:function(e,t,r){},389:function(e,t,r){},390:function(e,t,r){},391:function(e,t,r){},392:function(e,t,r){},393:function(e,t,r){"use strict";r.r(t);var a=r(0),i=r.n(a),n=r(20),o=r.n(n),s=(r(216),r(52)),c=r(15),l=r(144),u=r(10),p=r(193),h=r(66),b=r(12),y=r(30),d=r(114),f=r(110),j=r(36),g=r(1),m=function(e){Object(d.a)(r,e);var t=Object(f.a)(r);function r(e){var a;return Object(b.a)(this,r),(a=t.call(this,e)).state={hasError:!1},a}return Object(y.a)(r,[{key:"componentDidCatch",value:function(e,t){j.a.error(e)}},{key:"render",value:function(){return this.state.hasError?Object(g.jsx)("h1",{children:"Something went wrong."}):this.props.children}}],[{key:"getDerivedStateFromError",value:function(e){return{hasError:!0}}}]),r}(i.a.Component),v=r(11),O=r(204),w=(r(221),function(){return Object(g.jsxs)("div",{className:"loader-con",children:[" ",Object(g.jsx)(O.a,{animation:"border",variant:"info"})]})}),T=r(147),x=Object(a.lazy)((function(){return Promise.all([r.e(7),r.e(11)]).then(r.bind(null,541))})),S=Object(a.lazy)((function(){return Promise.all([r.e(0),r.e(8)]).then(r.bind(null,543))})),C=Object(a.lazy)((function(){return Promise.all([r.e(6),r.e(9)]).then(r.bind(null,538))})),B=Object(a.lazy)((function(){return Promise.all([r.e(0),r.e(5),r.e(13)]).then(r.bind(null,536))})),F=Object(a.lazy)((function(){return Promise.all([r.e(1),r.e(10)]).then(r.bind(null,537))})),k={tab:{marginTop:"0.5rem"},tabMap:{marginTop:"0.1rem"},mapCard:{width:"150px",height:"35px"}},V=Object(u.a)((function(e){var t=e.type,r=Object(l.a)().t,i=Object(v.a)(),n=i.mapStore,o=i.uiStore;return Object(g.jsxs)(p.a,{mountOnEnter:!0,activeKey:o.currentTab,id:"main-tabs",onSelect:function(e){n.isReadyToRenderMap="map"===e,o.setCurrentTab(e)},children:[Object(g.jsx)(h.a,{style:k.tab,eventKey:"charts",title:r("Charts"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(x,{})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"groups",title:r("Groups"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(S,{})})})}),Object(g.jsx)(h.a,{style:k.tabMap,eventKey:"map",title:r("Map"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(T.a,{children:Object(g.jsx)(C,{})})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"table",title:r("Table"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)("div",{className:"col-auto",children:Object(g.jsx)(B,{})})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"image",title:r("Images"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)("div",{className:"col-auto",children:Object(g.jsx)(F,{type:t})})})})})]})})),z=V,M=r(70),A=r(44),L=r(95),I=r(16),N=r(54),D=r(108),R=r(23),P=r(107),G=(r(187),r(77)),Q=Object(u.a)((function(e){var t=e.isMultiple,r=void 0!==t&&t,a=Object(v.a)().filterStore,i=a.cities,n=a.updateCities,o=Object(l.a)().t;return Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlCity",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[o("City"),":"]}),Object(g.jsx)(P.Typeahead,{id:"typeaheadCity",onChange:function(e){n(e,!0)},options:G,multiple:r,selected:i.arrValues})]})})),Y=Object(u.a)((function(){var e=Object(v.a)().filterStore,t=e.streets,r=e.cities,a=Object(l.a)().t;return r.arrValues.length>0?Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlStreet",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[a("Street"),":"]}),Object(g.jsx)(I.a.Control,{type:"input",placeholder:"",value:t.arrValues.toString(),onChange:function(t){e.updateStreets(t.target.value)}})]}):null})),W=r(206),_=Object(u.a)((function(e){var t=e.isMultiple,r=void 0===t||t,a=Object(v.a)().filterStore,i=a.roads,n=a.setRoads,o=i.arrValues,s=Object(l.a)().t;return Object(g.jsxs)(I.a.Group,{controlId:"filterForm.ControlRoad",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[s("Road"),":"]}),Object(g.jsx)(P.Typeahead,{id:"typeaheadCity",onChange:function(e){n(e)},inputProps:{type:"number"},options:W,multiple:r,selected:o})]})})),K=Object(u.a)((function(e){e.isMultiple;var t=Object(l.a)().t,r=Object(v.a)().filterStore,a=r.cities,i=r.roadSegment,n=r.updateRoadSegment;return 0===a.arrValues.length?Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlRoadSegment",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[t("RoadSegment"),":"]}),Object(g.jsx)(I.a.Control,{type:"input",placeholder:"",value:i.arrValues.toString(),onChange:function(e){n(e.target.value)}})]}):null})),q=r(188),E=r(48),H=Object(u.a)((function(e){var t=e.formName,r=e.colFilter,a=e.onChange,i=Object(l.a)().t,n=r.isAllValsFalse,o=r.name,s=r.arrTypes,c=function(e,t){a(e,t)},u=Object(g.jsxs)("div",{style:{marginTop:".25rem",fontSize:"80%",color:"#dc3545"},children:[" ",i("check_one_checkbox")]}),p=n?u:null,h=s.map((function(e,t){return Object(E.a)([e.checked],Object(g.jsx)(q.a,{label:e.label,group:r.name,id:t,checked:e.checked,onChange:function(e){c(t,e.target.checked)}},e.label))}));return Object(g.jsx)("div",{className:"injury-level-form",children:Object(g.jsxs)(I.a.Group,{controlId:"".concat(t,".Control").concat(o),children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[i(o),":"]}),h,p]})})})),J=r(62),U=(r(384),{}),X={color:"#007bff",cursor:"pointer"},Z=Object(u.a)((function(e){Object(L.a)(e);var t=Object(v.a)().filterStore,r=t.injurySeverity,a=t.updateInjurySeverity,n=t.formCardKey;return Object(g.jsx)(i.a.Fragment,{children:Object(g.jsxs)(I.a,{children:[Object(g.jsxs)(N.a,{defaultActiveKey:n.toString(),children:[Object(g.jsx)(ee,{}),Object(g.jsx)(ie,{}),Object(g.jsx)(te,{}),Object(g.jsx)(re,{}),Object(g.jsx)(ae,{}),Object(g.jsx)(ne,{})]}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:r,onChange:a})]})})}));function $(e){var t=e.children,r=e.style,i=e.eventKey,n=e.onClick,o=Object(a.useState)(!1),s=Object(A.a)(o,2),c=s[0],l=s[1],u=function(){return l(!c)},p=c?{textDecoration:"underline"}:{textDecoration:"none"},h=Object(D.b)(i,(function(){return n(i)}));return Object(g.jsx)("div",{children:Object(g.jsx)("a",{style:Object(M.a)(Object(M.a)({},r),p),onClick:h,onMouseEnter:u,onMouseLeave:u,children:t})})}var ee=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhen,a=t.startYear,i=t.setStartYear,n=t.endYear,o=t.setEndYear,s=t.dayNight,c=t.updateDayNight,u=t.setFormCardKey,p=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"0",style:p,onClick:u,children:e("When")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"0",className:"filterControls",children:Object(g.jsx)(R.a.Body,{children:Object(g.jsxs)("div",{children:[Object(g.jsxs)("div",{className:"accordion-when-selects",children:[Object(g.jsx)(J.a,{label:"FromYear",value:String(a.queryValue),data:a.arrTypes,onChange:function(e){i(e.target.value)}}),Object(g.jsx)(J.a,{label:"ToYear",value:String(n.queryValue),data:n.arrTypes,onChange:function(e){o(e.target.value)}})]}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:c})]})})})]})})),te=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhere,a=t.roadTypes,i=t.updateRoadType,n=t.locationAccuracy,o=t.updateLocationAccuracy,s=t.isMultipleCities,c=t.cityPopSizeRange,u=t.setCityPopSizeRange,p=t.setFormCardKey,h=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"2",style:h,onClick:p,children:e("Where")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"2",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(Q,{isMultiple:s}),Object(g.jsx)(Y,{}),Object(g.jsx)(_,{}),Object(g.jsx)(K,{}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(J.a,{style:{display:"flex-end",alignItems:"center"},label:"city_size",data:c.arrTypes,valProp:"val",contentProp:"text",onChange:function(e){return u(e.target.value)}}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o})]})})]})})),re=Object(u.a)((function(){var e=Object(l.a)().t,t=(Object(c.f)(),Object(v.a)().filterStore),r=t.isValidWho,a=t.genderTypes,i=t.updateGenderType,n=t.ageTypes,o=t.updateAgeType,s=t.populationTypes,u=t.updatePopulationType,p=t.setFormCardKey,h=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"3",style:h,onClick:p,children:e("Who")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"3",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:u})]})})]})})),ae=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhat,a=t.accidentType,i=t.updateAccidentType,n=t.setFormCardKey,o=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"4",style:o,onClick:n,children:e("What")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"4",className:"filterControls",children:Object(g.jsx)("div",{children:Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i})})})]})})),ie=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.injTypes,a=t.updateInjuerdType,i=t.vehicleType,n=t.updateVehicleType,o=t.involvedVehicle,s=t.setInvolvedVehicle,c=t.isValidWhatVehicle,u=t.setFormCardKey,p=c?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"1",style:p,onClick:u,children:e("WhatVehicle")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"1",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:r,onChange:a}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:i,onChange:n}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:o,onChange:s})]})})]})})),ne=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhatRoad,a=t.speedLimit,i=t.updateSpeedLimit,n=t.roadWidth,o=t.updateRoadWidth,s=t.separator,c=t.updateSeparator,u=t.oneLane,p=t.updateOneLane,h=t.setFormCardKey,b=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"5",style:b,onClick:h,children:e("WhatRoad")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"5",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:c}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:u,onChange:p})]})})]})})),oe=Z,se=r(191),ce=Object(u.a)((function(){var e=Object(v.a)(),t=e.filterStore,r=e.uiStore,a=r.showFilterModal,i=r.setShowFilterModal;return Object(g.jsx)(se.a,{action:function(){t.submitFilter(),setTimeout((function(){i(!a)}),1e3)},size:"lg",title:"Filters",setShow:i,showModal:a,children:Object(g.jsx)(oe,{})})}));function le(e){var t=e.color?e.color:"blue",r=e.height?e.height:24,a=e.width?e.width:24;return Object(g.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",height:r,viewBox:"0 0 24 24",width:a,children:[Object(g.jsx)("path",{d:"M0 0h24m0 24H0",fill:"none"}),Object(g.jsx)("path",{d:"M7 6h10l-5.01 6.3L7 6zm-2.75-.39C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0018.95 4H5.04c-.83 0-1.3.95-.79 1.61z",fill:t}),Object(g.jsx)("path",{d:"M0 0h24v24H0V0z",fill:"none"})]})}var ue=i.a.memo(le),pe=(r(387),Object(u.a)((function(){var e=Object(v.a)().uiStore,t=e.showFilterModal,r=e.setShowFilterModal,a=Object(E.a)([],Object(g.jsx)(ue,{color:"var(--onprimary-color)",height:40,width:34}));return Object(g.jsx)(g.Fragment,{children:Object(g.jsx)("span",{title:"Filter",className:"btn-sm filter-btn",onClick:function(){return r(!t)},children:a})})}))),he=r(116),be=(r(388),Object(u.a)((function(e){var t=Object(l.a)().t,r=Object(v.a)().filterStore;return Object(g.jsxs)("div",{className:"sidebar",children:[Object(g.jsx)("div",{className:"filters",children:Object(g.jsx)(oe,{})}),Object(g.jsx)(he.a,{style:{margin:"0.5rem"},variant:"primary",onClick:function(){return r.submitFilter()},disabled:r.isLoading||!r.isValidAllFilters,children:r.isLoading?t("Loading"):t("Submit")}),Object(g.jsxs)(he.a,{style:{margin:"0.5rem"},variant:"info",onClick:function(){return alert("action in filter store to collect filters")},disabled:r.isLoading||!r.isValidAllFilters,children:[t("Save")," ",t("Filter")]})]})}))),ye=(r(389),function(e){var t=e.children;return Object(g.jsxs)("div",{className:"grid-with-drawer",children:[Object(g.jsx)("div",{className:"grid-drawer",children:Object(g.jsx)(be,{})}),Object(g.jsx)("div",{className:"grid-main",children:t})]})}),de=Object(u.a)((function(){var e=Object(v.a)().filterStore.dayNight,t=""!==e.text?", ".concat(e.text):"";return Object(g.jsx)("span",{children:t})})),fe=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.cities,a=t.cityPopSizeRange,i=t.roads,n=t.roadTypes,o=t.locationAccuracy,s=e("Israel");return""!==r.text?s="".concat(r.text):""!==a.text?s="".concat(e("city_size")," ").concat(a.text):""!==i.text?s="".concat(e(i.name)," ").concat(i.text):""!==n.text&&(s="".concat(n.text)),""!=o.text&&(s+=", ".concat(o.text)),Object(g.jsx)("span",{children:s})})),je=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.genderTypes,a=t.ageTypes,i=t.populationTypes,n=""!=r.text?", ".concat(r.text):"";return""!=i.text&&(n+=", ".concat(i.text)),""!=a.text&&(n+=", ".concat(e("Age"),": ").concat(a.text)),Object(g.jsx)("span",{children:n})})),ge=Object(u.a)((function(){var e=Object(v.a)().filterStore.accidentType,t=""!==e.text?", ".concat(e.text):"";return Object(g.jsx)("span",{children:t})})),me=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.injTypes,a=t.vehicleType,i=t.involvedVehicle,n=""!==r.text?", ".concat(r.text):"";return""!==a.text&&(n+=", ".concat(e("VehicleType"),": ").concat(a.text)),""!=i.text&&(n+=", ".concat(e("Vehicles"),": ").concat(i.text)),Object(g.jsx)("span",{children:n})})),ve=Object(u.a)((function(e){Object(L.a)(e);var t={div:{marginTop:"0.8rem",marginLeft:"1rem",marginRight:"1rem",marginBottom:"0.1rem"}},r=Object(l.a)().t,a=Object(v.a)().filterStore,i=a.casualtiesNames,n=a.isLoadingInjuriesCount,o=a.injuriesCount;return n?Object(g.jsxs)("div",{style:t.div,children:[" ",r("Loading")," "]}):o>0?Object(g.jsxs)("h5",{style:t.div,children:[Object(g.jsx)(fe,{}),Object(g.jsx)(me,{}),Object(g.jsx)(je,{}),Object(g.jsx)(de,{}),Object(g.jsx)(ge,{}),", ",r("Found")," ",o," ",r(i)," "]}):Object(g.jsx)("h5",{style:t.div,children:r("NoResultsFound")})})),Oe=Object(u.a)((function(){Object(l.a)().t;var e=Object(v.a)(),t=e.mapStore,r=e.filterStore,i=e.uiStore,n=r.setIsMultipleCities,o=r.updateCities,s=r.submitFilter,c=i.setCurrentPage,u=i.setStoreByQuery,p=i.showFilterModal,h=i.setInitPage;Object(a.useEffect)((function(){c("home"),n(!0)}),[]),t.isReadyToRenderMap=!1,Object(a.useEffect)((function(){h(!0),o([],!1),u("charts"),s(),h(!1)}),[s,o]);var b=Object(E.a)([p],Object(g.jsx)(ce,{}));return Object(g.jsx)(ye,{children:Object(g.jsxs)("div",{children:[Object(g.jsxs)("div",{children:[Object(g.jsx)(ve,{}),Object(g.jsx)(pe,{})]}),p&&b,Object(g.jsx)(z,{type:"home"})]})})})),we=function(){return Object(g.jsx)(Oe,{})},Te=Object(u.a)((function(){var e=Object(v.a)(),t=e.filterStore,r=e.uiStore,i=t.cityResult,n=t.isUpdateFromUrl,o=t.setIsUpdateFromUrl,s=r.setCurrentPage,c=r.setStoreByQuery,l=r.showFilterModal,u=r.setInitPage;Object(a.useEffect)((function(){return s("city"),t.isMultipleCities=!1,""!==i&&t.submitFilter(),function(){return o(!0)}}),[]),Object(a.useEffect)((function(){u(!0),""===i&&n&&(o(!1),c("map","\u05ea\u05dc \u05d0\u05d1\u05d9\u05d1 -\u05d9\u05e4\u05d5"),t.submitFilter()),u(!1)}),[]);var p=Object(E.a)([l],Object(g.jsx)(ce,{}));return Object(g.jsx)(ye,{children:Object(g.jsxs)("div",{className:"App",children:[Object(g.jsxs)("div",{children:[Object(g.jsx)(ve,{}),Object(g.jsx)(pe,{})]}),l&&p,Object(g.jsx)(V,{type:"city"})]})})})),xe=function(){return Object(g.jsx)(Te,{})},Se=Object(u.a)((function(){var e=Object(v.a)().uiStore,t=document.getElementById("style-direction");return null!==t&&("rtl"===e.direction?(t.href="./bootstrap.rtl.min.css",document.body.classList.remove("dir-ltr"),document.body.classList.add("dir-rtl")):(t.href="./bootstrap.min.css",document.body.classList.remove("dir-rtl"),document.body.classList.add("dir-ltr"))),Object(g.jsx)(i.a.Fragment,{children:Object(g.jsx)(J.a,{onChange:function(t){e.updateLanguage(t.target.value)},data:[{value:"he",text:"Hebrew"},{value:"en",text:"English"}],valProp:"value",contentProp:"text",value:e.language})})})),Ce=function(){var e=Object(l.a)().t;return Object(g.jsxs)(i.a.Fragment,{children:[Object(g.jsx)(s.b,{className:"nav-link",to:"/",children:e("Home")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/city",children:e("Cities")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/about",children:e("About")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/my-filters",children:e("My-Filters")})]})},Be=r(115),Fe=(r(390),{header:{marginBottom:"1rem",position:"fixed",top:"0px",width:"100%",zIndex:5e3}}),ke=function(e){var t=e.title;return Object(g.jsx)("header",{style:Fe.header,children:Object(g.jsx)(Be.a,{className:"navbar",expand:"lg",children:Object(g.jsxs)("div",{className:"container-fluid",children:[Object(g.jsx)("img",{src:"data:image/png;base64,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",alt:"".concat(t," logo"),height:"45",width:"188"}),Object(g.jsx)(Be.a.Toggle,{"aria-controls":"basic-navbar-nav",className:"text-light"}),Object(g.jsxs)(Be.a.Collapse,{id:"basic-navbar-nav",children:[Object(g.jsx)("div",{className:"navbar-nav",children:Object(g.jsx)(Ce,{})}),Object(g.jsx)("div",{children:Object(g.jsx)(Se,{})})]})]})})})},Ve=(r(391),r(49),r(392),Object(a.lazy)((function(){return r.e(14).then(r.bind(null,539))}))),ze=Object(a.lazy)((function(){return Promise.all([r.e(1),r.e(15)]).then(r.bind(null,540))})),Me=Object(a.lazy)((function(){return r.e(12).then(r.bind(null,542))})),Ae={app:{marginTop:"44px"}};var Le=function(){return Object(g.jsx)(s.a,{children:Object(g.jsxs)("div",{style:{height:"100%"},children:[Object(g.jsx)(ke,{title:"Safety Data"}),Object(g.jsx)("div",{style:Ae.app,children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsxs)(c.c,{children:[Object(g.jsx)(c.a,{exact:!0,path:"/my-filters",component:Me}),Object(g.jsx)(c.a,{path:"/about",component:Ve}),Object(g.jsx)(c.a,{exact:!0,path:"/city",component:xe}),Object(g.jsx)(c.a,{path:"/update-img",component:ze}),Object(g.jsx)(c.a,{path:"/",component:we})]})})})]})})};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(Object(g.jsx)(Le,{}),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))},45:function(e,t,r){"use strict";r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return i}));var a=function(e,t){var r=new URLSearchParams(location.search);r.set(e,t),window.history.replaceState({},"","".concat(location.pathname,"?").concat(r.toString()))},i=function(e){var t=new URLSearchParams(location.search);t.delete(e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t.toString()))}},48:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var a=r(0);function i(e,t){return Object(a.useMemo)((function(){return t}),e)}},49:function(e,t,r){"use strict";var a=r(142),i=r(68),n=r(199),o=r(200);a.a.use(i.e).init({fallbackLng:"he",lng:"he",debug:!0,resources:{en:{translation:n},he:{translation:o}},interpolation:{escapeValue:!1}}),t.a=a.a},62:function(e,t,r){"use strict";r(0);var a=r(144),i=(r(383),r(1));t.a=function(e){var t=e.style,r=e.label,n=e.onChange,o=e.data,s=e.valProp,c=e.contentProp,l=e.value,u=e.cssClass,p=void 0===u?"":u,h=Object(a.a)().t,b="form-select form-select-sm "+p;return Object(i.jsxs)("div",{className:"select-wrapper",style:t&&t,children:[r&&Object(i.jsxs)("label",{children:[" ",h(r)," "]}),Object(i.jsx)("select",{className:b,onChange:n,value:l,children:o.map((function(e){return Object(i.jsx)("option",{value:s?e[s]:e,children:h(c?e[c]:e)},s?e[s]:e)}))})]})}},74:function(e,t,r){"use strict";r.d(t,"a",(function(){return z})),r.d(t,"b",(function(){return _}));var a,i,n,o,s,c,l,u,p,h,b,y,d,f,j,g,m,v,O,w,T,x,S,C,B,F,k,V,z,M=r(4),A=r(12),L=r(3),I=(r(31),r(2)),N=r(27),D=r.n(N),R=r(36),P=r(45);!function(e){e[e.NO_BBOX=0]="NO_BBOX",e[e.SERVER_BBOX=1]="SERVER_BBOX",e[e.LOCAL_BBOX=2]="LOCAL_BBOX"}(z||(z={}));var G=[D.a.latLng(29.5,34.22),D.a.latLng(33.271,35.946)],Q="lat",Y="lng",W="mkclr",_=(a=function e(t){var r=this;Object(A.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,this.mapRef=null,this.setMapRef=function(e){r.mapRef=e},Object(M.a)(this,"onMapLoad",i,this),Object(M.a)(this,"setStoreByQuery",n,this),this.delQueryStrMapCenter=function(){Object(P.a)(Q),Object(P.a)(Y)},this.setQueryStrMapCenter=function(e){Object(P.b)(Q,e.lat.toFixed(5)),Object(P.b)(Y,e.lng.toFixed(5))},this.setQueryStrMapZoom=function(e){Object(P.b)("z",e.toString())},Object(M.a)(this,"isReadyToRenderMap",o,this),Object(M.a)(this,"bboxType",s,this),Object(M.a)(this,"mapCenter",c,this),Object(M.a)(this,"updateMapCenter",l,this),Object(M.a)(this,"mapZoom",u,this),Object(M.a)(this,"setMapZoom",p,this),Object(M.a)(this,"setMapCenterByQuery",h,this),this.getCenterByQuery=function(e){var t=null,r=e.get(Q),a=e.get(Y);if(r&&a){var i=Number.parseFloat(r),n=Number.parseFloat(a);Number.isNaN(i)||Number.isNaN(n)||(t=new D.a.LatLng(i,n))}return t},Object(M.a)(this,"setMapZoomByQuery",b,this),this.isCenterMapByCity=function(){var e=!0;if(r.rootStore.uiStore.initPage){var t=new URLSearchParams(window.location.search);r.getCenterByQuery(t)&&(e=!1)}return e},Object(M.a)(this,"updateMapCenterByCity",y,this),Object(M.a)(this,"useSetBounds",d,this),Object(M.a)(this,"setBounds",f,this),Object(M.a)(this,"isSetBounds",j,this),Object(M.a)(this,"updateIsSetBounds",g,this),Object(M.a)(this,"heatLayerHidden",m,this),Object(M.a)(this,"toggleHeatLayer",v,this),Object(M.a)(this,"useSmallMarkers",O,this),Object(M.a)(this,"toggleUseSmallMarkers",w,this),Object(M.a)(this,"markerIconsType",T,this),Object(M.a)(this,"setMarkerIconsType",x,this),this.markerIconTypesArr=[{val:"general",text:"general"},{val:"Vehicle",text:"Vehicle"}],Object(M.a)(this,"markerColorType",S,this),Object(M.a)(this,"setMarkerColorType",C,this),Object(M.a)(this,"setMarkerColorTypeByQuery",B,this),this.setBrowserQueryStringByMarkerColor=function(e){e.set(W,r.markerColorType),window.history.replaceState({},"","".concat(location.pathname,"?").concat(e.toString()))},this.markerColorTypesArr=[{val:"Severity",text:"Severity"},{val:"Vehicle",text:"Vehicle"},{val:"AccidentType",text:"AccidentType"},{val:"SelfOrNotAcc",text:"SelfOrNotAcc"},{val:"DayNight",text:"DayNight"},{val:"Gender",text:"Gender"},{val:"RoadType",text:"RoadType"}],this.getBoundsByPointsArr=function(e){var t=[],r=D.a.latLng(0,0);return e.forEach((function(e){if(null!==e.latitude&&null!==e.longitude){var a=new D.a.LatLng(e.latitude,e.longitude);(0===r.lat&&0===r.lng||e.latitude!==r.lat||e.longitude!==r.lng)&&(t.push(a),r=a)}})),1===t.length&&(t.length=0,t.push(D.a.latLng(r.lat+.01,r.lng+.01)),t.push(D.a.latLng(r.lat-.01,r.lng-.01))),t.length<2&&(t=G),D.a.latLngBounds(t)},this.getBounds2=function(e){if(0===e.length)return D.a.latLngBounds(G);var t={south:200,north:-200,west:200,east:-200};return e.forEach((function(e){null!==e.latitude&&null!==e.longitude&&(t.south=Math.min(e.latitude,t.south),t.north=Math.max(e.latitude,t.north),t.west=Math.min(e.longitude,t.west),t.east=Math.max(e.longitude,t.east))})),t.south===t.north&&(t.south-=.01,t.north+=.01,t.west-=.01,t.east+=.01),D.a.latLngBounds([t.south,t.west],[t.east,t.north])},Object(M.a)(this,"dataMarkersInBounds",F,this),Object(M.a)(this,"updateDataMarkersInBounds",k,this),Object(M.a)(this,"updateMapBounds",V,this),this.setQueryStrMapCenterByBounds=function(){if(void 0!==r.mapRef&&null!==r.mapRef&&null!==r.mapRef.current)try{var e=r.mapRef.current.leafletElement.getBounds();if(e){var t=e.getCenter();r.setQueryStrMapCenter(t),r.setQueryStrMapZoom(r.mapRef.current.leafletElement.getZoom())}}catch(a){R.a.error(a)}},this.getMarkersInBBox=function(){r.bboxType===z.LOCAL_BBOX?r.getMarkersInLocalBBox(.02):r.bboxType===z.SERVER_BBOX&&r.submintGetMarkersBBox()},this.getMarkersInLocalBBox=function(e){if(void 0!==r.mapRef&&null!==r.mapRef&&null!==r.mapRef.current)try{var t=r.mapRef.current.leafletElement.getBounds(),a=t.getWest()-e,i=t.getEast()+e,n=t.getSouth()-e,o=t.getNorth()+e,s=r.rootStore.filterStore.dataAllInjuries.filter((function(e){return e.latitude>=n&&e.latitude<=o&&e.longitude>=a&&e.longitude<=i}));r.updateDataMarkersInBounds(s)}catch(c){R.a.error(c)}},this.submintGetMarkersBBox=function(){},this.rootStore=t},i=Object(L.a)(a.prototype,"onMapLoad",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){console.log("onMapLoad");var t=new URLSearchParams(window.location.search);e.setMapZoomByQuery(t)}}}),n=Object(L.a)(a.prototype,"setStoreByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMapCenterByQuery(t),e.setMapZoomByQuery(t),e.setMarkerColorTypeByQuery(t)}}}),o=Object(L.a)(a.prototype,"isReadyToRenderMap",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=Object(L.a)(a.prototype,"bboxType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return z.LOCAL_BBOX}}),c=Object(L.a)(a.prototype,"mapCenter",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new D.a.LatLng(32.08,34.83)}}),l=Object(L.a)(a.prototype,"updateMapCenter",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.mapCenter=t,r&&e.setQueryStrMapCenter(t)}}}),u=Object(L.a)(a.prototype,"mapZoom",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 13}}),p=Object(L.a)(a.prototype,"setMapZoom",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.mapZoom=t}}}),h=Object(L.a)(a.prototype,"setMapCenterByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=e.getCenterByQuery(t);r&&e.updateMapCenter(r,!1)}}}),b=Object(L.a)(a.prototype,"setMapZoomByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get("z");if(r){var a=Number.parseInt(r);Number.isNaN(a)||e.setMapZoom(a)}}}}),y=Object(L.a)(a.prototype,"updateMapCenterByCity",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){if(null!==t&&t.length>0){var r=t[0];r.lat&&r.lon&&(e.updateMapCenter(new D.a.LatLng(r.lat,r.lon)),e.setMapZoom(13))}}}}),d=Object(L.a)(a.prototype,"useSetBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),f=Object(L.a)(a.prototype,"setBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.isSetBounds){var a=e.getBoundsByPointsArr(t);r.length>0&&""!==r[0]||e.updateMapCenter(a.getCenter()),e.isSetBounds=!1}}}}),j=Object(L.a)(a.prototype,"isSetBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),g=Object(L.a)(a.prototype,"updateIsSetBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.useSetBounds&&(t.length>0&&""!==t[0]||r.length>0&&""!==r[0])&&(e.isSetBounds=!0)}}}),m=Object(L.a)(a.prototype,"heatLayerHidden",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),v=Object(L.a)(a.prototype,"toggleHeatLayer",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.heatLayerHidden=!e.heatLayerHidden}}}),O=Object(L.a)(a.prototype,"useSmallMarkers",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),w=Object(L.a)(a.prototype,"toggleUseSmallMarkers",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.useSmallMarkers=!e.useSmallMarkers}}}),T=Object(L.a)(a.prototype,"markerIconsType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"Vehicle"}}),x=Object(L.a)(a.prototype,"setMarkerIconsType",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.markerIconsType=t}}}),S=Object(L.a)(a.prototype,"markerColorType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"Severity"}}),C=Object(L.a)(a.prototype,"setMarkerColorType",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.markerColorType=t,Object(P.b)(W,t)}}}),B=Object(L.a)(a.prototype,"setMarkerColorTypeByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get(W);null!==r&&e.setMarkerColorType(r)}}}),F=Object(L.a)(a.prototype,"dataMarkersInBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),k=Object(L.a)(a.prototype,"updateDataMarkersInBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.dataMarkersInBounds=t}}}),V=Object(L.a)(a.prototype,"updateMapBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){try{e.bboxType!==z.NO_BBOX&&e.getMarkersInBBox(),e.setQueryStrMapCenterByBounds()}catch(t){R.a.error(t)}}}}),a)},77:function(e){e.exports=JSON.parse('["\u05d0\u05d1\u05d5 \u05d2\u05d5\u05e9","\u05d0\u05d1\u05d5 \u05e1\u05e0\u05d0\u05df","\u05d0\u05d1\u05d5 \u05e7\u05d5\u05e8\u05d9\u05e0\u05d0\u05ea (\u05d9\u05d9\u05e9\u05d5\u05d1)","\u05d0\u05d1\u05d5 \u05e7\u05d5\u05e8\u05d9\u05e0\u05d0\u05ea (\u05e9\u05d1\u05d8)","\u05d0\u05d1\u05df \u05d9\u05d4\u05d5\u05d3\u05d4","\u05d0\u05d5\u05dd \u05d0\u05dc-\u05e4\u05d7\u05dd","\u05d0\u05d5\u05e4\u05e7\u05d9\u05dd","\u05d0\u05d5\u05e8 \u05d9\u05d4\u05d5\u05d3\u05d4","\u05d0\u05d5\u05e8 \u05e2\u05e7\u05d9\u05d1\u05d0","\u05d0\u05d5\u05e8\u05e0\u05d9\u05ea","\u05d0\u05d6\u05d5\u05e8","\u05d0\u05d9\u05d9\u05dc\u05ea \u05d4\u05e9\u05d7\u05e8","\u05d0\u05d9\u05db\u05e1\u05d0\u05dc","\u05d0\u05d9\u05dc\u05ea","\u05d0\u05dc \u05e1\u05d9\u05d9\u05d3","\u05d0\u05dc\u05d9\u05db\u05d9\u05df","\u05d0\u05dc\u05e2\u05d3","\u05d0\u05de\u05d5\u05e0\u05d9\u05dd","\u05d0\u05e2\u05d1\u05dc\u05d9\u05df","\u05d0\u05e8\u05d9\u05d0\u05dc","\u05d0\u05e9\u05d3\u05d5\u05d3","\u05d0\u05e9\u05dc\u05d9\u05dd","\u05d0\u05e9\u05e7\u05dc\u05d5\u05df","\u05d1\u05d0\u05e7\u05d4 \u05d0\u05dc-\u05d2\u05e8\u05d1\u05d9\u05d4","\u05d1\u05d0\u05e8 \u05d9\u05e2\u05e7\u05d1","\u05d1\u05d0\u05e8 \u05e9\u05d1\u05e2","\u05d1\u05d5\u05e2\u05d9\u05d9\u05e0\u05d4-\u05e0\u05d5\u05d2\'\u05d9\u05d3\u05d0\u05ea","\u05d1\u05d5\u05e7\u05e2\u05d0\u05ea\u05d0","\u05d1\u05d9\u05e6\u05e8\u05d5\u05df","\u05d1\u05d9\u05e8 \u05d0\u05dc \u05de\u05db\u05e1\u05d5\u05e8","\u05d1\u05d9\u05e8 \u05d4\u05d3\u05d0\u05d2\'","\u05d1\u05d9\u05ea \u05d0\u05dc","\u05d1\u05d9\u05ea \u05d0\u05dc\u05e4\u05d0","\u05d1\u05d9\u05ea \u05d2\'\u05df","\u05d1\u05d9\u05ea \u05d3\u05d2\u05df","\u05d1\u05d9\u05ea \u05e7\u05e9\u05ea","\u05d1\u05d9\u05ea \u05e9\u05d0\u05df","\u05d1\u05d9\u05ea \u05e9\u05de\u05e9","\u05d1\u05d9\u05ea\u05e8 \u05e2\u05d9\u05dc\u05d9\u05ea","\u05d1\u05df \u05e9\u05de\u05df (\u05db\u05e4\u05e8 \u05e0\u05d5\u05e2\u05e8)","\u05d1\u05e0\u05d9 \u05d1\u05e8\u05e7","\u05d1\u05e0\u05d9 \u05e2\u05d9\\"\u05e9","\u05d1\u05e0\u05d9 \u05e6\u05d9\u05d5\u05df","\u05d1\u05e0\u05d9\u05de\u05d9\u05e0\u05d4 - \u05d2\u05d1\u05e2\u05ea \u05e2\u05d3\u05d4","\u05d1\u05e1\u05de\\"\u05d4","\u05d1\u05e1\u05de\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05d1\u05e2\u05e0\u05d4","\u05d1\u05e8\u05db\u05d9\u05d4","\u05d1\u05e8\u05e7\u05ea","\u05d1\u05ea \u05d9\u05dd","\u05d2\'\u05d3\u05d9\u05d9\u05d3\u05d4-\u05de\u05db\u05e8","\u05d2\'\u05d5\u05dc\u05e1","\u05d2\'\u05d9\u05e9","\u05d2\'\u05dc\u05d2\'\u05d5\u05dc\u05d9\u05d4","\u05d2\'\u05ea","\u05d2\'\u05e1\u05e8 \u05d0-\u05d6\u05e8\u05e7\u05d0","\u05d2\u05d1\u05e2\u05ea \u05e9\u05de\u05d5\u05d0\u05dc","\u05d2\u05d1\u05e2\u05ea\u05d9\u05d9\u05dd","\u05d2\u05d3\u05e8\u05d4","\u05d2\u05d5\u05e8\u05df","\u05d2\u05df \u05d9\u05d1\u05e0\u05d4","\u05d2\u05e0\u05d9 \u05ea\u05e7\u05d5\u05d5\u05d4","\u05d3\u05d1\u05d5\u05e8\u05d9\u05d9\u05d4","\u05d3\u05d1\u05d9\u05e8\u05d4","\u05d3\u05d9\u05d9\u05e8 \u05d7\u05e0\u05d0","\u05d3\u05d9\u05de\u05d5\u05e0\u05d4","\u05d3\u05d9\u05e8 \u05d0\u05dc \u05d0\u05e1\u05d3","\u05d3\u05d9\u05e8 \u05d7\u05e0\u05d0","\u05d3\u05dc\u05d9\u05ea \u05d0\u05dc-\u05db\u05e8\u05de\u05dc","\u05d4\u05d5\u05d3 \u05d4\u05e9\u05e8\u05d5\u05df","\u05d4\u05e8\u05e6\u05dc\u05d9\u05d9\u05d4","\u05d6\u05db\u05e8\u05d5\u05df \u05d9\u05e2\u05e7\u05d1","\u05d6\u05de\u05e8","\u05d6\u05e8\u05d6\u05d9\u05e8","\u05d7\u05d3\u05e8\u05d4","\u05d7\u05d5\u05dc\u05d5\u05df","\u05d7\u05d5\u05e3 \u05d4\u05db\u05e8\u05de\u05dc \u05de\\"\u05d0 15","\u05d7\u05d5\u05e8\u05d4","\u05d7\u05d5\u05e8\u05e4\u05d9\u05e9","\u05d7\u05d9\u05e4\u05d4","\u05d7\u05e6\u05d5\u05e8 \u05d4\u05d2\u05dc\u05d9\u05dc\u05d9\u05ea","\u05d7\u05e8\u05d9\u05e9","\u05d8\u05d1\u05e8\u05d9\u05d4","\u05d8\u05d5\u05d1\u05d0 \u05d6\u05e0\u05d2\u05e8\u05d9\u05d4","\u05d8\u05d5\u05e8\u05e2\u05d0\u05df","\u05d8\u05d9\u05d9\u05d1\u05d4","\u05d8\u05d9\u05e8\u05d4","\u05d8\u05d9\u05e8\u05ea \u05d4\u05db\u05e8\u05de\u05dc","\u05d8\u05de\u05e8\u05d4","\u05d9\u05d0\u05e0\u05d5\u05d7 - \u05d2\'\u05ea","\u05d9\u05d1\u05e0\u05d0\u05dc","\u05d9\u05d1\u05e0\u05d4","\u05d9\u05d4\u05d5\u05d3","\u05d9\u05e0\u05d5\u05df","\u05d9\u05e1\u05d5\u05d3 \u05d4\u05de\u05e2\u05dc\u05d4","\u05d9\u05e4\u05d9\u05e2","\u05d9\u05e6\u05d9\u05e5","\u05d9\u05e7\u05e0\u05e2\u05dd \u05e2\u05d9\u05dc\u05d9\u05ea","\u05d9\u05e8\u05d5\u05d7\u05dd","\u05d9\u05e8\u05d5\u05e9\u05dc\u05d9\u05dd","\u05d9\u05e8\u05db\u05d0","\u05db\u05d0\u05d1\u05d5\u05dc","\u05db\u05d5\u05d5\u05db\u05d1 \u05d0\u05d1\u05d5 \u05d0\u05dc-\u05d4\u05d9\u05d2\'\u05d0","\u05db\u05d5\u05db\u05d1 \u05d9\u05d0\u05d9\u05e8","\u05db\u05e1\u05d9\u05e4\u05d4","\u05db\u05e1\u05e8\u05d4 - \u05e1\u05de\u05d9\u05e2","\u05db\u05e2\u05d1\u05d9\u05d4 \u05d8\u05d1\u05d0\u05e9 \u05d7\u05d2\'\u05d0\u05d2\'\u05e8\u05d4","\u05db\u05e4\u05e8 \u05d1\u05d9\u05d0\u05dc\u05d9\u05e7","\u05db\u05e4\u05e8 \u05d1\u05e8\u05d0","\u05db\u05e4\u05e8 \u05d5\u05e8\u05d3\u05d9\u05dd","\u05db\u05e4\u05e8 \u05d9\u05d0\u05e1\u05d9\u05e3","\u05db\u05e4\u05e8 \u05d9\u05d5\u05e0\u05d4","\u05db\u05e4\u05e8 \u05db\u05de\u05d0","\u05db\u05e4\u05e8 \u05db\u05e0\u05d0","\u05db\u05e4\u05e8 \u05de\u05e0\u05d3\u05d0","\u05db\u05e4\u05e8 \u05e0\u05d8\u05e8","\u05db\u05e4\u05e8 \u05e1\u05d1\u05d0","\u05db\u05e4\u05e8 \u05e7\u05d0\u05e1\u05dd","\u05db\u05e4\u05e8 \u05e7\u05e8\u05e2","\u05db\u05e4\u05e8 \u05e9\u05de\u05e8\u05d9\u05d4\u05d5","\u05db\u05e4\u05e8 \u05ea\u05d1\u05d5\u05e8","\u05db\u05e8\u05de\u05d9\u05d0\u05dc","\u05dc\u05d4\u05d1\u05d9\u05dd","\u05dc\u05d5\u05d3","\u05dc\u05e7\u05d9\u05d4","\u05de\u05d1\u05e9\u05e8\u05ea \u05e6\u05d9\u05d5\u05df","\u05de\u05d2\'\u05d3 \u05d0\u05dc-\u05db\u05e8\u05d5\u05dd","\u05de\u05d2\'\u05d3\u05dc \u05e9\u05de\u05e1","\u05de\u05d2\u05d0\u05e8","\u05de\u05d2\u05d3\u05dc","\u05de\u05d2\u05d3\u05dc \u05d4\u05e2\u05de\u05e7","\u05de\u05d2\u05d3\u05dc \u05ea\u05e4\u05df","\u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df-\u05de\u05db\u05d1\u05d9\u05dd-\u05e8\u05e2\u05d5\u05ea*","\u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df \u05e2\u05d9\u05dc\u05d9\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc-\u05e7\u05e1\u05d5\u05dd","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc \u05d1\u05d8\u05d5\u05e3","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc\u05d5\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05e9\u05db\u05d5\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05d0\u05e8 \u05d8\u05d5\u05d1\u05d9\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05d5\u05e1\u05ea\u05df-\u05d0\u05dc-\u05de\u05e8\u05d2\'","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05e0\u05d9 \u05e9\u05de\u05e2\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05e8\u05e0\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d3\u05e8\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d5\u05dc\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d6\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d1\u05d5\u05e2","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d9\u05dc \u05e2\u05dc\u05d9\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d9\u05dc \u05ea\u05d7\u05ea\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05df \u05e8\u05d5\u05d5\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d3\u05e8\u05d5\u05dd \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d6\u05d1\u05d5\u05dc\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05d0\u05d9\u05dc\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05d9\u05d1\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d0\u05e9\u05e7\u05dc\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d4\u05db\u05e8\u05de\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d9\u05d5\u05d0\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05dc\u05d1 \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05dc\u05db\u05d9\u05e9","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d1\u05d5\u05d0\u05d5\u05ea \u05d4\u05d7\u05e8\u05de\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d2\u05d9\u05d3\u05d5","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d8\u05d4 \u05d0\u05e9\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d8\u05d4 \u05d9\u05d4\u05d5\u05d3\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e0\u05e9\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e2\u05dc\u05d4 \u05d9\u05d5\u05e1\u05e3","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e8\u05d5\u05dd \u05d4\u05d2\u05dc\u05d9\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e8\u05d7\u05d1\u05d9\u05dd","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e9\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e0\u05d5\u05d5\u05d4 \u05de\u05d3\u05d1\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e0\u05d7\u05dc \u05e9\u05d5\u05e8\u05e7","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d4\u05d9\u05e8\u05d3\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d4\u05de\u05e2\u05d9\u05d9\u05e0\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d7\u05e4\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d9\u05d6\u05e8\u05e2\u05d0\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05e8\u05d1\u05d4 \u05ea\u05d9\u05db\u05d5\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e8\u05de\u05ea \u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05d3\u05d5\u05ea \u05d3\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05d3\u05d5\u05ea \u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05e2\u05e8 \u05d4\u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05e4\u05d9\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05ea\u05de\u05e8","\u05de\u05d5\u05e7\u05d9\u05d9\u05d1\u05dc\u05d4","\u05de\u05d6\u05db\u05e8\u05ea \u05d1\u05ea\u05d9\u05d4","\u05de\u05d6\u05e8\u05e2\u05d4","\u05de\u05d8\u05d5\u05dc\u05d4","\u05de\u05d9\u05ea\u05e8","\u05de\u05db\u05de\u05d5\u05e8\u05ea","\u05de\u05e1\u05e2\u05d3\u05d4","\u05de\u05e1\u05e2\u05d5\u05d3\u05d9\u05df \u05d0\u05dc-\u05e2\u05d6\u05d0\u05d6\u05de\u05d4 (\u05e9\u05d1\u05d8)","\u05de\u05e2\u05dc\u05d4 \u05d0\u05d3\u05d5\u05de\u05d9\u05dd","\u05de\u05e2\u05d9\u05dc\u05d9\u05d0","\u05de\u05e2\u05dc\u05d4 \u05e2\u05d9\u05e8\u05d5\u05df","\u05de\u05e2\u05dc\u05d5\u05ea \u05ea\u05e8\u05e9\u05d9\u05d7\u05d0","\u05de\u05e6\u05e4\u05d4 \u05e8\u05de\u05d5\u05df","\u05de\u05e8\'\u05d0\u05e8","\u05de\u05e9\u05d4\u05d3","\u05e0\u05d0\u05d5\u05ea \u05d7\u05d5\u05d1\u05d1","\u05e0\u05d1\u05d8\u05d9\u05dd","\u05e0\u05d4\u05e8\u05d9\u05d9\u05d4","\u05e0\u05d5\u05d5\u05d4 \u05d0\u05d8\u05d9\\"\u05d1","\u05e0\u05d5\u05e3 \u05d4\u05d2\u05dc\u05d9\u05dc","\u05e0\u05d7\u05e3","\u05e0\u05e1 \u05e6\u05d9\u05d5\u05e0\u05d4","\u05e0\u05e6\u05e8\u05ea","\u05e0\u05e6\u05e8\u05ea \u05e2\u05d9\u05dc\u05d9\u05ea","\u05e0\u05e9\u05e8","\u05e0\u05ea\u05d9\u05d1\u05d5\u05ea","\u05e0\u05ea\u05e0\u05d9\u05d4","\u05e1\u05d1\u05d9\u05d5\u05df","\u05e1\u05d2\'\u05d5\u05e8","\u05e1\u05d7\'\u05e0\u05d9\u05df","\u05e1\u05dc\u05e2\u05d9\u05ea","\u05e2\u05d5\u05d6\u05d9\u05d9\u05e8","\u05e2\u05d5\u05dc\u05e9","\u05e2\u05d5\u05de\u05e8","\u05e2\u05d5\u05e1\u05e4\u05d9\u05d9\u05d0","\u05e2\u05d9\u05dc\u05d1\u05d5\u05df","\u05e2\u05d9\u05dc\u05d5\u05d8","\u05e2\u05d9\u05df \u05de\u05d0\u05d4\u05dc","\u05e2\u05d9\u05df \u05e7\u05d9\u05e0\u05d9\u05d0","\u05e2\u05db\u05d5","\u05e2\u05dc\u05de\u05d5\u05df","\u05e2\u05e1\u05e4\u05d9\u05d0","\u05e2\u05e4\u05d5\u05dc\u05d4","\u05e2\u05e8\u05d0\u05d1\u05d4","\u05e2\u05e8\u05d3","\u05e2\u05e8\u05e2\u05e8\u05d4","\u05e2\u05e8\u05e2\u05e8\u05d4-\u05d1\u05e0\u05d2\u05d1","\u05e2\u05ea\u05dc\u05d9\u05ea","\u05e4\u05d5\u05e8\u05d9\u05d9\u05d3\u05d9\u05e1","\u05e4\u05e1\u05d5\u05d8\u05d4","\u05e4\u05e7\u05d9\u05e2\u05d9\u05df -\u05d1\u05d5\u05e7\u05d9\u05d9\u05e2\u05d4","\u05e4\u05e8\u05d3\u05e1 \u05d7\u05e0\u05d4-\u05db\u05e8\u05db\u05d5\u05e8","\u05e4\u05e8\u05d3\u05e1\u05d9\u05d4","\u05e4\u05ea\u05d7 \u05ea\u05e7\u05d5\u05d5\u05d4","\u05e6\u05e4\u05ea","\u05e7\u05d3\u05d9\u05de\u05d4 - \u05e6\u05d5\u05e8\u05df","\u05e7\u05d3\u05e8\u05d5\u05df","\u05e7\u05dc\u05e0\u05e1\u05d5\u05d5\u05d4","\u05e7\u05e6\u05e8\u05d9\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d0\u05d5\u05e0\u05d5","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d0\u05ea\u05d0","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d1\u05d9\u05d0\u05dc\u05d9\u05e7","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d2\u05ea","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d9\u05dd","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d9\u05e2\u05e8\u05d9\u05dd","\u05e7\u05e8\u05d9\u05d9\u05ea \u05de\u05d5\u05e6\u05e7\u05d9\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05de\u05dc\u05d0\u05db\u05d9","\u05e7\u05e8\u05d9\u05d9\u05ea \u05e2\u05e7\u05e8\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05e9\u05de\u05d5\u05e0\u05d4","\u05e7\u05e8\u05e0\u05d9 \u05e9\u05d5\u05de\u05e8\u05d5\u05df","\u05e8\'\u05d2\'\u05e8","\u05e8\u05d0\u05de\u05d4","\u05e8\u05d0\u05e9 \u05d4\u05e2\u05d9\u05df","\u05e8\u05d0\u05e9 \u05e4\u05d9\u05e0\u05d4","\u05e8\u05d0\u05e9\u05d5\u05df \u05dc\u05e6\u05d9\u05d5\u05df","\u05e8\u05d4\u05d8","\u05e8\u05d7\u05d5\u05d1\u05d5\u05ea","\u05e8\u05d9\u05d9\u05e0\u05d4","\u05e8\u05db\u05e1\u05d9\u05dd","\u05e8\u05de\u05d5\u05ea","\u05e8\u05de\u05dc\u05d4","\u05e8\u05de\u05ea \u05d2\u05df","\u05e8\u05de\u05ea \u05d4\u05e9\u05e8\u05d5\u05df","\u05e8\u05de\u05ea \u05d9\u05e9\u05d9","\u05e8\u05e2\u05e0\u05e0\u05d4","\u05e9\u05d1\u05dc\u05d9 - \u05d0\u05d5\u05dd \u05d0\u05dc-\u05d2\u05e0\u05dd","\u05e9\u05d2\u05d1-\u05e9\u05dc\u05d5\u05dd","\u05e9\u05d3\u05d4 \u05e0\u05d9\u05e6\u05df","\u05e9\u05d3\u05d5\u05ea \u05de\u05d9\u05db\u05d4","\u05e9\u05d3\u05e8\u05d5\u05ea","\u05e9\u05d4\u05dd","\u05e9\u05dc\u05d5\u05de\u05d9","\u05e9\u05e2\u05d1","\u05e9\u05e4\u05e8\u05e2\u05dd","\u05ea\u05dc \u05d0\u05d1\u05d9\u05d1 -\u05d9\u05e4\u05d5","\u05ea\u05dc \u05de\u05d5\u05e0\u05d3","\u05ea\u05dc \u05e9\u05d1\u05e2","\u05ea\u05e7\u05d5\u05e2","\u05ea\u05e8\u05d1\u05d9\u05df \u05d0-\u05e6\u05d0\u05e0\u05e2 (\u05d9\u05d9\u05e9\u05d5\u05d1)*"]')}},[[393,3,4]]]); +//# sourceMappingURL=main.167e3bce.chunk.js.map \ No newline at end of file diff --git a/build/static/js/main.167e3bce.chunk.js.map b/build/static/js/main.167e3bce.chunk.js.map new file mode 100644 index 0000000..b9414c6 --- /dev/null +++ b/build/static/js/main.167e3bce.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["stores/FilterChecker.ts","stores/ColumnFilterCheckBoxList.ts","utils/FilterUtils.ts","stores/ColumnFilterArray.ts","stores/ColumnFilterCombo.ts","utils/groupByUtils.ts","stores/GroupBy.ts","stores/GroupBy2.ts","stores/GroupBy2Val.tsx","stores/GroupMap.ts","services/AccidentService.ts","services/CityService.ts","services/DexieInjuredService.js","services/Localstorage.Service.ts","stores/FilterStore.ts","stores/UiStore.ts","services/ImageService.ts","stores/ImageStore.ts","stores/storeConfig.ts","stores/RootStore.ts","components/atoms/SmallCard2.tsx","components/atoms/Checkbox.tsx","components/organisms/ConfigModal.tsx","services/logger.js","components/atoms/ErrorBoundary.tsx","components/atoms/Loader.tsx","components/templates/TabsTemplate.tsx","components/molecules/CitySelector.tsx","components/molecules/StreetSelector.tsx","components/molecules/RoadNameSelector.tsx","components/molecules/RoadSegmentSelector.tsx","components/molecules/GroupCheckBox.tsx","components/organisms/FilterForm.tsx","components/organisms/ConfigFilterModal.tsx","assets/SvgIconFilter.tsx","components/atoms/ButtonShowFilterModal.tsx","components/organisms/Drawer.tsx","components/templates/WithSidebarTemplate.tsx","components/molecules/InfoPanel.tsx","components/templates/HomeTemplate.tsx","components/pages/HomePage.tsx","components/templates/CityTemplate.tsx","components/pages/CityPage.tsx","components/molecules/LanguageSelector.tsx","components/molecules/NavigationList.tsx","components/templates/Headr.tsx","assets/safety-logo.png","App.js","serviceWorker.js","index.js","utils/queryStringUtils.ts","hooks/myUseMemo.ts","i18n.js","components/atoms/MySelect.tsx","stores/MapStore.ts"],"names":["FilterChecker","label","valid","filters","this","checked","observable","ColumnFilter","name","dbColName","allTypesOption","isEmptyValsOnAllCheck","queryColName","arrValues","isArrValuesEmptyOnAllCheck","getFilter","vals","join","length","setBrowserQueryString","params","delIfEmpthy","delete","set","arrTypes","text","reduce","counter","currentValue","get","valsArr","split","map","Number","forEach","checker","found","some","r","includes","setQueryVals","computed","action","aType","x","index","allChecked","arrfilter","iterator","values","filterCheck","ignoreIfAll","filter","i18n","t","initVehicleTypesFull","col","push","getFilterGroupBy","filterMatch","groupName","groupName2","limit","sort","getFilterByCityPop","popMin","popMax","getfilterBounds","mapBounds","getSouth","getNorth","getWest","getEast","ColumnFilterArray","isStringValues","trim","ColumnFilterCombo","data","defaultVal","isEmpty","queryValue","toString","setValuesByQuery","setFilter","parseInt","value","ColumnFilterComboValText","val","res","foundObject","find","obj","years","cityPopSizeArr","reGroupResultIsSelfAcc","console","log","Array","_id","count","element","isSelfAccident","GroupBy","reGroupResultFunc","initGroupMapForGet","Map","initGroupByDictForPost","dictGroupBy","Severity","TypeInjured","Vehicle","Gender","Age","Year","Month","DayNight","WeekDay","RoadType","City","CityByPop","Street","Road","AccidentType","Vehicles","SpeedLimit","RoadWidth","Separator","OneLane","GroupBy2","revTrnas","key","fixStrcutTable","arr","y","engVal","grp2","xId","undefined","replace","sObject","JSON","parse","getBars","Object","entries","color","getColumns","unshift","GroupBy2Val","GroupMap","colName","defautVal","dict","URLSearchParams","location","search","groupBy","window","history","replaceState","pathname","setArrGroups","arrGroups","from","initGroup2DictForGet","sev","gen","roadt","year","dayNight","injt","acc","initGroup2DictForPost","fetchGetList","type","a","url","fetch","method","mode","cache","credentials","headers","redirect","referrerPolicy","response","ok","json","fetchGetGroupBy","fetchGetCount","fetchFilter","body","fetchAggregatFilter","fetchAggregate","CityService","getCityByNameHe","cityName","collback","then","catch","error","lang","db","Dexie","insertToDexie","injuerd","bulkPut","getFromDexie","arrFilters","toArray","shift","where","filterName","between","startYear","endYear","collection","and","orFilter","version","stores","LocalStorageService","localStorage","getItem","setItem","stringify","FilterStore","rootStore","appInitialized","useGetFetch","localStorageService","updateSpeedLimit","updateFilters","speedLimit","padDataYearsWith0","yearsList","i","objDAta","getCountFromGroupByRes","b","submintMainDataFilter","isLoading","getFilterQueryString","setFiltersText","mapStore","updateIsSetBounds","cities","roadSegment","AccidentService","updateAllInjuries","useLocalDb","cityPopSizeRange","getFilterForPost","submintGetMarkerFirstStep","updateDataMarkersLean","submitCityNameAndLocation","city","srvCity","CenterByCityCallBack","isCenterMapByCity","updateMapCenterByCity","cityResult","bounds","useBounds","injurySeverity","FilterUtils","streets","roads","injTypes","genderTypes","ageTypes","populationTypes","accidentType","vehicleType","involvedVehicle","locationAccuracy","roadTypes","roadWidth","separator","oneLane","range","min","max","setText","getfilterBySeverityAndCity","getFilterFromArray","getFilterFromNumArray","submitMainDataFilterLocalDb","getFilterIDB","submintGetMarkersBBoxIdb","getFilterBboxIDB","updateDataMarkersInBounds","getfilterCityIDB","getFilterStreetsIDB","getMultiplefilterIDB","getFilterFromArrayIDb","bbox","p1","getSouthWest","p2","getNorthEast","colFilter","filterVals","filter1","FC","setCasualtiesNames","groupByDict","mapGroupBy2","initGroup2Map","group2Dict","dataByYears","dataYearsUnfilterdInit","dataFilterdByYears","dataYearsfilterdInit","dataFilterd","dataGrpBy1Init","dataGroupby2","dataGrp2Init","isAllValsFalse","query","defVal","isMultipleCities","citisNamesHeb","isValidSeverity","isValidWhen","isValidWho","isValidWhere","isValidWhat","isValidWhatVehicle","isValidWhatRoad","filtersArrayLocalStorage","getLoaclStorage","setLocalStorage","showAllVehicleTypes","isUpdateFromUrl","formCardKey","deadChecker","sevIngChecker","casualtiesNames","isMulti","names","updateCityResult","injuriesCount","isLoadingInjuriesCount","setMarkersLoadStep","dataAllInjuries","setBounds","bboxType","BBoxType","LOCAL_BBOX","getMarkersInLocalBBox","dataMarkersLean","submitfilterdGroup","submitfilterdGroupByPop","gb2","submitfilterdGroup2","filtermatch","dataPadded","setDataFilterdByYears","setInjuriesCount","aGroupBy","fixData","logger","gb2name","step","isUse2StepsMarkers","markersLoadStep","SERVER_BBOX","submintGetMarkersBBox","submitGroupByYears","submitfilterdGroupByYears","uiStore","language","currentPage","imageStore","getImagesByPlace","currentTab","defCity","citis","getCityNameFromQuery","updateCities","UiStore","reactionChangeLang","reaction","locale","changeLanguage","initLang","slang","updateLanguage","getValFromQuery","dir","setDirection","direction","showFilterModal","initPage","defTab","tab","setCurrentTab","filterStore","setStoreByQuery","pageType","tabName","setQueryStrTab","chartType","showPercentageChart","fetchListImgByTag","tag","fetchListImgByPlace","place","uploadImg","image","file","formData","FormData","append","titlehe","texthe","tags","updateImgProps","ImageStore","tagsArr","setCurrImageVal","valName","currImage","submitImageFile","getImages","getImagesByTag","currTag","setImageList","imageList","setCurrImage","hideDescription","document","documentElement","style","setProperty","store","MapStore","StoreContext","React","createContext","useStore","useContext","Error","SmallCard2","children","header","cardHeader","className","Checkbox","group","id","onChange","useTranslation","Check","inline","memo","ConfigModal","observer","title","showModal","setShow","size","handleClose","submitChanges","variant","onClick","disabled","isValidAllFilters","show","onHide","Header","closeButton","Title","Body","maxHeight","overflowY","Footer","message","freeze","ErrorBoundary","props","state","hasError","errorInfo","Component","Loader","Spinner","animation","GroupByGraphsPanel","lazy","GroupByTablesPanel","MapAccidents","AccidentsTable","MyImageGallery","styles","marginTop","tabMap","mapCard","width","height","TabsTemplate","Tabs","mountOnEnter","activeKey","onSelect","tabActiveKey","isReadyToRenderMap","Tab","eventKey","fallback","CitySelector","isMultiple","Form","Group","controlId","Label","selected","options","multiple","StreetSelector","Control","placeholder","e","updateStreets","target","RoadNameSelector","setRoads","inputProps","roadNames","RoadSegmentSelector","updateRoadSegment","GroupCheckbox","formName","onGroupChange","feedback","fontSize","isvalid","list","fChecker","useMemos","STYLE_TOGGLE_WARNING","STYLE_TOGGLE_NORMAL","cursor","FilterForm","updateInjurySeverity","Fragment","Accordion","defaultActiveKey","CardFilterWhen","CardFilterWhatVehicle","CardFilterWhere","CardFilterWho","CardFilterWhat","CardFilterWhatRoad","CustomToggle","useState","hover","setHover","toggleHover","linkStyle","textDecoration","onButtonClick","useAccordionToggle","onMouseEnter","onMouseLeave","setStartYear","setEndYear","updateDayNight","setFormCardKey","styleToggle","Card","Collapse","MySelect","String","updateRoadType","updateLocationAccuracy","setCityPopSizeRange","display","alignItems","valProp","contentProp","event","useLocation","updateGenderType","updateAgeType","updatePopulationType","updateAccidentType","updateInjuerdType","updateVehicleType","setInvolvedVehicle","updateRoadWidth","updateSeparator","updateOneLane","ConfigFilterModal","setShowFilterModal","submitFilter","setTimeout","SvgIconFilter","xmlns","viewBox","d","fill","ButtonShowFilterModal","memoFilterIcon","Drawer","Button","margin","alert","WithSidebarTemplate","WhenTitle","WhereTitle","WhoTitle","WhatTitle","WhatVehicleTitle","InfoPanel","div","marginLeft","marginRight","marginBottom","isLoadingCountInjuries","HomeTemplate","setIsMultipleCities","setCurrentPage","setInitPage","useEffect","memoConfigModal","HomePage","CityTemplate","setIsUpdateFromUrl","CityPage","LanguageSelector","getElementById","href","classList","remove","add","NavigationList","to","position","top","zIndex","Navbar","expand","src","alt","Toggle","aria-controls","AboutPage","UpdateImagePage","MyFilters","app","App","exact","path","component","Boolean","hostname","match","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister","delBrowserQueryString","dep","item","useMemo","use","initReactI18next","init","fallbackLng","lng","debug","resources","en","translation","translationEng","he","translationHeb","interpolation","escapeValue","cssClass","cssname","DEFAULT_BOUNDS","L","latLng","QUERY_STR_NAME_LAT","QUERY_STR_NAME_LNG","QUERY_STR_NAME_MRKRCOLOR","mapRef","setMapRef","delQueryStrMapCenter","setQueryStrMapCenter","center","lat","toFixed","setQueryStrMapZoom","zoom","getCenterByQuery","sLat","sLon","parseFloat","isNaN","LatLng","doCenterByCity","markerIconTypesArr","setBrowserQueryStringByMarkerColor","markerColorType","markerColorTypesArr","getBoundsByPointsArr","lastPoint","latitude","longitude","p","latLngBounds","getBounds2","south","north","west","east","Math","setQueryStrMapCenterByBounds","current","leafletElement","getBounds","getCenter","getZoom","getMarkersInBBox","boundsMargin","setMapZoomByQuery","setMapCenterByQuery","setMarkerColorTypeByQuery","updateQuery","mapCenter","mapZoom","updateMapCenter","sZoom","setMapZoom","lon","citisArr","isSetBounds","bunds","roadSegArr","useSetBounds","heatLayerHidden","useSmallMarkers","markerIconsType","setMarkerColorType","dataMarkersInBounds","NO_BBOX"],"mappings":"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","file":"static/js/main.167e3bce.chunk.js","sourcesContent":["import { observable} from 'mobx';\r\n\r\nexport interface IFilterChecker {\r\n checked: boolean;\r\n label: string;\r\n filters: number[];\r\n}\r\n/**\r\n * filter that represnt a check - box in gui\r\n */\r\nexport default class FilterChecker implements IFilterChecker {\r\n @observable\r\n checked: boolean;\r\n\r\n label: string;\r\n\r\n filters: any[];\r\n\r\n constructor(label: string, valid: boolean, filters: number[]) {\r\n this.label = label;\r\n this.checked = valid;\r\n this.filters = filters;\r\n }\r\n}\r\n","import { observable, action, computed } from 'mobx';\r\nimport FilterChecker, { IFilterChecker } from './FilterChecker';\r\nimport dataYearsUnfilterdInit from '../assets/data-by-years.json';\r\nimport dataYearsfilterdInit from '../assets/data-by-years-filtred.json';\r\nimport dataGrpBy1Init from '../assets/data-by-grp1.json';\r\nimport dataGrp2Init from '../assets/data-by-grp2.json';\r\nimport i18n from '../i18n';\r\n\r\nexport interface IColumnFilter {\r\n name: string;\r\n queryColName: string;\r\n arrTypes: IFilterChecker[];\r\n //array of values to be sent as query to server\r\n arrValues: number[];\r\n isArrValuesEmptyOnAllCheck: boolean;\r\n setQueryVals: () => void;\r\n setFilter: (aType: number, checked: boolean) => void;\r\n getFilter: () => string;\r\n setBrowserQueryString: (param: URLSearchParams, delIfEmpthy?: boolean) => void;\r\n setValuesByQuery: (param: URLSearchParams) => void;\r\n // spaciel value, if checkd it will mark all options as true\r\n allTypesOption: number;\r\n isAllValsFalse: boolean;\r\n //text is updated after filter submit\r\n text: string;\r\n setText: (ignoreIfAll: boolean) => void;\r\n}\r\n/** filter group of boolaen filters that are check-box in the gui\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilter implements IColumnFilter {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n arrValues: number[];\r\n isArrValuesEmptyOnAllCheck: boolean;\r\n\r\n @observable\r\n arrTypes: IFilterChecker[];\r\n\r\n allTypesOption: number;\r\n\r\n @observable\r\n text: string;\r\n\r\n constructor(name: string, dbColName: string, allTypesOption: number = -1, isEmptyValsOnAllCheck: boolean = true) {\r\n this.name = name;\r\n this.queryColName = dbColName;\r\n this.arrTypes = [];\r\n this.arrValues = [];\r\n this.isArrValuesEmptyOnAllCheck = isEmptyValsOnAllCheck;\r\n // if this value > -1 , there is an option to set all values as true\r\n this.allTypesOption = allTypesOption;\r\n this.text = '';\r\n }\r\n\r\n /**\r\n * check if all the a values in the group are false\r\n */\r\n @computed get isAllValsFalse() {\r\n const res = this.arrTypes.reduce((counter, currentValue) => (currentValue.checked ? ++counter : counter), 0);\r\n return (res === 0);\r\n }\r\n\r\n @action\r\n setFilter = (aType: number, checked: boolean) => {\r\n // in case this filter group has no \"select all\" option - update the value\r\n if (this.allTypesOption === -1) this.arrTypes[aType].checked = checked;\r\n // in case this filter has opthion for \"select all\"\r\n else if (aType === this.allTypesOption) {\r\n this.arrTypes.forEach((x, index) => x.checked = (index === this.allTypesOption) ? checked : !checked);\r\n } else {\r\n this.arrTypes[this.allTypesOption].checked = false;\r\n this.arrTypes[aType].checked = checked;\r\n }\r\n this.setQueryVals();\r\n }\r\n\r\n /**\r\n * return sentence for query-string from Multiplefilter of booleans,\r\n * for example : &injt=4,5 \r\n * @param colFilter column filter with name and chekcd list of values\r\n */\r\n @action\r\n setQueryVals = () => {\r\n let allChecked: boolean = true;\r\n let arrfilter: number[] = [];\r\n if (this.allTypesOption > -1 && this.arrTypes[this.allTypesOption].checked) allChecked = true;\r\n else {\r\n // in case there is allTypesOption , it want be copied to arrfilter\r\n // as it is not checked\r\n const iterator = this.arrTypes.values();\r\n for (const filterCheck of iterator) {\r\n if (filterCheck.checked) {\r\n arrfilter = [...arrfilter, ...filterCheck.filters];\r\n } else {\r\n allChecked = false;\r\n }\r\n }\r\n }\r\n if (allChecked && this.isArrValuesEmptyOnAllCheck) arrfilter = [];\r\n this.arrValues = arrfilter;\r\n };\r\n\r\n /**\r\n * \r\n * @returns query string for the server\r\n */\r\n getFilter = () => {\r\n const vals = this.arrValues.join(',');\r\n let res = (this.arrValues.length == 0) ? '' : `&${this.queryColName}=${vals}`;\r\n return res;\r\n }\r\n\r\n /**\r\n * set parmas of the browser QueryString\r\n * @param params \r\n */\r\n setBrowserQueryString = (params: URLSearchParams, delIfEmpthy: boolean = true) => {\r\n if (this.arrValues.length === 0 && delIfEmpthy) {\r\n params.delete(this.queryColName);\r\n } else {\r\n const vals = this.arrValues.join(',');\r\n params.set(this.queryColName, vals);\r\n }\r\n }\r\n\r\n /**\r\n * set arrValues by url query parmas\r\n * @param params queryString from the browser\r\n */\r\n @action\r\n setValuesByQuery(params: URLSearchParams) {\r\n const vals = params.get(this.queryColName);\r\n if (vals !== null) {\r\n const valsArr = vals.split(',').map(Number);\r\n this.arrTypes.forEach(checker => {\r\n const found = checker.filters.some(r => valsArr.includes(r));\r\n checker.checked = found;\r\n });\r\n }\r\n this.setQueryVals();\r\n }\r\n\r\n @action\r\n setText = (ignoreIfAll: boolean) => {\r\n if (ignoreIfAll) {\r\n this.text = this.arrTypes.filter((x, index) => x.checked && index !== this.allTypesOption)\r\n .map(x => i18n.t(x.label)).join(', ');\r\n //in case all is cheked and no \"allTypesOption\" - text is ''\r\n if (this.allTypesOption === -1 && this.arrValues.length === 0) {\r\n this.text = '';\r\n }\r\n } else {\r\n this.text = this.arrTypes.filter(x => x.checked).map(x => i18n.t(x.label)).join(', ');\r\n }\r\n }\r\n}\r\n\r\nexport const initInjurySeverity = () => {\r\n const col: IColumnFilter = new ColumnFilter('Severity', 'sev', -1, false);\r\n col.arrTypes.push(new FilterChecker('dead', true, [1]));\r\n col.arrTypes.push(new FilterChecker('severly-injured', false, [2]));\r\n col.setQueryVals();\r\n return col;\r\n};\r\n\r\nexport const initDayNight = () => {\r\n const col: IColumnFilter = new ColumnFilter('DayNight', 'dn');\r\n col.arrTypes.push(new FilterChecker('day', true, [1]));\r\n col.arrTypes.push(new FilterChecker('night', true, [5]));\r\n return col;\r\n};\r\n\r\nexport const initMonth = () => {\r\n const col: IColumnFilter = new ColumnFilter('Month', 'mn');\r\n col.arrTypes.push(new FilterChecker('1', true, [1]));\r\n col.arrTypes.push(new FilterChecker('2', true, [2]));\r\n col.arrTypes.push(new FilterChecker('3', true, [3]));\r\n col.arrTypes.push(new FilterChecker('4', true, [4]));\r\n col.arrTypes.push(new FilterChecker('5', true, [5]));\r\n col.arrTypes.push(new FilterChecker('6', true, [6]));\r\n col.arrTypes.push(new FilterChecker('7', true, [7]));\r\n col.arrTypes.push(new FilterChecker('8', true, [8]));\r\n col.arrTypes.push(new FilterChecker('9', true, [9]));\r\n col.arrTypes.push(new FilterChecker('10', true, [10]));\r\n col.arrTypes.push(new FilterChecker('11', true, [11]));\r\n col.arrTypes.push(new FilterChecker('12', true, [12]));\r\n return col;\r\n};\r\n\r\nexport const initInjTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('TypeInjured', 'injt', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('pedestrian', false, [1]));\r\n col.arrTypes.push(new FilterChecker('cyclist', false, [6, 7]));\r\n col.arrTypes.push(new FilterChecker('other', false, [8, 9]));\r\n col.arrTypes.push(new FilterChecker('motorcycle', false, [4, 5]));\r\n col.arrTypes.push(new FilterChecker('wheels4+', false, [2, 3]));\r\n return col;\r\n};\r\n\r\nexport const initVehicleTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('VehicleType', 'vcl', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('pedestrian', false, [0]));\r\n col.arrTypes.push(new FilterChecker('mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('motorcycle', false,\r\n [8, 9, 10, 19]));\r\n col.arrTypes.push(new FilterChecker('car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('bus', false, [11, 18]));\r\n col.arrTypes.push(new FilterChecker('truck', false,\r\n [24, 25, 5, 6, 7]));\r\n col.arrTypes.push(new FilterChecker('tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('other', false, [17]));\r\n return col;\r\n};\r\n\r\nexport const initVehicleTypesFull = () => {\r\n const col: IColumnFilter = new ColumnFilter('VehicleType', 'vcl', 0);\r\n col.arrTypes.push(new FilterChecker('vclType.all', true, []));\r\n col.arrTypes.push(new FilterChecker('vclType.pedestrian', false, [0]));\r\n col.arrTypes.push(new FilterChecker('vclType.mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('vclType.bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle1', false, [8]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle2', false, [9]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle3', false, [10]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle4', false, [19]));\r\n col.arrTypes.push(new FilterChecker('vclType.car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('vclType.taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('vclType.tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('vclType.tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('vclType.minbuss', false, [18]));\r\n col.arrTypes.push(new FilterChecker('vclType.bus', false, [11]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck1', false, [24]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck2', false, [25]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck3', false, [5]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck4', false, [6]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck5', false, [7]));\r\n col.arrTypes.push(new FilterChecker('vclType.tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('vclType.train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('vclType.other', false, [17]));\r\n return col;\r\n};\r\n\r\nexport const initInvolvedVehicle = () => {\r\n const col: IColumnFilter = new ColumnFilter('Vehicles', 'vcli', 0);\r\n col.arrTypes.push(new FilterChecker('vclType.all', true, []));\r\n col.arrTypes.push(new FilterChecker('vclType.mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('vclType.bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle', false, [8]));\r\n col.arrTypes.push(new FilterChecker('vclType.car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('vclType.taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('vclType.tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('vclType.tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('vclType.bus', false, [11]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck', false, [5]));\r\n col.arrTypes.push(new FilterChecker('vclType.tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('vclType.train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('vclType.other', false, [17]));\r\n return col;\r\n};\r\n\r\n\r\nexport const initGenderTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Gender', 'sex');\r\n col.arrTypes.push(new FilterChecker('female', true, [2]));\r\n col.arrTypes.push(new FilterChecker('male', true, [1]));\r\n return col;\r\n};\r\n\r\nexport const initAgeTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Age', 'age', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('00-04', false, [1]));\r\n col.arrTypes.push(new FilterChecker('05-09', false, [2]));\r\n col.arrTypes.push(new FilterChecker('10-14', false, [3]));\r\n col.arrTypes.push(new FilterChecker('15-19', false, [4]));\r\n col.arrTypes.push(new FilterChecker('20-29', false, [5, 6]));\r\n col.arrTypes.push(new FilterChecker('30-39', false, [7, 8]));\r\n col.arrTypes.push(new FilterChecker('40-49', false, [9, 10]));\r\n col.arrTypes.push(new FilterChecker('50-59', false, [11, 12]));\r\n col.arrTypes.push(new FilterChecker('60-69', false, [13, 14]));\r\n col.arrTypes.push(new FilterChecker('70-79', false, [15, 16]));\r\n col.arrTypes.push(new FilterChecker('80+', false, [17, 18]));\r\n col.arrTypes.push(new FilterChecker('unknown', false, [99]));\r\n return col;\r\n};\r\nexport const initPopulationTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Population', 'pt');\r\n col.arrTypes.push(new FilterChecker('jews', true, [1]));\r\n col.arrTypes.push(new FilterChecker('arabs', true, [2]));\r\n col.arrTypes.push(new FilterChecker('immigrants', true, [4]));\r\n col.arrTypes.push(new FilterChecker('others', true, [3]));\r\n return col;\r\n};\r\n\r\nexport const initLocationAccuracy = () => {\r\n const col: IColumnFilter = new ColumnFilter('LocationAccuracy', 'lca');\r\n col.arrTypes.push(new FilterChecker('accurate_location', true, [1]));\r\n col.arrTypes.push(new FilterChecker('city_center', true, [2]));\r\n col.arrTypes.push(new FilterChecker('road_center', true, [3]));\r\n col.arrTypes.push(new FilterChecker('km_cneter', true, [4]));\r\n col.arrTypes.push(new FilterChecker('no_location', true, [9]));\r\n return col;\r\n};\r\n\r\nexport const initRoadTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('RoadType', 'rt');\r\n col.arrTypes.push(new FilterChecker('urban-junction', true, [1]));\r\n col.arrTypes.push(new FilterChecker('urban-road', true, [2]));\r\n col.arrTypes.push(new FilterChecker('non-urban-junction', true, [3]));\r\n col.arrTypes.push(new FilterChecker('non-urban-road', true, [4]));\r\n return col;\r\n};\r\nexport const initSpeedLimit = () => {\r\n const col: IColumnFilter = new ColumnFilter('SpeedLimit', 'sp', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('speed50', false, [1]));\r\n col.arrTypes.push(new FilterChecker('speed60', false, [2]));\r\n col.arrTypes.push(new FilterChecker('speed70', false, [3]));\r\n col.arrTypes.push(new FilterChecker('speed80', false, [4]));\r\n col.arrTypes.push(new FilterChecker('speed90', false, [5]));\r\n col.arrTypes.push(new FilterChecker('speed100', false, [6]));\r\n col.arrTypes.push(new FilterChecker('speed110', false, [7]));\r\n col.arrTypes.push(new FilterChecker('speed120', false, [8]));\r\n col.arrTypes.push(new FilterChecker('speed-unknown', false, [0]));\r\n return col;\r\n};\r\nexport const initRoadWidth = () => {\r\n const col: IColumnFilter = new ColumnFilter('RoadWidth', 'rw', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('road-width-5', false, [1]));\r\n col.arrTypes.push(new FilterChecker('road-width-7', false, [2]));\r\n col.arrTypes.push(new FilterChecker('road-width-10', false, [3]));\r\n col.arrTypes.push(new FilterChecker('road-width-14', false, [4]));\r\n col.arrTypes.push(new FilterChecker('road-width-14+', false, [5]));\r\n col.arrTypes.push(new FilterChecker('unknown', false, [0]));\r\n return col;\r\n};\r\nexport const initSeparator = () => {\r\n const col: IColumnFilter = new ColumnFilter('Separator', 'ml', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('separator-fence', false, [2]));\r\n col.arrTypes.push(new FilterChecker('separator-built', false, [3]));\r\n col.arrTypes.push(new FilterChecker('separator-not-built', false, [4]));\r\n col.arrTypes.push(new FilterChecker('separator-paint', false, [1]));\r\n col.arrTypes.push(new FilterChecker('separator-ohter', false, [5]));\r\n // col.arrTypes.push(new FilterChecker('separator-not-relevant', false, [-1]));\r\n return col;\r\n};\r\nexport const initOneLane = () => {\r\n const col: IColumnFilter = new ColumnFilter('OneLane', 'ol', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('onelane-oneway', false, [1]));\r\n col.arrTypes.push(new FilterChecker('onelane-twoway-line', false, [2]));\r\n col.arrTypes.push(new FilterChecker('onelane-twoway-noline', false, [3]));\r\n col.arrTypes.push(new FilterChecker('onelane-unknown', false, [9]));\r\n // col.arrTypes.push(new FilterChecker('onelane-not-relevant', false, [-1]));\r\n return col;\r\n};\r\nexport const initAccidentType = () => {\r\n const col: IColumnFilter = new ColumnFilter('AccidentType', 'acc', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('accType.ped', false, [1]));\r\n col.arrTypes.push(new FilterChecker('accType.front-side', false, [2]));\r\n col.arrTypes.push(new FilterChecker('accType.front-front', false, [5]));\r\n col.arrTypes.push(new FilterChecker('accType.front-rear', false, [3]));\r\n col.arrTypes.push(new FilterChecker('accType.side-side', false, [4]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle1', false, [6]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle2', false, [7]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle3', false, [8]));\r\n col.arrTypes.push(new FilterChecker('accType.offroad', false, [9]));\r\n col.arrTypes.push(new FilterChecker('accType.turning-over', false, [10]));\r\n col.arrTypes.push(new FilterChecker('accType.slip', false, [11]));\r\n col.arrTypes.push(new FilterChecker('accType.passenger', false, [12]));\r\n col.arrTypes.push(new FilterChecker('accType.falloff', false, [13]));\r\n col.arrTypes.push(new FilterChecker('accType.rear-front', false, [17]));\r\n col.arrTypes.push(new FilterChecker('accType.rear-side', false, [18]));\r\n col.arrTypes.push(new FilterChecker('accType.animal', false, [19]));\r\n col.arrTypes.push(new FilterChecker('accType.cargo', false, [20]));\r\n col.arrTypes.push(new FilterChecker('accType.other', false, [15]));\r\n return col;\r\n\r\n};\r\n\r\nexport const initDataYreasUnfilterd = () => dataYearsUnfilterdInit;\r\n\r\nexport const initDataYreasfilterd = () => dataYearsfilterdInit;\r\n\r\nexport const initDataGrpBy1 = () => dataGrpBy1Init;\r\n\r\nexport const initDataGrpBy2 = () => dataGrp2Init;","\r\nexport const getFilterGroupBy =\r\n (filterMatch: string,\r\n groupName: string,\r\n popMin = -1,\r\n popMax = -1,\r\n groupName2: string = '',\r\n limit: number= 0,\r\n sort: number =0 ) => {\r\n let filter = filterMatch;\r\n filter += `&gb=${groupName}`;\r\n if (groupName2 !== '') {\r\n filter +=`&gb2=${groupName2}`\r\n }\r\n if (sort !== 0)\r\n filter +=`&sort=${sort}`\r\n if (limit !== 0)\r\n filter +=`&lim=${limit}`\r\n return filter;\r\n };\r\n\r\n// get filter by city population \r\nexport const getFilterByCityPop = (popMin: number, popMax: number) => {\r\n let filter = '';\r\n if (popMin >= 0 && popMax > popMin) {\r\n //&p1=200000&p2=500000\r\n filter += `&p1=${popMin}&p2=${popMax}`;\r\n }\r\n return filter;\r\n};\r\n\r\n/**\r\n * fiter by accidents per 100,000 city population\r\n * @param filterMatch \r\n * @param popMin \r\n * @param popMax \r\n * @param sort \r\n * @param limit \r\n */\r\nexport const getFilterGroupByPop = (filterMatch: string, popMin = 200000, popMax = 100000, sort: number, limit: number) => {\r\n let filter = `${'['\r\n + '{\"$match\": '}${filterMatch}}`;\r\n filter += ',{\"$lookup\":{'\r\n + ' \"from\": \"cities\", \"localField\": \"accident_yishuv_name\",'\r\n + ' \"foreignField\": \"name_he\",\"as\": \"city\"'\r\n + '}}';\r\n if (popMin >= 0 && popMax > 0) {\r\n filter += `,{ \"$match\": { \"city.population\": { \"$gte\" : ${popMin} , \"$lte\" : ${popMax}}}}`;\r\n }\r\n filter += ',{\"$group\": {'\r\n + '\"_id\": \"$accident_yishuv_name\",\"t_count\" : { \"$sum\" : 1 },\"t_population\" : { \"$first\" : \"$city.population\" }'\r\n + '}}';\r\n filter += ',{ \"$unwind\" : \"$t_population\"}';\r\n filter += ',{ \"$project\" : { \"count\" :'\r\n + '{ \"$multiply\" : [100000, { \"$divide\" : [\"$t_count\", \"$t_population\"] } ]}'\r\n + '}}';\r\n if (limit === 0) filter += `,{\"$sort\": {\"count\": ${sort}}}`;\r\n else {\r\n filter += `${`,{\"$sort\": {\"count\": ${sort}}}`\r\n + ',{\"$limit\": '}${limit}}`;\r\n }\r\n filter += ']';\r\n return filter;\r\n};\r\n\r\nexport const getfilterBounds = (mapBounds: L.LatLngBounds) => {\r\n let filter = `&lat=${mapBounds.getSouth()},${mapBounds.getNorth()}`;\r\n filter += `&lon=${mapBounds.getWest()},${mapBounds.getEast()}`;\r\n return filter;\r\n}\r\n// don't use this - for post filter\r\nexport const getFilterStreets = (streets : string[]) => {\r\n let filter: string = '';\r\n return filter;\r\n}\r\n// don't use this - for post filter\r\nexport const getfilterCity = (cities : string[]) => {\r\n let filter: string = '';\r\n return filter;\r\n}","import { observable, action } from 'mobx';\r\n// import i18n from '../i18n';\r\n\r\nexport interface IColumnFilterArray {\r\n name: string;\r\n queryColName: string;\r\n //array of values to be sent as query to server\r\n arrValues: string[];\r\n isStringValues: boolean;\r\n setBrowserQueryString: (param: URLSearchParams) => void;\r\n setFilter: (values: string[]) => void;\r\n getFilter: () => string;\r\n //text is updated ofter filter submit\r\n text: string;\r\n setText: () => void;\r\n}\r\n/** filter group of boolaen filters\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilterArray implements IColumnFilterArray {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n @observable\r\n arrValues: string[];\r\n\r\n @observable\r\n text: string;\r\n\r\n isStringValues: boolean;\r\n\r\n constructor(name: string, queryColName: string, isStringValues: boolean) {\r\n this.name = name;\r\n this.queryColName = queryColName;\r\n this.arrValues = [];\r\n this.isStringValues = isStringValues;\r\n this.text = '';\r\n }\r\n\r\n @action\r\n setFilter = (values: string[]) => {\r\n this.arrValues = values;\r\n }\r\n\r\n setBrowserQueryString = (params: URLSearchParams) => {\r\n if (this.arrValues.length > 0 && this.arrValues[0] !== '') {\r\n let vals = '';\r\n if (this.isStringValues) {\r\n vals += this.arrValues.map((x: string) => `${x.trim()}`).join(',');\r\n } else {\r\n vals += this.arrValues.map((x: string) => x).join(',');\r\n }\r\n params.set(this.queryColName, vals);\r\n } else {\r\n params.delete(this.queryColName);\r\n }\r\n }\r\n\r\n getFilter = () => {\r\n let filter: string = '';\r\n if (this.arrValues.length > 0 && this.arrValues[0] !== '') {\r\n filter += `&${this.queryColName}=`;\r\n if (this.isStringValues) {\r\n filter += this.arrValues.map((x: string) => `\"${x.trim()}\"`).join(',');\r\n } else {\r\n filter += this.arrValues.map((x: string) => x).join(',');\r\n }\r\n\r\n }\r\n return filter;\r\n }\r\n\r\n @action\r\n setText = () => {\r\n this.text = this.arrValues.join(', ');\r\n }\r\n}","import { observable, action } from 'mobx';\r\nimport i18n from '../i18n';\r\n\r\nexport interface IColumnFilterCombo {\r\n name: string;\r\n queryColName: string;\r\n //data for combo\r\n arrTypes: any[];\r\n //value to be sent as query to server\r\n queryValue: string | number;\r\n // spaciel value, if selected no filter is needed \r\n allTypesOption: number;\r\n isEmpty: () => boolean;\r\n setBrowserQueryString: (param: URLSearchParams, delIfEmpthy?: boolean) => void;\r\n setValuesByQuery: (param: URLSearchParams) => void;\r\n setFilter: (value: string | number) => void;\r\n getFilter: () => string;\r\n //text is updated ofter filter submit\r\n text: string;\r\n setText: () => void;\r\n}\r\n/** filter group of boolaen filters\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilterCombo implements IColumnFilterCombo {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n arrTypes: any[];\r\n @observable\r\n queryValue: string | number;\r\n\r\n @observable\r\n text: string;\r\n\r\n allTypesOption: number;\r\n\r\n constructor(name: string,\r\n queryColName: string,\r\n allTypesOption: number = -1,\r\n data: any[],\r\n defaultVal: string | number) {\r\n this.name = name;\r\n this.queryColName = queryColName;\r\n this.arrTypes = data;\r\n this.queryValue = defaultVal;\r\n this.allTypesOption = allTypesOption;\r\n this.text = '';\r\n }\r\n\r\n @action\r\n setFilter = (value: string | number) => {\r\n this.queryValue = value;\r\n }\r\n\r\n isEmpty = () => {\r\n return (this.allTypesOption >= 0 && this.queryValue === this.arrTypes[this.allTypesOption]);\r\n }\r\n\r\n setBrowserQueryString = (params: URLSearchParams, delIfEmpthy: boolean = true) => {\r\n if (!this.isEmpty()) {\r\n let vals = '';\r\n if (typeof (this.queryValue) === 'string') {\r\n vals += this.queryValue;\r\n } else {\r\n vals += this.queryValue.toString();\r\n }\r\n params.set(this.queryColName, vals);\r\n } else if (delIfEmpthy) {\r\n params.delete(this.queryColName);\r\n }\r\n }\r\n setValuesByQuery = (params: URLSearchParams) => {\r\n const vals = params.get(this.queryColName);\r\n if (vals !== null) {\r\n if (typeof (this.queryValue) === 'string') {\r\n this.setFilter(vals);\r\n } else {\r\n this.setFilter(parseInt(vals));\r\n }\r\n }\r\n }\r\n\r\n getFilter = () => {\r\n let filter: string = '';\r\n if (!this.isEmpty()) {\r\n filter += `&${this.queryColName}=`;\r\n if (typeof (this.queryValue) === 'string') {\r\n filter += this.queryValue;\r\n } else {\r\n filter += this.queryValue.toString();\r\n }\r\n }\r\n return filter;\r\n }\r\n\r\n @action\r\n setText = () => {\r\n if (typeof (this.queryValue) === 'string') {\r\n this.text = this.queryValue;\r\n } else {\r\n this.text = this.queryValue.toString();\r\n }\r\n }\r\n}\r\n\r\nexport class ColumnFilterComboValText extends ColumnFilterCombo {\r\n isEmpty = () => {\r\n return (this.allTypesOption >= 0 && this.queryValue === this.arrTypes[this.allTypesOption].val);\r\n }\r\n @action\r\n setText = () => {\r\n let res = '';\r\n if (!this.isEmpty()) {\r\n const foundObject = this.arrTypes.find((obj: any) => { return obj.val === this.queryValue });\r\n if (foundObject) {\r\n res = `${i18n.t(foundObject.text)}`;\r\n }\r\n this.text = res;\r\n }\r\n }\r\n}\r\n\r\nconst years: string[] = ['2015', '2016', '2017', '2018', '2019','2020','2021'];\r\nconst CITY_POP_SIZE_ALL = '{\"min\":-1,\"max\":-1}';\r\nconst cityPopSizeArr = [\r\n { val: '{\"min\":-1,\"max\":-1}', text: 'all' },\r\n { val: '{\"min\":200000,\"max\":1000000}', text: '200K-1000K' },\r\n { val: '{\"min\":100000,\"max\":200000}', text: '100K-200K' },\r\n { val: '{\"min\":50000,\"max\":100000}', text: '50K-100K' },\r\n { val: '{\"min\":20000,\"max\":50000}', text: '20K-50K' },\r\n { val: '{\"min\":10000,\"max\":20000}', text: '10K-20K' },\r\n { val: '{\"min\":0,\"max\":10000}', text: '0-10K' },\r\n];\r\n\r\nexport const initStartYear = () => {\r\n const col: ColumnFilterCombo = new ColumnFilterCombo('FromYear', 'sy', -1, years, 2016);\r\n return col;\r\n};\r\n\r\nexport const initEndYear = () => {\r\n const col: ColumnFilterCombo = new ColumnFilterCombo('ToYear', 'ey', -1, years, 2021);\r\n return col;\r\n};\r\n\r\nexport const initCityPopSize = () => {\r\n const col: ColumnFilterComboValText = new ColumnFilterComboValText('city_size', 'p1', 0, cityPopSizeArr, CITY_POP_SIZE_ALL);\r\n return col;\r\n};\r\n","import Footer from \"../components/templates/Footer\";\r\n\r\nexport const reGroupResultIsSelfAcc = (data: any[]) => {\r\n console.log('reGroupResultIsSelfAcc',data)\r\n let res = new Array();\r\n res.push({ _id: 'תאונה עצמית', count: 0 });\r\n res.push({ _id: 'תאונה לא עצמית', count: 0 });\r\n data.forEach(element => {\r\n if (isSelfAccident(element._id)) {\r\n res[0].count += element.count;\r\n }else{\r\n res[1].count += element.count;\r\n }\r\n });\r\n return res;\r\n}\r\nexport const isSelfAccident= ( val :string) => {\r\n let res = false;\r\n switch (val) {\r\n case 'עצמית':\r\n case 'החלקה':\r\n case 'התהפכות':\r\n case 'התנגשות עם עצם דומם':\r\n case 'התנגשות עם רכב חונה':\r\n case 'ירידה מהכביש או עלייה למדרכה':\r\n case 'פגיעה בנוסע בתוך כלי הרכב':\r\n case 'נפילה מרכב נע':\r\n res = true;\r\n break;\r\n default:\r\n res = false;\r\n }\r\n return res;\r\n}","import { observable } from 'mobx';\r\nimport {reGroupResultIsSelfAcc} from '../utils/groupByUtils';\r\n\r\nexport interface IGroupBy {\r\n text: string;\r\n value: string;\r\n limit: number;\r\n sort: number;\r\n reGroupResultFunc? : any;\r\n}\r\n\r\nexport default class GroupBy implements IGroupBy {\r\n @observable\r\n text: string;\r\n\r\n value: string;\r\n\r\n limit: number;\r\n\r\n sort: number;\r\n\r\n reGroupResultFunc : any|null;\r\n\r\n // text - headleine for GUI, value - name of value for filter\r\n constructor(text: string, value: string, limit: number = 0, sort:number = 0, reGroupResultFunc?:any) {\r\n this.text = text;\r\n this.value = value;\r\n this.limit = limit;\r\n this.sort = sort;\r\n if(reGroupResultFunc) this.reGroupResultFunc = reGroupResultFunc;\r\n }\r\n\r\n}\r\n//init a group-by dictionary \r\nexport const initGroupMap = (useGetFetch: boolean) => {\r\n if (useGetFetch) return initGroupMapForGet();\r\n else return initGroupByDictForPost();\r\n}\r\n\r\nconst initGroupMapForGet = () => {\r\n const map = new Map();\r\n map.set('sev', new GroupBy('Severity', 'sev'));\r\n map.set('injt', new GroupBy('TypeInjured', 'injt'));\r\n map.set('vcl', new GroupBy('Vehicle', 'vcl'));\r\n map.set('sex', new GroupBy('Gender', 'sex'));\r\n map.set('age', new GroupBy('Age', 'age'));\r\n map.set('pt', new GroupBy('Population', 'pt'));\r\n map.set('year', new GroupBy('Year', 'year'));\r\n map.set('mn', new GroupBy('Month', 'mn'));\r\n map.set('dn', new GroupBy('DayNight', 'dn'));\r\n map.set('wd', new GroupBy('WeekDay', 'wd'));\r\n map.set('rt', new GroupBy('RoadType', 'rt'));\r\n map.set('lca', new GroupBy('LocationAccuracy', 'lca'))\r\n map.set('city', new GroupBy('City', 'city', 15, -1));\r\n map.set('cpop', new GroupBy('CityByPop', 'cpop'));\r\n map.set('st', new GroupBy('Street', 'st', 15, -1));\r\n map.set('rd', new GroupBy('Road', 'rd', 10, -1));\r\n map.set('acc', new GroupBy('AccidentType', 'acc'));\r\n map.set('selfacc', new GroupBy('SelfOrNotAcc', 'selfacc', 0, 0, reGroupResultIsSelfAcc));\r\n map.set('vcli', new GroupBy('Vehicles', 'vcli'));\r\n map.set('sp', new GroupBy('SpeedLimit', 'sp'));\r\n map.set('rw', new GroupBy('RoadWidth', 'rw'));\r\n map.set('ml', new GroupBy('Separator', 'ml'));\r\n map.set('ol', new GroupBy('OneLane', 'ol'));\r\n return map;\r\n};\r\n\r\nconst initGroupByDictForPost = () => {\r\n const dictGroupBy: any = {};\r\n dictGroupBy.Severity = new GroupBy('Severity', 'injury_severity_hebrew');\r\n dictGroupBy.TypeInjured = new GroupBy('TypeInjured', 'injured_type_hebrew');\r\n dictGroupBy.Vehicle = new GroupBy('Vehicle', 'vehicle_vehicle_type_hebrew');\r\n dictGroupBy.Gender = new GroupBy('Gender', 'sex_hebrew');\r\n dictGroupBy.Age = new GroupBy('Age', 'age_group_hebrew');\r\n dictGroupBy.Year = new GroupBy('Year', 'accident_year');\r\n dictGroupBy.Month = new GroupBy('Month', 'accident_month');\r\n dictGroupBy.DayNight = new GroupBy('DayNight', 'day_night_hebrew');\r\n dictGroupBy.WeekDay = new GroupBy('WeekDay', 'day_in_week_hebrew');\r\n dictGroupBy.RoadType = new GroupBy('RoadType', 'road_type_hebrew');\r\n dictGroupBy.City = new GroupBy('City', 'accident_yishuv_name', 10);\r\n dictGroupBy.CityByPop = new GroupBy('CityByPop', 'accident_yishuv_name');\r\n dictGroupBy.Street = new GroupBy('Street', 'street1_hebrew', 10);\r\n dictGroupBy.Road = new GroupBy('Road', 'road1', 10);\r\n dictGroupBy.AccidentType = new GroupBy('AccidentType', 'accident_type_hebrew');\r\n dictGroupBy.Vehicles = new GroupBy('Vehicles', 'vehicles');\r\n dictGroupBy.SpeedLimit = new GroupBy('SpeedLimit', 'speed_limit_hebrew');\r\n dictGroupBy.RoadWidth = new GroupBy('RoadWidth', 'road_width_hebrew');\r\n dictGroupBy.Separator = new GroupBy('Separator', 'multi_lane_hebrew');\r\n dictGroupBy.OneLane = new GroupBy('OneLane', 'one_lane_hebrew');\r\n return dictGroupBy;\r\n};\r\n","import { observable } from 'mobx';\r\n \r\nexport interface IGroupBy2 {\r\n text: string;\r\n name: string;\r\n vals: any;\r\n}\r\n\r\nexport default class GroupBy2 implements IGroupBy2 {\r\n @observable\r\n text: string;\r\n\r\n name: string;\r\n\r\n vals: any;\r\n\r\n constructor(text: string, name: string) {\r\n this.text = text;\r\n this.name = name;\r\n this.vals = {};\r\n }\r\n\r\n revTrnas = (key: string) => {\r\n if (key === '') return '';\r\n const res = this.vals[key].name;\r\n return res;\r\n }\r\n\r\n // input sample: {count : [{grp2: \"זכר\", count: 3}, {grp2: \"נקבה\", count: 2} ]}\r\n // output sample: {_id: \"2015\", male: 3, female: 2}\r\n fixStrcutTable = (data: any[]) => {\r\n const res = data.map((x) => {\r\n const arr = x.count.map((y: any) => {\r\n const engVal = this.revTrnas(y.grp2);\r\n return (`\"${engVal}\":${y.count}`);\r\n }).join(',');\r\n // eslint-disable-next-line no-underscore-dangle\r\n let xId = x._id;\r\n if (xId !== null && xId !== undefined && typeof (xId) === 'string') xId = xId.replace('\"', '\\\\\"');\r\n let sObject = `{\"_id\":\"${xId}\",${arr}}`;\r\n sObject = JSON.parse(sObject);\r\n return (sObject);\r\n });\r\n return res;\r\n }\r\n\r\n getBars = () => {\r\n // [{key:\"male\",color:\"#8884d8\"},{key:\"female\",color:\"#82ca9d\"}]\r\n const res = Object.entries(this.vals).map(([key, x]: any[]) => ({ key: x.name, color: x.color }));\r\n return res;\r\n }\r\n\r\n getColumns = () => {\r\n const res = Object.entries(this.vals).map(([key, x]: any[]) => (x.name));\r\n res.unshift('_id');\r\n return res;\r\n }\r\n}\r\n","export default class GroupBy2Val {\r\n name: string;\r\n \r\n color: string;\r\n\r\n constructor(name: string, color: string) {\r\n this.name = name;\r\n this.color = color;\r\n }\r\n}\r\n","import { observable, action } from 'mobx';\r\nimport GroupBy from './GroupBy';\r\nimport GroupBy2 from './GroupBy2';\r\nimport GroupBy2Val from './GroupBy2Val';\r\n\r\nexport default class GroupMap {\r\n dict: Map;\r\n queryColName: string;\r\n\r\n @observable\r\n groupBy: GroupBy2|GroupBy;\r\n\r\n constructor(map: Map, colName: string, defautVal: string) {\r\n this.dict = map;\r\n this.queryColName = colName;\r\n this.groupBy = this.dict.get(defautVal);\r\n this.setArrGroups();\r\n }\r\n\r\n @action\r\n setFilter = (key: string) => {\r\n this.groupBy = this.dict.get(key);\r\n }\r\n\r\n @observable\r\n arrGroups: any[] = [];\r\n\r\n @action\r\n setArrGroups = () => {\r\n this.arrGroups = Array.from(this.dict, ([key, item]) => ({ value: key, text: item.text }));\r\n }\r\n\r\n setBrowserQueryString = () => {\r\n const params = new URLSearchParams(location.search);\r\n if (this.groupBy instanceof GroupBy){\r\n params.set(this.queryColName, (this.groupBy as GroupBy).value);\r\n } else if (this.groupBy instanceof GroupBy2) {\r\n params.set(this.queryColName, (this.groupBy as GroupBy2).name);\r\n }\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n }\r\n\r\n @action\r\n setValuesByQuery = (params: URLSearchParams) => {\r\n const val = params.get(this.queryColName);\r\n if (val !== null) {\r\n this.setFilter(val);\r\n }\r\n }\r\n}\r\n\r\nexport const initGroup2Map = (useGetFetch: boolean) => {\r\n if (useGetFetch) return initGroup2DictForGet();\r\n else return initGroup2DictForPost();\r\n };\r\n\r\n /**\r\n * init a map of GroupBy2 objects, \r\n * each GroupBy2 object has values, to be used in charts, \r\n * keys are axpected values from server maped to lang values \r\n * @returns \r\n */\r\nconst initGroup2DictForGet = () => {\r\n const dict = new Map()\r\n const sev = new GroupBy2('Severity', 'sev');\r\n sev.vals['הרוג'] = new GroupBy2Val('dead', '#8884D8');\r\n sev.vals['פצוע קשה'] = new GroupBy2Val('severly-injured', '#82CA9D');\r\n dict.set(sev.name, sev);\r\n\r\n const gen = new GroupBy2('Gender', 'sex');\r\n gen.vals['זכר'] = new GroupBy2Val('male', '#8884D8');\r\n gen.vals['נקבה'] = new GroupBy2Val('female', '#82CA9D');\r\n dict.set(gen.name, gen);\r\n\r\n const roadt = new GroupBy2('RoadType', 'rt');\r\n roadt.vals['עירונית בצומת'] = new GroupBy2Val('urban-junction', '#559E54');\r\n roadt.vals['עירונית לא בצומת'] = new GroupBy2Val('urban-road', '#305A30');\r\n roadt.vals['לא-עירונית בצומת'] = new GroupBy2Val('non-urban-junction', '#1258DC');\r\n roadt.vals['לא-עירונית לא בצומת'] = new GroupBy2Val('non-urban-road', '#0A337F');\r\n dict.set(roadt.name, roadt);\r\n\r\n const year = new GroupBy2('Year', 'year');\r\n year.vals[2015] = new GroupBy2Val('2015', '#82CA9D');\r\n year.vals[2016] = new GroupBy2Val('2016', '#559E54');\r\n year.vals[2017] = new GroupBy2Val('2017', '#559E54');\r\n year.vals[2018] = new GroupBy2Val('2018', '#305A30');\r\n year.vals[2019] = new GroupBy2Val('2019', '#305A30');\r\n year.vals[2020] = new GroupBy2Val('2020', '#1258DC');\r\n year.vals[2021] = new GroupBy2Val('2021', '#1258DC');\r\n dict.set(year.name, year);\r\n\r\n const dayNight = new GroupBy2('DayNight', 'dn');\r\n dayNight.vals['יום'] = new GroupBy2Val('day', '#82CA9D');\r\n dayNight.vals['לילה'] = new GroupBy2Val('night', '#559E54');\r\n dict.set(dayNight.name, dayNight);\r\n\r\n\r\n const injt = new GroupBy2('TypeInjured', 'injt');\r\n injt.vals['הולך רגל'] = new GroupBy2Val('pedestrian', '#82CA9D');\r\n injt.vals['נהג - אופניים'] = new GroupBy2Val('cyclist-d', '#559E54');\r\n injt.vals['נוסע - אופניים (לא נהג)'] = new GroupBy2Val('cyclist-p', '#559E54');\r\n injt.vals['נהג - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-d', '#305A30');\r\n injt.vals['נוסע - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-p', '#305A30');\r\n injt.vals['נהג - אופנוע'] = new GroupBy2Val('motorcycle-d', '#1258DC');\r\n injt.vals['נוסע - אופנוע (לא נהג)'] = new GroupBy2Val('motorcycle-p', '#1258DC');\r\n injt.vals['נהג - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-d', '#0A337F');\r\n injt.vals['נוסע - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-p', '#0A337F');\r\n dict.set(injt.name, injt);\r\n\r\n const acc= new GroupBy2('AccidentType', 'acc');\r\n acc.vals['פגיעה בהולך רגל'] = new GroupBy2Val('accType.ped', '#e3eaa7');\r\n acc.vals['התנגשות חזית בצד'] = new GroupBy2Val('accType.front-side', '#03045E');\r\n acc.vals['התנגשות חזית בחזית'] = new GroupBy2Val('accType.front-front', '#4673FA');\r\n acc.vals['התנגשות חזית באחור'] = new GroupBy2Val('accType.front-rear', '#00b4d8');\r\n acc.vals['התנגשות צד בצד'] = new GroupBy2Val('accType.side-side', '#90e0ef');\r\n acc.vals['התנגשות עם עצם דומם'] = new GroupBy2Val('accType.obstacle3', '#ef6351');\r\n acc.vals['התנגשות עם רכב חונה'] = new GroupBy2Val('accType.obstacle2', '#f38375');\r\n acc.vals['התנגשות עם רכב שנעצר ללא חניה'] = new GroupBy2Val('accType.obstacle1', '#f7a399');\r\n acc.vals['ירידה מהכביש או עלייה למדרכה'] = new GroupBy2Val('accType.offroad', '#fbc3bc');\r\n acc.vals['התהפכות'] = new GroupBy2Val('accType.turning-over', '#FA6E2D');\r\n acc.vals['החלקה'] = new GroupBy2Val('accType.slip', '#BD5422');\r\n acc.vals['אחר'] = new GroupBy2Val('accType.other', '#a53860');\r\n acc.vals['פגיעה בנוסע בתוך כלי הרכב'] = new GroupBy2Val('accType.passenger', '#31572c');\r\n acc.vals['נפילה מרכב נע'] = new GroupBy2Val('accType.falloff', '#4f772d');\r\n acc.vals['התנגשות אחור בחזית'] = new GroupBy2Val('accType.rear-front', '#CAF0F8');\r\n acc.vals['התנגשות אחור אל צד'] = new GroupBy2Val('accType.rear-side', '#CAF0F8');\r\n acc.vals['התנגשות עם בעל חיים'] = new GroupBy2Val('accType.animal', '#ecf39e');\r\n acc.vals['פגיעה ממטען של רכב'] = new GroupBy2Val('accType.cargo', '#0A337F');\r\n dict.set(acc.name, acc);\r\n\r\n return dict;\r\n}\r\n\r\nconst initGroup2DictForPost = () => {\r\n\r\n const dict = {} as any;\r\n dict.Severity = new GroupBy2('Severity', 'injury_severity_hebrew');\r\n dict.Severity.vals['הרוג'] = new GroupBy2Val('dead', '#8884D8');\r\n dict.Severity.vals['פצוע קשה'] = new GroupBy2Val('severly-injured', '#82CA9D');\r\n\r\n dict.Gender = new GroupBy2('Gender', 'sex_hebrew');\r\n dict.Gender.vals['זכר'] = new GroupBy2Val('male', '#8884D8');\r\n dict.Gender.vals['נקבה'] = new GroupBy2Val('female', '#82CA9D');\r\n\r\n dict.RoadType = new GroupBy2('RoadType', 'road_type_hebrew');\r\n dict.RoadType.vals['עירונית בצומת'] = new GroupBy2Val('urban-junction', '#559E54');\r\n dict.RoadType.vals['עירונית לא בצומת'] = new GroupBy2Val('urban-road', '#305A30');\r\n dict.RoadType.vals['לא-עירונית בצומת'] = new GroupBy2Val('non-urban-junction', '#1258DC');\r\n dict.RoadType.vals['לא-עירונית לא בצומת'] = new GroupBy2Val('non-urban-road', '#0A337F');\r\n\r\n dict.Year = new GroupBy2('Year', 'accident_year');\r\n dict.Year.vals[2015] = new GroupBy2Val('2015', '#82CA9D');\r\n dict.Year.vals[2016] = new GroupBy2Val('2016', '#559E54');\r\n dict.Year.vals[2017] = new GroupBy2Val('2017', '#559E54');\r\n dict.Year.vals[2018] = new GroupBy2Val('2018', '#305A30');\r\n dict.Year.vals[2019] = new GroupBy2Val('2019', '#305A30');\r\n\r\n dict.TypeInjured = new GroupBy2('TypeInjured', 'injured_type_hebrew');\r\n dict.TypeInjured.vals['הולך רגל'] = new GroupBy2Val('pedestrian', '#82CA9D');\r\n dict.TypeInjured.vals['נהג - אופניים'] = new GroupBy2Val('cyclist-d', '#559E54');\r\n dict.TypeInjured.vals['נוסע - אופניים (לא נהג)'] = new GroupBy2Val('cyclist-p', '#559E54');\r\n dict.TypeInjured.vals['נהג - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-d', '#305A30');\r\n dict.TypeInjured.vals['נוסע - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-p', '#305A30');\r\n dict.TypeInjured.vals['נהג - אופנוע'] = new GroupBy2Val('motorcycle-d', '#1258DC');\r\n dict.TypeInjured.vals['נוסע - אופנוע (לא נהג)'] = new GroupBy2Val('motorcycle-p', '#1258DC');\r\n dict.TypeInjured.vals['נהג - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-d', '#0A337F');\r\n dict.TypeInjured.vals['נוסע - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-p', '#0A337F');\r\n\r\n return dict;\r\n}","class AccidentService {\r\n public fetchGetList = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n \r\n public fetchGetGroupBy = async (filter: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/groupby/';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n \r\n public fetchGetCount = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/get';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n\r\n public fetchFilter = async (filter: string, type: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = `/api/v1/accident/${type}`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\npublic fetchAggregatFilter = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = (type === 'main') ? '/api/v1/accident/aggmain' : '/api/v1/accident/agglatlon';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\npublic fetchAggregate = async (filter: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = '/api/v1/accident/agg';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n}\r\nexport default new AccidentService();\r\n\r\n","export default class CityService {\r\n getCityByNameHe = (cityName: string, collback: (res: any[]) => void) => {\r\n // \"http://localhost:5000/api/v1/city?name_he=חיפה\"\r\n const url = `/api/v1/city?name_he=${cityName}`;\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n })\r\n .then(\r\n response => {\r\n return response.json();}\r\n )\r\n .then(data => {\r\n collback(data);\r\n })\r\n .catch((error) => {\r\n console.log('srv.getCityByNameHe',error)\r\n });\r\n ;\r\n };\r\n\r\n getCitiesNames(lang: string, collback: (res: any[]) => void) {\r\n // \"http://localhost:5000/api/v1/city?lang=he\"\r\n const url = `/api/v1/city?lang=${lang}`;\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n collback(data);\r\n });\r\n }\r\n}\r\n","import Dexie from 'dexie';\r\n\r\nconst db = new Dexie('saftyData');\r\ndb.version(1).stores({\r\n injuerd: 'id++,_id, accident_id, accident_year, accident_timestamp, sex_hebrew, accident_yishuv_name ,road_type_hebrew',\r\n});\r\n\r\nexport async function insertToDexie(data) {\r\n // logger.log(\"insertToDexie\")\r\n // logger.log(data)\r\n await db.injuerd.bulkPut(data);\r\n // testInsertDexie()\r\n}\r\n\r\nexport async function getFromDexie(arrFilters) {\r\n let data;\r\n if (arrFilters.length === 0) data = await db.injuerd.toArray();\r\n else {\r\n const years = arrFilters.shift();\r\n let collection = await db.injuerd.where(years.filterName).between(years.startYear, years.endYear, true, true);\r\n arrFilters.forEach((element) => {\r\n collection = collection.and(((x) => {\r\n if (element.values.length === 1) return x[element.filterName] === element.values[0];\r\n\r\n let orFilter = false;\r\n element.values.forEach((val) => orFilter = orFilter || x[element.filterName] === val);\r\n return orFilter;\r\n }));\r\n });\r\n data = await collection.toArray();\r\n }\r\n return data;\r\n}\r\n\r\n\r\n// var db1 = new Dexie('hellodb');\r\n// db1.version(1).stores({\r\n// tasks: '++id,date,description,done'\r\n// });\r\n\r\n\r\n// export async function testInsertDexie() {\r\n// var id = await db1.tasks.put({date: Date.now(), description: 'Test Dexie', done: 0});\r\n// logger.log(\"Got id \" + id);\r\n// // Now lets add a bunch of tasks\r\n// await db1.tasks.bulkPut([\r\n// {date: Date.now(), description: 'Test Dexie bulkPut()', done: 1},\r\n// {date: Date.now(), description: 'Finish testing Dexie bulkPut()', done: 1}\r\n// ]);\r\n// }\r\n\r\n\r\nexport default db;\r\n","export interface FilterLocalStorage {\r\n url: string\r\n description: string\r\n}\r\n\r\nexport class LocalStorageService {\r\n\r\n getLoaclStorage(key: string) {\r\n let data = localStorage.getItem(key)\r\n return data ? JSON.parse(data) : []\r\n }\r\n\r\n setLocalStorage(key: string, data: T[]) {\r\n localStorage.setItem(key, JSON.stringify(data))\r\n }\r\n\r\n}","import {\r\n observable, action, computed,\r\n} from 'mobx';\r\nimport { IColumnFilter } from './ColumnFilterCheckBoxList';\r\nimport * as FC from './ColumnFilterCheckBoxList';\r\nimport * as FilterUtils from '../utils/FilterUtils';\r\nimport { ColumnFilterArray, IColumnFilterArray } from './ColumnFilterArray';\r\nimport { ColumnFilterCombo, initStartYear, initEndYear, initCityPopSize } from './ColumnFilterCombo';\r\nimport { IFilterChecker } from './FilterChecker';\r\nimport GroupBy, { initGroupMap } from './GroupBy';\r\nimport GroupBy2 from './GroupBy2';\r\nimport GroupMap, { initGroup2Map } from './GroupMap';\r\nimport RootStore from './RootStore';\r\nimport AccidentService from '../services/AccidentService';\r\nimport CityService from '../services/CityService';\r\nimport { insertToDexie, getFromDexie } from '../services/DexieInjuredService';\r\nimport logger from '../services/logger';\r\nimport { BBoxType } from './MapStore';\r\nimport Casualty from './Casualty';\r\nimport { FilterLocalStorage, LocalStorageService } from '../services/Localstorage.Service';\r\nimport citisNamesHeb from '../assets/cities_names_heb.json';\r\n// import autorun from \"mobx\"\r\n\r\n\r\nexport default class FilterStore {\r\n appInitialized = false\r\n\r\n useGetFetch = true;\r\n\r\n localStorageService: LocalStorageService\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n this.injurySeverity = FC.initInjurySeverity();\r\n this.setCasualtiesNames(this.injurySeverity);\r\n // when\r\n this.startYear = initStartYear();\r\n this.endYear = initEndYear();\r\n this.dayNight = FC.initDayNight();\r\n // where\r\n this.locationAccuracy = FC.initLocationAccuracy();\r\n this.roadTypes = FC.initRoadTypes();\r\n this.roads = new ColumnFilterArray('Road', 'rd', false);\r\n this.roadSegment = new ColumnFilterArray('RoadSegment', 'rds', true);\r\n this.cities = new ColumnFilterArray('City', 'city', true);\r\n this.streets = new ColumnFilterArray('Street', 'st', true);\r\n this.cityPopSizeRange = initCityPopSize();\r\n // who\r\n this.genderTypes = FC.initGenderTypes();\r\n this.ageTypes = FC.initAgeTypes();\r\n this.populationTypes = FC.initPopulationTypes();\r\n // What\r\n this.accidentType = FC.initAccidentType();\r\n // what vehicle\r\n this.injTypes = FC.initInjTypes();\r\n this.vehicleType = FC.initVehicleTypesFull();\r\n this.involvedVehicle = FC.initInvolvedVehicle();\r\n // What Road\r\n this.speedLimit = FC.initSpeedLimit();\r\n this.roadWidth = FC.initRoadWidth();\r\n this.separator = FC.initSeparator();\r\n this.oneLane = FC.initOneLane();\r\n //init Group-by dictionary\r\n const map: Map = initGroupMap(this.useGetFetch);\r\n this.groupByDict = new GroupMap(map, 'gb', 'injt');\r\n const mapGroupBy2 = initGroup2Map(this.useGetFetch);\r\n this.group2Dict = new GroupMap(mapGroupBy2, 'gb2', 'sex');\r\n\r\n // init data (on home page)\r\n this.dataByYears = FC.initDataYreasUnfilterd();\r\n this.dataFilterdByYears = FC.initDataYreasfilterd();\r\n this.dataFilterd = FC.initDataGrpBy1();\r\n this.dataGroupby2 = FC.initDataGrpBy2();\r\n this.appInitialized = false;\r\n this.localStorageService = new LocalStorageService();\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // Config Filter\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n filtersArrayLocalStorage: FilterLocalStorage[] = []\r\n\r\n @action\r\n setCurrentFiltersArrayLocalStorage = () => {\r\n this.filtersArrayLocalStorage = this.localStorageService.getLoaclStorage('my-filters')\r\n }\r\n @action\r\n updateFilterArrayLocalStorage = (data: FilterLocalStorage) => {\r\n this.filtersArrayLocalStorage = this.localStorageService.getLoaclStorage('my-filters')\r\n this.filtersArrayLocalStorage.push(data)\r\n this.localStorageService.setLocalStorage('my-filters', this.filtersArrayLocalStorage)\r\n }\r\n\r\n @observable\r\n showAllVehicleTypes: boolean = false;\r\n\r\n @action\r\n updateShowAllVehicleTypes = (val: boolean) => {\r\n this.showAllVehicleTypes = val;\r\n if (this.showAllVehicleTypes) this.vehicleType = FC.initVehicleTypesFull();\r\n else this.vehicleType = FC.initVehicleTypes();\r\n }\r\n\r\n @observable isUpdateFromUrl: boolean = true;\r\n\r\n @action setIsUpdateFromUrl = (value: boolean) => {\r\n this.isUpdateFromUrl = value;\r\n }\r\n\r\n @observable formCardKey: number = 0;\r\n @action setFormCardKey = (value: number) => {\r\n this.formCardKey = value;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // Severity\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n injurySeverity: IColumnFilter\r\n\r\n @action\r\n updateInjurySeverity = (aType: number, val: boolean) => {\r\n this.updateFilters(this.injurySeverity, aType, val);\r\n }\r\n\r\n @computed get isValidSeverity() {\r\n const res = !this.injurySeverity.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n @observable\r\n casualtiesNames: string = 'casualties';\r\n\r\n @action\r\n setCasualtiesNames = (injurySeverity: IColumnFilter) => {\r\n let res = 'casualties';\r\n const deadChecker: IFilterChecker = injurySeverity.arrTypes[0];\r\n const sevIngChecker: IFilterChecker = injurySeverity.arrTypes[1];\r\n if (deadChecker.checked && !sevIngChecker.checked) res = 'killed';\r\n else if (!deadChecker.checked && sevIngChecker.checked) res = 'severely-injured';\r\n this.casualtiesNames = res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // where\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n isMultipleCities: boolean = false;\r\n\r\n @action\r\n setIsMultipleCities = (isMulti: boolean) => {\r\n this.isMultipleCities = isMulti;\r\n }\r\n\r\n\r\n @observable\r\n cities: ColumnFilterArray;\r\n\r\n @action\r\n updateCities = (names: string[], updateCityResult: boolean) => {\r\n this.cities.setFilter(names);\r\n if (this.cities.arrValues.length === 0) {\r\n this.streets.arrValues = [];\r\n } else if (updateCityResult) {\r\n [this.cityResult] = this.cities.arrValues;\r\n }\r\n }\r\n\r\n // get city name by url query parmas\r\n getCityNameFromQuery(query: URLSearchParams, defVal: string | undefined) {\r\n let res = (defVal) ? [defVal] : [];\r\n const name = query.get('city');\r\n let found = false;\r\n if (name !== null) {\r\n const arr = name.split(',');\r\n if (arr.length > 1 && this.isMultipleCities) {\r\n res = arr;\r\n } else {\r\n found = citisNamesHeb.includes(name);\r\n if (found) {\r\n res = [citisNamesHeb.find((element) => element === name!)!];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n @observable\r\n cityResult: string = '';\r\n\r\n @observable\r\n streets: ColumnFilterArray;\r\n\r\n @action\r\n updateStreets = (names: string) => {\r\n this.streets.setFilter(names.split(','));\r\n }\r\n\r\n @observable\r\n roads: ColumnFilterArray;\r\n\r\n @action\r\n setRoads = (names: string[]) => {\r\n this.roads.setFilter(names);\r\n }\r\n\r\n @observable\r\n cityPopSizeRange: ColumnFilterCombo;\r\n\r\n @action\r\n setCityPopSizeRange = (range: string) => {\r\n this.cityPopSizeRange.setFilter(range);\r\n }\r\n\r\n\r\n @observable\r\n roadSegment: ColumnFilterArray;\r\n\r\n @action\r\n updateRoadSegment = (names: string) => {\r\n this.roadSegment.setFilter(names.split(','));\r\n }\r\n\r\n @observable\r\n roadTypes: IColumnFilter;\r\n\r\n @action\r\n updateRoadType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.roadTypes, aType, val);\r\n }\r\n\r\n @observable\r\n locationAccuracy: IColumnFilter;\r\n\r\n @action\r\n updateLocationAccuracy = (aType: number, val: boolean) => {\r\n this.updateFilters(this.locationAccuracy, aType, val);\r\n }\r\n\r\n @computed get isValidWhere() {\r\n const res = !this.roadTypes.isAllValsFalse && !this.locationAccuracy.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // when\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n startYear: ColumnFilterCombo;\r\n\r\n @action\r\n setStartYear = (year: string) => {\r\n this.startYear.setFilter(parseInt(year));\r\n }\r\n\r\n @observable\r\n endYear: ColumnFilterCombo;\r\n\r\n @action\r\n setEndYear = (year: string) => {\r\n this.endYear.setFilter(parseInt(year));\r\n }\r\n\r\n @observable\r\n dayNight: IColumnFilter;\r\n\r\n @action\r\n updateDayNight = (aType: number, val: boolean) => {\r\n this.updateFilters(this.dayNight, aType, val);\r\n }\r\n\r\n @computed get isValidWhen() {\r\n const res = !this.dayNight.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // who\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n genderTypes: IColumnFilter\r\n\r\n @action\r\n updateGenderType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.genderTypes, aType, val);\r\n }\r\n\r\n @observable\r\n ageTypes: IColumnFilter;\r\n\r\n @action\r\n updateAgeType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.ageTypes, aType, val);\r\n }\r\n\r\n @observable\r\n populationTypes: IColumnFilter;\r\n\r\n @action\r\n updatePopulationType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.populationTypes, aType, val);\r\n }\r\n\r\n @computed get isValidWho() {\r\n const res = !this.genderTypes.isAllValsFalse\r\n && !this.ageTypes.isAllValsFalse && !this.populationTypes.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n @observable\r\n accidentType: IColumnFilter;\r\n\r\n @action\r\n updateAccidentType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.accidentType, aType, val);\r\n }\r\n\r\n @computed get isValidWhat() {\r\n const res = !this.accidentType.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What Vehicle \r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * injuerd type - for example pedestrian bycicle, car driver etc,\r\n */\r\n @observable\r\n injTypes: IColumnFilter;\r\n\r\n @action\r\n updateInjuerdType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.injTypes, aType, val);\r\n }\r\n\r\n // vehicle Type of the killed / injured \r\n @observable\r\n vehicleType: IColumnFilter;\r\n\r\n @action\r\n updateVehicleType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.vehicleType, aType, val);\r\n }\r\n\r\n // vehicle that were in the accident\r\n @observable\r\n involvedVehicle: IColumnFilter;\r\n\r\n @action\r\n setInvolvedVehicle = (aType: number, val: boolean) => {\r\n this.updateFilters(this.involvedVehicle, aType, val);\r\n }\r\n\r\n @computed get isValidWhatVehicle() {\r\n const res = !this.injTypes.isAllValsFalse && !this.vehicleType.isAllValsFalse && !this.involvedVehicle.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What Road\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n @observable\r\n speedLimit: IColumnFilter;\r\n\r\n updateSpeedLimit = (aType: number, val: boolean) => {\r\n this.updateFilters(this.speedLimit, aType, val);\r\n }\r\n\r\n @observable\r\n roadWidth: IColumnFilter;\r\n\r\n @action\r\n updateRoadWidth = (aType: number, val: boolean) => {\r\n this.updateFilters(this.roadWidth, aType, val);\r\n }\r\n\r\n @observable\r\n separator: IColumnFilter;\r\n\r\n @action\r\n updateSeparator = (aType: number, val: boolean) => {\r\n this.updateFilters(this.separator, aType, val);\r\n }\r\n\r\n @observable\r\n oneLane: IColumnFilter;\r\n\r\n @action\r\n updateOneLane = (aType: number, val: boolean) => {\r\n this.updateFilters(this.oneLane, aType, val);\r\n }\r\n\r\n @computed get isValidWhatRoad() {\r\n const res = !this.speedLimit.isAllValsFalse && !this.roadWidth.isAllValsFalse\r\n && !this.separator.isAllValsFalse && !this.oneLane.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ////////////////////////////////////////////////////////////////////////////////////////////\r\n // data\r\n // ////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n injuriesCount: number = 0;\r\n\r\n @action\r\n setInjuriesCount = (val: number) => {\r\n this.injuriesCount = val;\r\n this.isLoadingInjuriesCount = false;\r\n }\r\n\r\n @observable\r\n isLoadingInjuriesCount: boolean = false;\r\n\r\n @observable\r\n dataAllInjuries: Casualty[] = [];\r\n\r\n @action\r\n updateAllInjuries = (data: Casualty[]) => {\r\n // looger.log(\"updateAllInjuries \",data.length)\r\n this.setMarkersLoadStep(2);\r\n this.dataAllInjuries = data;\r\n this.rootStore.mapStore.setBounds(data, this.cities.arrValues);\r\n if (this.rootStore.mapStore.bboxType === BBoxType.LOCAL_BBOX) {\r\n this.rootStore.mapStore.getMarkersInLocalBBox(0.1);\r\n }\r\n }\r\n\r\n @observable\r\n dataMarkersLean: Casualty[] = []\r\n\r\n @action\r\n updateDataMarkersLean = (data: Casualty[]) => {\r\n // logger.log(\"updateDataMarkersLean \",data.length)\r\n this.setMarkersLoadStep(1);\r\n this.dataMarkersLean = data;\r\n }\r\n\r\n // casualties groupd by yeras, filterd only by injurySeverity\r\n @observable\r\n dataByYears: any[] = []\r\n\r\n // casualties groupd by yeras, filterd on main filter\r\n @observable\r\n dataFilterdByYears: any[] = []\r\n\r\n @action\r\n setDataFilterdByYears = (data: any[]) => {\r\n this.dataFilterdByYears = data;\r\n }\r\n\r\n // casualties groupd by some group, filterd on main filter\r\n @observable\r\n dataFilterd: any[] = []\r\n\r\n // casualties groupd by 2 groups, filterd on main filter\r\n @observable\r\n dataGroupby2: any[] = []\r\n\r\n @observable\r\n isLoading: boolean = false;\r\n\r\n @computed get isValidAllFilters() {\r\n const res = this.isValidSeverity && this.isValidWhen && this.isValidWho\r\n && this.isValidWhere && this.isValidWhat && this.isValidWhatVehicle && this.isValidWhatRoad;\r\n return res;\r\n }\r\n\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // group by\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // @observable\r\n // groupBy: GroupBy;\r\n\r\n @action\r\n updateGroupby = (key: string) => {\r\n this.groupByDict.setFilter(key);\r\n this.groupByDict.setBrowserQueryString();\r\n if (!this.useGetFetch && this.groupByDict.groupBy.text === 'CityByPop') this.submitfilterdGroupByPop();\r\n else this.submitfilterdGroup(this.groupByDict.groupBy as GroupBy);\r\n if (this.groupByDict.groupBy.text !== 'CityByPop') {\r\n const gb2 = (this.group2Dict.groupBy as GroupBy2).name\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, gb2);\r\n }\r\n }\r\n\r\n /**\r\n * Dictionary with key-value list of the group-by \r\n */\r\n @observable\r\n groupByDict: GroupMap;\r\n\r\n @action\r\n submitGroupByYears = () => {\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getfilterBySeverityAndCity();\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'year');\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.dataByYears = dataPadded;\r\n }\r\n });\r\n }\r\n else {\r\n const filtermatch = this.getfilterBySeverityAndCity();\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'accident_year');\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.dataByYears = dataPadded;\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * convert parital array of years and count to full array\r\n * if year is missing, add year and count = 0\r\n * @param data array of years and counts, some of the years might be missing\r\n */\r\n padDataYearsWith0 = (data: any) => {\r\n const yearsList = [];\r\n for (let i = Number(this.startYear.queryValue); i <= Number(this.endYear.queryValue); i += 1) {\r\n yearsList.push(i);\r\n }\r\n const data2 = yearsList.map((year) => {\r\n const objDAta = data.find((x: any) => x._id === year);\r\n const val = (objDAta) ? objDAta.count : 0;\r\n return { _id: year, count: val };\r\n });\r\n return data2;\r\n }\r\n\r\n getCountFromGroupByRes = (data: any[]) => {\r\n const res = data.reduce((b: number, x: any) => b + x.count, 0);\r\n return res;\r\n }\r\n\r\n @action\r\n submitfilterdGroupByYears = () => {\r\n this.isLoadingInjuriesCount = true;\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'year', range.min, range.max);\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.setDataFilterdByYears(dataPadded);\r\n const count = this.getCountFromGroupByRes(data);\r\n this.setInjuriesCount(count);\r\n }\r\n });\r\n } else {\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'accident_year', range.min, range.max);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.setDataFilterdByYears(dataPadded);\r\n const count = this.getCountFromGroupByRes(data);\r\n this.setInjuriesCount(count);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n @action\r\n submitfilterdGroup = (aGroupBy: GroupBy) => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, '', aGroupBy.limit, aGroupBy.sort);\r\n // logger.log(filter);\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any | undefined) => {\r\n if(aGroupBy.reGroupResultFunc) {\r\n data = aGroupBy.reGroupResultFunc(data);\r\n }\r\n if (data !== undefined) this.dataFilterd = data;\r\n });\r\n } else {\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, '', aGroupBy.limit);\r\n // logger.log(filter);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) this.dataFilterd = data;\r\n });\r\n }\r\n\r\n }\r\n\r\n \r\n /**\r\n * deprecated function\r\n */\r\n @action\r\n submitfilterdGroupByPop = () => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupByPop(filtermatch, range.min, range.max, -1, 15);\r\n // logger.log(filter);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n this.dataFilterd = data;\r\n }\r\n });\r\n }\r\n\r\n @action\r\n submitfilterdGroup2 = (aGroupBy: GroupBy, groupName2: string) => {\r\n if (this.useGetFetch) {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, groupName2, aGroupBy.limit);\r\n // logger.log(filter)\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined && data.length > 0) {\r\n try {\r\n const fixData = (this.group2Dict.groupBy as GroupBy2).fixStrcutTable(data);\r\n this.dataGroupby2 = fixData;\r\n } catch (error) {\r\n logger.log(error);\r\n this.dataGroupby2 = [];\r\n }\r\n } else {\r\n this.dataGroupby2 = [];\r\n }\r\n });\r\n } else {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, groupName2, aGroupBy.limit);\r\n // logger.log(filter)\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined && data.length > 0) {\r\n try {\r\n const fixData = (this.group2Dict.groupBy as GroupBy2).fixStrcutTable(data);\r\n this.dataGroupby2 = fixData;\r\n } catch (error) {\r\n logger.log(error);\r\n this.dataGroupby2 = [];\r\n }\r\n } else {\r\n this.dataGroupby2 = [];\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n // @observable\r\n // groupBy2: GroupBy2;\r\n\r\n @action\r\n updateGroupBy2 = (key: string) => {\r\n this.group2Dict.setFilter(key);\r\n this.group2Dict.setBrowserQueryString();\r\n const gb2name = (this.group2Dict.groupBy as GroupBy2).name\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, gb2name);\r\n }\r\n\r\n @observable\r\n group2Dict: GroupMap;\r\n\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // filters actions\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n isUse2StepsMarkers: boolean = false;\r\n\r\n @observable\r\n markersLoadStep: number = 1;\r\n\r\n @action\r\n setMarkersLoadStep = (step: number) => {\r\n if (this.isUse2StepsMarkers) this.markersLoadStep = step;\r\n }\r\n\r\n @action\r\n submitFilter = () => {\r\n // this.setMarkersLoadStep(0);\r\n if (this.useLocalDb === 2) {\r\n this.submitMainDataFilterLocalDb();\r\n } else {\r\n if (this.rootStore.mapStore.bboxType === BBoxType.SERVER_BBOX) {\r\n this.rootStore.mapStore.submintGetMarkersBBox();\r\n }\r\n if (this.isUse2StepsMarkers) this.submintGetMarkerFirstStep();\r\n this.submintMainDataFilter();\r\n }\r\n this.submitCityNameAndLocation();\r\n this.submitGroupByYears();\r\n this.submitfilterdGroupByYears();\r\n // console.log((this.groupByDict.groupBy as GroupBy).text);\r\n if (!this.useGetFetch && this.groupByDict.groupBy.text === 'CityByPop') this.submitfilterdGroupByPop();\r\n else this.submitfilterdGroup(this.groupByDict.groupBy as GroupBy);\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, (this.group2Dict.groupBy as GroupBy2).name);\r\n this.setCasualtiesNames(this.injurySeverity);\r\n const lang = this.rootStore.uiStore.language;\r\n if (this.rootStore.uiStore.currentPage === 'city') this.rootStore.imageStore.getImagesByPlace(this.cityResult, lang);\r\n }\r\n\r\n submintMainDataFilter = () => {\r\n this.isLoading = true;\r\n if (this.useGetFetch) {\r\n const filter = this.getFilterQueryString(null);\r\n this.setFiltersText(true);\r\n this.setBrowserQueryString();\r\n // logger.log(filter);\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n AccidentService.fetchGetList(filter, 'main')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n // write Data to local db\r\n if (this.useLocalDb === 1) insertToDexie(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n } else {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filter = this.getFilterForPost(null);\r\n // logger.log(filter);\r\n // const filter = FiterUtils.getFilterByCityPop(filterMatch, range.min, range.max);\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n AccidentService.fetchAggregatFilter(filter, 'main')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n // write Data to local db\r\n if (this.useLocalDb === 1) insertToDexie(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n submintGetMarkerFirstStep = () => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filter = this.getFilterForPost(null);\r\n // const filter = FiterUtils.getFilterByCityPop(filterMatch, range.min, range.max);\r\n AccidentService.fetchAggregatFilter(filter, 'latlon')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateDataMarkersLean(data);\r\n }\r\n });\r\n }\r\n\r\n submitCityNameAndLocation = () => {\r\n if (this.cities.arrValues.length >= 1) {\r\n const city = this.cities.arrValues[0];\r\n const srvCity = new CityService();\r\n //this.rootStore.mapStore.delQueryStrMapCenter();\r\n var noop = function () { }; // do nothing.\r\n const CenterByCityCallBack = (this.rootStore.mapStore.isCenterMapByCity()) ?\r\n this.rootStore.mapStore.updateMapCenterByCity :\r\n noop;\r\n srvCity.getCityByNameHe(city, CenterByCityCallBack);\r\n const index = 0;\r\n this.cityResult = this.cities.arrValues[index];\r\n } else this.cityResult = '';\r\n }\r\n /**\r\n * get filter query string for the server request. \r\n * @param bounds gis bound (rect) to filter\r\n * @param useBounds if true will use gis bound to filter reqest\r\n * @returns query string , for example ?sy=2017&sev=1&city=\"תל אביב -יפו\",\"חיפה\"\r\n */\r\n getFilterQueryString = (bounds: any, useBounds: boolean = false) => {\r\n //the oreder of the fileds is importnet for indexing in server\r\n let filter = '?';\r\n filter += this.startYear.getFilter();\r\n filter += this.endYear.getFilter();\r\n filter += this.injurySeverity.getFilter();\r\n filter += this.cities.getFilter();\r\n if (useBounds && bounds != null) filter += FilterUtils.getfilterBounds(bounds);\r\n filter += this.dayNight.getFilter();\r\n filter += this.streets.getFilter();\r\n filter += this.roads.getFilter();\r\n filter += this.roadSegment.getFilter();\r\n filter += this.injTypes.getFilter();\r\n filter += this.genderTypes.getFilter();\r\n filter += this.ageTypes.getFilter();\r\n filter += this.populationTypes.getFilter();\r\n filter += this.accidentType.getFilter();\r\n filter += this.vehicleType.getFilter();\r\n filter += this.involvedVehicle.getFilter();\r\n filter += this.locationAccuracy.getFilter();\r\n filter += this.roadTypes.getFilter();\r\n filter += this.speedLimit.getFilter();\r\n filter += this.roadWidth.getFilter();\r\n filter += this.separator.getFilter();\r\n filter += this.oneLane.getFilter();\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n filter += FilterUtils.getFilterByCityPop(range.min, range.max)\r\n return filter;\r\n }\r\n\r\n\r\n /**\r\n * set filters text - used in info-panel to show current filter\r\n * @param ignoreIfAll - if true and if all option is cheked return blank\r\n */\r\n setFiltersText = (ignoreIfAll: boolean) => {\r\n this.startYear.setText();\r\n this.endYear.setText();\r\n this.injTypes.setText(ignoreIfAll);\r\n this.dayNight.setText(ignoreIfAll);\r\n this.genderTypes.setText(ignoreIfAll);\r\n this.ageTypes.setText(ignoreIfAll);\r\n this.populationTypes.setText(ignoreIfAll);\r\n this.locationAccuracy.setText(ignoreIfAll);\r\n this.roadTypes.setText(ignoreIfAll);\r\n this.cities.setText();\r\n this.roads.setText();\r\n this.cityPopSizeRange.setText();\r\n this.accidentType.setText(ignoreIfAll);\r\n this.vehicleType.setText(ignoreIfAll);\r\n this.involvedVehicle.setText(ignoreIfAll);\r\n }\r\n\r\n /**\r\n * set the QueryString of the browser by current filter\r\n */\r\n @action\r\n setBrowserQueryString = () => {\r\n const params = new URLSearchParams(location.search);\r\n params.set('tab', this.rootStore.uiStore.currentTab);\r\n this.startYear.setBrowserQueryString(params, false);\r\n this.endYear.setBrowserQueryString(params, false);\r\n this.injurySeverity.setBrowserQueryString(params, false);\r\n this.roadTypes.setBrowserQueryString(params);\r\n this.injTypes.setBrowserQueryString(params);\r\n this.genderTypes.setBrowserQueryString(params);\r\n this.ageTypes.setBrowserQueryString(params);\r\n this.populationTypes.setBrowserQueryString(params);\r\n this.cities.setBrowserQueryString(params);\r\n this.roads.setBrowserQueryString(params);\r\n this.locationAccuracy.setBrowserQueryString(params);\r\n this.accidentType.setBrowserQueryString(params);\r\n this.vehicleType.setBrowserQueryString(params);\r\n this.involvedVehicle.setBrowserQueryString(params);\r\n this.speedLimit.setBrowserQueryString(params);\r\n this.roadWidth.setBrowserQueryString(params);\r\n this.separator.setBrowserQueryString(params);\r\n this.oneLane.setBrowserQueryString(params);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n\r\n this.groupByDict.setBrowserQueryString();\r\n }\r\n\r\n /**\r\n * udpate the store (and gui) using given qurey from the browser (on load time)\r\n * @param defTab default tab to dispaly\r\n * @param defCity default city to choose. (can be null)\r\n */\r\n @action\r\n setStoreByQuery = (params: URLSearchParams, defCity?: string) => {\r\n this.startYear.setValuesByQuery(params);\r\n this.endYear.setValuesByQuery(params);\r\n this.injurySeverity.setValuesByQuery(params);\r\n this.dayNight.setValuesByQuery(params);\r\n const citis = this.getCityNameFromQuery(params, defCity);\r\n if (citis) this.updateCities(citis, true);\r\n this.locationAccuracy.setValuesByQuery(params);\r\n this.roadTypes.setValuesByQuery(params);\r\n this.injTypes.setValuesByQuery(params);\r\n this.genderTypes.setValuesByQuery(params);\r\n this.ageTypes.setValuesByQuery(params);\r\n this.populationTypes.setValuesByQuery(params);\r\n this.accidentType.setValuesByQuery(params);\r\n this.vehicleType.setValuesByQuery(params);\r\n this.involvedVehicle.setValuesByQuery(params);\r\n this.speedLimit.setValuesByQuery(params);\r\n this.roadWidth.setValuesByQuery(params);\r\n this.separator.setValuesByQuery(params);\r\n this.oneLane.setValuesByQuery(params);\r\n //update groupby\r\n this.groupByDict.setValuesByQuery(params);\r\n this.group2Dict.setValuesByQuery(params);\r\n\r\n }\r\n\r\n\r\n\r\n // old code - backup for post req\r\n getFilterForPost = (bounds: any, useBounds: boolean = false) => {\r\n let filter = '{\"$and\" : [';\r\n filter += `{\"accident_year\": { \"$gte\" : ${this.startYear},\"$lte\": ${this.endYear}}}`;\r\n // filter += FiterUtils.getMultiplefilter(this.injurySeverity);\r\n // filter += FiterUtils.getfilterCity(this.cities);\r\n if (useBounds && bounds != null) filter += FilterUtils.getfilterBounds(bounds);\r\n //filter += FiterUtils.getMultiplefilter(this.dayNight);\r\n // filter += FiterUtils.getFilterStreets(this.streets);\r\n // filter += this.getFilterFromNumArray(this.roads, 'road1');\r\n // filter += this.getFilterFromArray(this.roadSegment, 'road_segment_name');\r\n // filter += FiterUtils.getMultiplefilter(this.injTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.genderTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.ageTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.populationTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.accidentType);\r\n // filter += FiterUtils.getMultiplefilter(this.vehicleType);\r\n // filter += FiterUtils.getMultiplefilter(this.roadTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.speedLimit);\r\n // filter += FiterUtils.getMultiplefilter(this.roadWidth);\r\n // filter += FiterUtils.getMultiplefilter(this.separator);\r\n // filter += FiterUtils.getMultiplefilter(this.oneLane);\r\n filter += ']}';\r\n return filter;\r\n }\r\n\r\n @action\r\n updateFilters = (colFilter: IColumnFilter, aType: number, val: boolean) => {\r\n colFilter.setFilter(aType, val);\r\n if (colFilter.allTypesOption === -1) colFilter.arrTypes[aType].checked = val;\r\n else if (aType === colFilter.allTypesOption) {\r\n colFilter.arrTypes\r\n .forEach((x, index) => x.checked = (index === colFilter.allTypesOption) ? val : !val);\r\n } else {\r\n colFilter.arrTypes[colFilter.allTypesOption].checked = false;\r\n colFilter.arrTypes[aType].checked = val;\r\n }\r\n }\r\n\r\n getfilterBySeverityAndCity = () => {\r\n let filter = '?';\r\n filter += this.startYear.getFilter();\r\n filter += this.injurySeverity.getFilter();\r\n filter += this.cities.getFilter();\r\n // filter += FiterUtils.getFilterFromArray('city', this.cities.arrValues);\r\n return filter;\r\n }\r\n\r\n getFilterFromArray = (arr: string[], filterName: string) => {\r\n let filter: string = '';\r\n if (arr.length > 0 && arr[0] !== '') {\r\n filter += ',{\"$or\": [';\r\n filter += arr.map((x: string) => `{\"${filterName}\" : \"${x.trim()}\"}`).join(',');\r\n filter += ']}';\r\n }\r\n return filter;\r\n }\r\n getFilterFromNumArray = (arr: string[], filterName: string) => {\r\n let filter: string = '';\r\n if (arr.length > 0) {\r\n filter += ',{\"$or\": [';\r\n filter += arr.map((x: string) => `{\"${filterName}\" : ${parseInt(x, 10)}}`).join(',');\r\n filter += ']}';\r\n }\r\n return filter;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // local db filters - idb using Dexie.js\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n useLocalDb = 0;\r\n\r\n submitMainDataFilterLocalDb = () => {\r\n this.isLoading = true;\r\n const arrFilters = this.getFilterIDB();\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n // logger.log(arrFilters);\r\n getFromDexie(arrFilters)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n submintGetMarkersBBoxIdb = (mapBounds: L.LatLngBounds) => {\r\n const arrFilters = this.getFilterBboxIDB(mapBounds);\r\n getFromDexie(arrFilters)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.rootStore.mapStore.updateDataMarkersInBounds(data);\r\n }\r\n });\r\n }\r\n\r\n getFilterIDB = () => {\r\n const arrFilters: any[] = [];\r\n const years = { filterName: 'accident_year', startYear: this.startYear.queryValue.toString(), endYear: this.endYear.queryValue.toString() };\r\n arrFilters.push(years);\r\n this.getfilterCityIDB(arrFilters);\r\n this.getFilterStreetsIDB(arrFilters);\r\n this.getMultiplefilterIDB(arrFilters, this.dayNight);\r\n this.getFilterFromArrayIDb(arrFilters, 'road_segment_name', this.roadSegment.arrValues);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.injTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.genderTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.ageTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.populationTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.accidentType);\r\n this.getMultiplefilterIDB(arrFilters, this.vehicleType);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.speedLimit);\r\n this.getMultiplefilterIDB(arrFilters, this.roadWidth);\r\n this.getMultiplefilterIDB(arrFilters, this.separator);\r\n this.getMultiplefilterIDB(arrFilters, this.oneLane);\r\n return arrFilters;\r\n }\r\n\r\n getFilterBboxIDB = (bounds: L.LatLngBounds) => {\r\n const arrFilters: any[] = [];\r\n const bbox = { filterName: 'bbox', p1: bounds.getSouthWest, p2: bounds.getNorthEast };\r\n arrFilters.push(bbox);\r\n const years = { filterName: 'accident_year', startYear: this.startYear.queryValue.toString(), endYear: this.endYear.queryValue.toString() };\r\n arrFilters.push(years);\r\n this.getfilterCityIDB(arrFilters);\r\n this.getFilterStreetsIDB(arrFilters);\r\n this.getMultiplefilterIDB(arrFilters, this.dayNight);\r\n this.getFilterFromArrayIDb(arrFilters, 'road_segment_name', this.roadSegment.arrValues);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.injTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.genderTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.ageTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.populationTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.accidentType);\r\n this.getMultiplefilterIDB(arrFilters, this.vehicleType);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.speedLimit);\r\n this.getMultiplefilterIDB(arrFilters, this.roadWidth);\r\n this.getMultiplefilterIDB(arrFilters, this.separator);\r\n this.getMultiplefilterIDB(arrFilters, this.oneLane);\r\n return arrFilters;\r\n }\r\n\r\n getMultiplefilterIDB = (arrFilters: any[], colFilter: IColumnFilter) => {\r\n if (colFilter.allTypesOption > -1 && colFilter.arrTypes[colFilter.allTypesOption].checked) {\r\n return;\r\n }\r\n let allChecked: boolean = true;\r\n let arrfilter: number[] = [];\r\n const iterator = colFilter.arrTypes.values();\r\n for (const filterCheck of iterator) {\r\n if (filterCheck.checked) {\r\n arrfilter = [...arrfilter, ...filterCheck.filters];\r\n } else {\r\n allChecked = false;\r\n }\r\n }\r\n if (!allChecked) {\r\n const filterVals = arrfilter.map((x: number) => {\r\n if (x === -1) return null;\r\n return x;\r\n });\r\n const filter = { filterName: colFilter.queryColName, values: filterVals };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n\r\n getfilterCityIDB = (arrFilters: any[]) => {\r\n if (this.cities.arrValues.length > 0) {\r\n const filter = { filterName: 'accident_yishuv_name', values: this.cities.arrValues };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n\r\n getFilterStreetsIDB = (arrFilters: any[]) => {\r\n if (this.streets.arrValues.length > 0 && this.streets.arrValues[0] !== '') {\r\n const filter1 = { filterName: 'street1_hebrew', values: this.streets.arrValues.map((x: string) => x.trim()) };\r\n arrFilters.push(filter1);\r\n // const filter2 = { filterName: \"street2_hebrew\", values: this.streets.map((x: string) => {x.trim()}) }\r\n // arrFilters.push(filter2)\r\n }\r\n }\r\n\r\n getFilterFromArrayIDb = (arrFilters: any[], filterName: string, arr: string[]) => {\r\n if (arr.length > 0 && arr[0] !== '') {\r\n const filter = { filterName, values: arr.map((x: string) => x.trim()) };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n}\r\n\r\n// autorun(() =>{\r\n// logger.log(store.todos[0])\r\n// logger.log(store.filter)\r\n// })\r\n\r\n// export default store\r\n","import { observable, action, reaction } from 'mobx';\r\nimport i18n from '../i18n';\r\nimport RootStore from './RootStore';\r\nimport { setBrowserQueryString } from '../utils/queryStringUtils';\r\nimport logger from '../services/logger';\r\n// import autorun from \"mobx\"\r\n\r\nexport default class UiStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n this.initLang();\r\n this.appInitialized = false;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n // ////////////////////////////////////////////\r\n @observable\r\n language: string = 'he'\r\n\r\n @action\r\n updateLanguage = (lang: string) => {\r\n this.language = lang;\r\n localStorage.setItem('lang', JSON.stringify(lang));\r\n const dir = (lang === 'en') ? 'ltr' : 'rtl';\r\n this.setDirection(dir);\r\n }\r\n\r\n @observable\r\n direction: string = 'rtl';\r\n\r\n @action\r\n setDirection = (val: string) => {\r\n this.direction = val;\r\n }\r\n\r\n reactionChangeLang = reaction(\r\n () => this.language,\r\n (locale) => {\r\n i18n.changeLanguage(locale);\r\n },\r\n )\r\n\r\n initLang = () => {\r\n try {\r\n const slang = localStorage.getItem('lang');\r\n if (slang !== null) {\r\n const lang = JSON.parse(slang);\r\n this.updateLanguage(lang);\r\n }\r\n } catch (error) {\r\n logger.log(error);\r\n }\r\n }\r\n\r\n @observable\r\n showFilterModal: boolean = false;\r\n\r\n @action\r\n setShowFilterModal = (val: boolean) => {\r\n this.showFilterModal = val;\r\n }\r\n\r\n @observable\r\n initPage: boolean = false;\r\n @action\r\n setInitPage = (val: boolean) => {\r\n this.initPage = val;\r\n }\r\n\r\n /**\r\n * udpate the store (and gui) using given qurey from the browser (on load time)\r\n * @param defTab default tab to dispaly\r\n * @param defCity default city to choose. (can be null)\r\n */\r\n @action\r\n setStoreByQuery = (defTab: string, defCity?: string) => {\r\n const params = new URLSearchParams(window.location.search);\r\n //set tab\r\n const tab = this.getValFromQuery(params, 'tab', defTab);\r\n if (tab) this.setCurrentTab(tab);\r\n //set other stores\r\n this.rootStore.filterStore.setStoreByQuery(params, defCity);\r\n this.rootStore.mapStore.setStoreByQuery(params);\r\n }\r\n\r\n // get name by url query parmas\r\n getValFromQuery= (query: URLSearchParams, name: string, defVal?: string) => {\r\n const val = query.get(name);\r\n const res = (val !== null) ? val : defVal;\r\n return res;\r\n }\r\n\r\n /**\r\n * current page\r\n */\r\n @observable\r\n currentPage: string = 'home';\r\n\r\n @action\r\n setCurrentPage = (pageType: string) => {\r\n this.currentPage = pageType;\r\n }\r\n\r\n @observable\r\n currentTab: string = 'charts';\r\n\r\n @action\r\n setCurrentTab = (tabName: string) => {\r\n this.currentTab = tabName;\r\n this.setQueryStrTab();\r\n }\r\n\r\n @action\r\n setQueryStrTab = () => {\r\n setBrowserQueryString('tab', this.currentTab);\r\n }\r\n\r\n\r\n @observable\r\n searchParams: string = '';\r\n\r\n // @action\r\n // setSearchParams = () => {\r\n // let res = '';\r\n // if (this.currentPage === 'home') {\r\n // res += `?tab=${this.currentTab}`;\r\n // } else {\r\n // res += `?name=${this.rootStore.filterStore.cityResult}`;\r\n // res += `&tab=${this.currentTab}`;\r\n // }\r\n // // if (!this.rootStore.filterStore.injTypes.isAllValsFalse()) {\r\n // // }\r\n // this.searchParams = res;\r\n // }\r\n\r\n @observable\r\n chartType: string = 'BarChart';\r\n\r\n @observable\r\n chartTypeList: string[] = ['BarChart', 'PieChart', 'HorizontalBar'];\r\n\r\n @action\r\n updateChartType = (val: string) => {\r\n this.chartType = val;\r\n }\r\n\r\n @observable\r\n showPercentageChart: boolean = false\r\n\r\n @action\r\n updateShowPercentageChart = (val: boolean) => {\r\n this.showPercentageChart = val;\r\n }\r\n}\r\n","import IimageEntity from '../stores/ImageEntity';\r\n\r\nexport const fetchListImgByTag = async (tag: string, lang: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = (lang === '') ? `/api/v1/img/tags/${tag}` : `/api/v1/img/tags/${lang}/${tag}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\nexport const fetchListImgByPlace = async (place: string, lang: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = `/api/v1/img/place/${lang}/${place}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const uploadImg = async (image: IimageEntity):\r\n Promise | undefined> => {\r\n if (image.file === undefined) return [];\r\n const formData = new FormData();\r\n formData.append('titlehe', image.titlehe);\r\n formData.append('texthe', image.texthe);\r\n formData.append('image', image.file);\r\n formData.append('tags', image.tags);\r\n formData.append('place', image.place);\r\n if (image.index !== undefined) formData.append('index', image.index?.toString());\r\n const url = '/api/v1/img/';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors',\r\n body: formData,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const updateImgProps = async (image: IimageEntity):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = '/api/v1/img/props';\r\n const response = await fetch(url, {\r\n method: 'PUT',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: JSON.stringify(image),\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const fetchImg = async (fileName: string):\r\n Promise => {\r\n // Default options are marked with *\r\n const url = `/api/v1/img/${fileName}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response; // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport default fetchImg;\r\n","import { observable, action } from 'mobx';\r\nimport RootStore from './RootStore';\r\nimport {\r\n fetchListImgByTag, fetchListImgByPlace, updateImgProps, uploadImg,\r\n} from '../services/ImageService';\r\nimport IimageEntity from './ImageEntity';\r\n\r\nexport default class ImageStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n @observable\r\n imageList: IimageEntity[] = [];\r\n\r\n @action\r\n setImageList = (data: IimageEntity[]) => {\r\n this.imageList = data;\r\n if (this.imageList.length > 0) this.setCurrImage(this.imageList[0]);\r\n }\r\n\r\n @observable\r\n isLoading: boolean = false;\r\n\r\n @observable\r\n currTag: string = 'כללי';\r\n\r\n @action\r\n setCurrTag = (tag: string) => {\r\n this.currTag = tag;\r\n const lang = this.rootStore.uiStore.language;\r\n this.getImagesByTag(tag, lang);\r\n }\r\n tagsArr = [\r\n { val: \"כללי\", text: 'general' },\r\n { val: \"הולכי רגל\", text: 'pedestrian' },\r\n { val: \"רוכבי אופניים\", text: 'cyclist' },\r\n { val: \"רוכבי אופנוע\", text: 'motorcycle' },\r\n { val: \"מכוניות\", text: 'car' },\r\n { val: \"אוטובוסים\", text: 'bus' },\r\n { val: \"ילדים\", text: 'kids' },\r\n ];\r\n\r\n @observable\r\n currImage: IimageEntity| null = null;\r\n\r\n @action\r\n setCurrImage = (image: IimageEntity) => {\r\n this.currImage = image;\r\n }\r\n\r\n @observable\r\n hideDescription = false;\r\n\r\n @action\r\n toggleHideDescription = () => {\r\n this.hideDescription = !this.hideDescription;\r\n if (this.hideDescription) {\r\n document.documentElement.style.setProperty('--image-gallery-description-visable', 'none');\r\n } else document.documentElement.style.setProperty('--image-gallery-description-visable', 'inherit');\r\n }\r\n\r\n setCurrImageVal= (valName: T, val: K) => {\r\n if (this.currImage !== null) this.currImage[valName] = val;\r\n }\r\n\r\n submitImageFile = () => {\r\n if (this.currImage !== null) {\r\n if (this.currImage._id === 0 && this.currImage.file !== undefined) {\r\n uploadImg(this.currImage);\r\n } else updateImgProps(this.currImage);\r\n }\r\n };\r\n\r\n getImages = (type :string) => {\r\n const lang = this.rootStore.uiStore.language;\r\n if (type === 'city') {\r\n const city = this.rootStore.filterStore.cityResult;\r\n this.getImagesByPlace(city, lang);\r\n } else {\r\n this.getImagesByTag(this.currTag, lang);\r\n }\r\n }\r\n\r\n getImagesByTag = (tag :string, lang: string) => {\r\n this.isLoading = true;\r\n fetchListImgByTag(tag, lang)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.setImageList(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getImagesByPlace = (place :string, lang: string) => {\r\n // this.isLoading = true;\r\n fetchListImgByPlace(place, lang)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.setImageList(data);\r\n }\r\n // this.isLoading = false;\r\n });\r\n }\r\n}\r\n","// https://mobx-react.js.org/recipes-context\r\nimport React from 'react'\r\nimport RootStore from './RootStore';\r\n\r\nexport const store = new RootStore();\r\nexport const StoreContext = React.createContext(store);\r\nexport const useStore = (): RootStore => {\r\n const store = React.useContext(StoreContext);\r\n if (!store) {\r\n // this is especially useful in TypeScript so you don't need to be checking for null all the time\r\n throw new Error('You have forgot to use StoreProvider, shame on you.')\r\n }\r\n return store\r\n};\r\n\r\n/* // see: https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables\r\nif(process.env.NODE_ENV !== 'production') {\r\n // @ts-ignore\r\n window['store'] = store;\r\n} */","import FilterStore from './FilterStore';\r\nimport UiStore from './UiStore';\r\nimport MapStore from './MapStore';\r\nimport ImageStore from './ImageStore'\r\n\r\nexport default class RootStore {\r\n appInitialized = false;\r\n\r\n constructor() {\r\n this.uiStore = new UiStore(this);\r\n this.mapStore = new MapStore(this);\r\n this.filterStore = new FilterStore(this);\r\n this.imageStore = new ImageStore(this);\r\n }\r\n\r\n uiStore: UiStore;\r\n\r\n mapStore: MapStore;\r\n\r\n filterStore: FilterStore;\r\n\r\n imageStore: ImageStore;\r\n}\r\n","import React, { PropsWithChildren } from 'react'\r\n\r\ninterface SmallCard2Props extends PropsWithChildren {\r\n header?: string,\r\n style?: any,\r\n}\r\n\r\nconst SmallCard2: React.FC = ({ children, header, style }) => {\r\n const cardHeader = header ? <>
{header}

: null;\r\n return (\r\n \r\n {cardHeader}\r\n {children}\r\n \r\n )\r\n}\r\nexport default SmallCard2","\r\nimport React, { ChangeEvent, memo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Form from 'react-bootstrap/Form';\r\n\r\ninterface IProps {\r\n label: string,\r\n group: string,\r\n id: number,\r\n checked: boolean,\r\n onChange: (e: ChangeEvent) => any\r\n}\r\nconst Checkbox: React.FC = ({\r\n group, label, id, checked, onChange,\r\n}) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n );\r\n};\r\nexport default memo(Checkbox);\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { observer } from 'mobx-react';\r\n\r\ninterface IProps {\r\n title: string;\r\n showModal: boolean;\r\n setShow: (show: boolean) => void;\r\n children: any;\r\n size?: \"sm\" | \"lg\" | \"xl\" | undefined;\r\n action?: (val?: any) => void;\r\n}\r\n\r\n\r\nconst ConfigModal: React.FC = observer(({\r\n title, showModal, setShow, children, size, action\r\n}: IProps) => {\r\n\r\n const { t } = useTranslation();\r\n const handleClose = () => setShow(false);\r\n const { filterStore } = useStore();\r\n\r\n const submitChanges = action ?\r\n \r\n {filterStore.isLoading ? t('Loading') : t('Submit')}\r\n \r\n : null\r\n\r\n return (\r\n \r\n \r\n {t(title)}\r\n \r\n \r\n {children}\r\n \r\n \r\n {submitChanges}\r\n \r\n \r\n \r\n );\r\n});\r\nexport default React.memo(ConfigModal);\r\n","/**\r\n * singlton logger class\r\n */\r\nclass Logger {\r\n log(message) {\r\n console.log(message);\r\n }\r\n\r\n error(message) {\r\n console.error(message);\r\n }\r\n}\r\nconst logger = new Logger();\r\nObject.freeze(logger);\r\nexport default logger;\r\n","import React from 'react';\r\nimport logger from '../../services/logger';\r\n\r\ninterface IProps {\r\n}\r\ninterface IState {\r\n hasError: boolean;\r\n}\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props:IProps) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error:any) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error:any, errorInfo:any) {\r\n // You can also log the error to an error reporting service\r\n // logErrorToMyService(error: TypeError, errorInfo);\r\n logger.error(error);\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return

Something went wrong.

;\r\n }\r\n return this.props.children;\r\n }\r\n}\r\nexport default ErrorBoundary;\r\n","import React from 'react'\r\nimport Spinner from 'react-bootstrap/Spinner'\r\nimport '../../styles/loader.css'\r\nconst Loader: React.FC = () =>
\r\n\r\nexport default Loader\r\n","import React, { FunctionComponent, lazy, Suspense, } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Tabs from 'react-bootstrap/Tabs';\r\nimport Tab from 'react-bootstrap/Tab';\r\nimport ErrorBoundary from '../atoms/ErrorBoundary';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport Loader from '../atoms/Loader';\r\nimport SmallCard2 from '../atoms/SmallCard2';\r\n\r\ninterface IProps {\r\n type: string;\r\n}\r\n\r\nconst GroupByGraphsPanel = lazy(() => import('../organisms/GroupByGraphsPanel'));\r\nconst GroupByTablesPanel = lazy(() => import('../organisms/GroupByTablesPanel'));\r\nconst MapAccidents = lazy(() => import('../organisms/MapAccidents'));\r\nconst AccidentsTable = lazy(() => import('../organisms/AccidentsTable'));\r\nconst MyImageGallery = lazy(() => import('../organisms/MyImageGallery'));\r\n\r\nconst styles = {\r\n tab: { marginTop: '0.5rem' },\r\n tabMap: { marginTop: '0.1rem' },\r\n mapCard: { width: '150px', height: '35px' }\r\n};\r\n\r\nexport const TabsTemplate: FunctionComponent = observer(({ type }) => {\r\n const { t } = useTranslation();\r\n const { mapStore, uiStore } = useStore();\r\n // const [activeKey] = useState(uiStore.);\r\n // defaultActiveKey={uiStore.currentTab}\r\n return (\r\n {\r\n if (tabActiveKey === 'map') {\r\n // map is renderd only when tab is shown to prevent leaflet bug\r\n mapStore.isReadyToRenderMap = true;\r\n } else mapStore.isReadyToRenderMap = false;\r\n uiStore.setCurrentTab(tabActiveKey);\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 \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\nexport default TabsTemplate;\r\n","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\n// @ts-ignore\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport citisNamesHeb from '../../assets/cities_names_heb.json';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\n\r\nconst CitySelector: React.FC = observer(({ isMultiple = false }) => {\r\n const { filterStore } = useStore();\r\n const { cities, updateCities} = filterStore;\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('City')}:\r\n \r\n {\r\n updateCities(selected, true);\r\n }}\r\n options={citisNamesHeb}\r\n multiple={isMultiple}\r\n selected={cities.arrValues}\r\n />\r\n \r\n );\r\n});\r\nexport default CitySelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {}\r\nconst StreetSelector: React.FC = observer(() => {\r\n const { filterStore } = useStore();\r\n const { streets, cities } = filterStore;\r\n const { t } = useTranslation();\r\n if (cities.arrValues.length > 0) {\r\n return (\r\n \r\n \r\n {t('Street')}\r\n:\r\n \r\n ) => { filterStore.updateStreets(e.target.value); }} \r\n />\r\n \r\n\r\n );\r\n }\r\n return null;\r\n});\r\nexport default StreetSelector;\r\n","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\n// @ts-ignore\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport roadNames from '../../assets/road_names.json';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\n\r\nconst RoadNameSelector: React.FC = observer(({ isMultiple = true }) => {\r\n const { filterStore } = useStore();\r\n const {roads, setRoads} = filterStore;\r\n const {arrValues} = roads;\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('Road')}:\r\n \r\n {\r\n setRoads(selected);\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n }}\r\n options={roadNames}\r\n multiple={isMultiple}\r\n selected={arrValues}\r\n />\r\n \r\n );\r\n});\r\nexport default RoadNameSelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\nconst RoadSegmentSelector: React.FC = observer(({ isMultiple = false }) => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { cities, roadSegment, updateRoadSegment } = filterStore;\r\n if (cities.arrValues.length === 0) {\r\n return (\r\n \r\n \r\n {t('RoadSegment')}\r\n :\r\n \r\n ) => { updateRoadSegment(e.target.value); }}\r\n />\r\n \r\n\r\n );\r\n }\r\n return null;\r\n});\r\nexport default RoadSegmentSelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport Checkbox from '../atoms/Checkbox';\r\nimport { IColumnFilter } from '../../stores/ColumnFilterCheckBoxList';\r\nimport { useMemos } from \"../../hooks/myUseMemo\";\r\n\r\ninterface IProps {\r\n formName: string,\r\n colFilter: IColumnFilter,\r\n onChange: (aType: number, val: boolean) => void\r\n}\r\n\r\n/**\r\n * group of check boxs, that represnat single filter\r\n * each filter can get several boolean paramters - for exampe car and bycle\r\n * each of this paramters is repreansted as a number, and get a true/false value\r\n * in some cases there is a \"select all\" option.\r\n */\r\nconst GroupCheckbox: React.FC = observer(({ formName, colFilter, onChange }) => {\r\n const styleFeedback = {\r\n marginTop: '.25rem',\r\n fontSize: '80%',\r\n color: '#dc3545',\r\n };\r\n const { t } = useTranslation();\r\n const { isAllValsFalse, name, arrTypes } = colFilter;\r\n const onGroupChange = (aType: number, checked: boolean) => {\r\n // checkValid(checked)\r\n onChange(aType, checked);\r\n };\r\n const feedback = (\r\n
\r\n {' '}\r\n {t('check_one_checkbox')}\r\n
\r\n );\r\n const isvalid = (isAllValsFalse) ? feedback : null;\r\n const list = arrTypes.map((fChecker, index) => {\r\n return useMemos([fChecker.checked], ) => {\r\n onGroupChange(index, e.target.checked);\r\n }}\r\n />);\r\n });\r\n return (\r\n
\r\n \r\n \r\n {t(name)}:\r\n \r\n {list}\r\n {isvalid}\r\n \r\n
\r\n );\r\n});\r\nexport default GroupCheckbox;\r\n","import React, { ChangeEvent, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\n// import Button from 'react-bootstrap/Button';\r\nimport Form from 'react-bootstrap/Form';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Accordion from 'react-bootstrap/Accordion';\r\nimport { useAccordionToggle } from 'react-bootstrap/AccordionToggle';\r\nimport Card from 'react-bootstrap/Card';\r\n// @ts-ignore\r\nimport CitySelector from '../molecules/CitySelector';\r\nimport StreetSelector from '../molecules/StreetSelector';\r\nimport RoadNameSelector from '../molecules/RoadNameSelector';\r\nimport RoadSegmentSelector from '../molecules/RoadSegmentSelector';\r\nimport GroupCheckbox from '../molecules/GroupCheckBox';\r\nimport Select from '../atoms/Select';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { useQuery, useInjTypeByQuery } from '../../hooks/queryHooks';\r\nimport MySelect from '../atoms/MySelect';\r\nimport '../../styles/accordion.css'\r\n\r\ninterface IProps {\r\n}\r\nconst STYLE_TOGGLE_WARNING = {\r\n // color: '#dc3545',\r\n // cursor: 'pointer',\r\n // paddingRight: '15px',\r\n // paddingLeft: '15px',\r\n};\r\nconst STYLE_TOGGLE_NORMAL = {\r\n color: '#007bff',\r\n cursor: 'pointer',\r\n // paddingRight: '15px',\r\n // paddingLeft: '15px',\r\n};\r\n\r\nconst FilterForm: React.FC = observer(({ }) => {\r\n const { filterStore } = useStore();\r\n const { injurySeverity, updateInjurySeverity, formCardKey } = filterStore;\r\n // console.log(injurySeverity)\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\nfunction CustomToggle({ children, style, eventKey, onClick }: any) {\r\n const [hover, setHover] = useState(false);\r\n const toggleHover = () => setHover(!hover);\r\n const linkStyle = (hover) ? { textDecoration: 'underline' } : { textDecoration: 'none' };\r\n const onButtonClick = useAccordionToggle(eventKey, () => onClick(eventKey));\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nconst CardFilterWhen: React.FC = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const {\r\n isValidWhen, startYear, setStartYear, endYear, setEndYear,\r\n dayNight, updateDayNight,\r\n setFormCardKey,\r\n } = filterStore;\r\n const styleToggle = isValidWhen ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n return (\r\n \r\n \r\n \r\n {t('When')}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ) => { setStartYear(e.target.value); }}\r\n />\r\n ) => { setEndYear(e.target.value); }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nconst CardFilterWhere = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const {\r\n isValidWhere, roadTypes, updateRoadType,\r\n locationAccuracy, updateLocationAccuracy,\r\n isMultipleCities,\r\n cityPopSizeRange, setCityPopSizeRange,\r\n setFormCardKey,\r\n } = filterStore;\r\n const styleToggle = isValidWhere ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('Where')}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ) => setCityPopSizeRange(event.target.value)}\r\n />\r\n \r\n
\r\n \r\n
\r\n );\r\n});\r\nconst CardFilterWho = observer(() => {\r\n const { t } = useTranslation();\r\n const location = useLocation();\r\n const { filterStore } = useStore();\r\n const { isValidWho, genderTypes, updateGenderType, } = filterStore;\r\n const { ageTypes, updateAgeType, populationTypes, updatePopulationType, setFormCardKey } = filterStore;\r\n\r\n // useEffect(() => {\r\n // const query = useQuery(location);\r\n // const injType = useInjTypeByQuery(query);\r\n // if (injType) {\r\n // updateInjuerdType(injType, true);\r\n // }\r\n // }, []);\r\n\r\n const styleToggle = isValidWho ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('Who')}\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\nconst CardFilterWhat = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { isValidWhat, accidentType, updateAccidentType, setFormCardKey } = filterStore;\r\n const styleToggle = isValidWhat ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('What')}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nconst CardFilterWhatVehicle = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { injTypes,\r\n updateInjuerdType,\r\n vehicleType,\r\n updateVehicleType,\r\n involvedVehicle,\r\n setInvolvedVehicle,\r\n isValidWhatVehicle,\r\n setFormCardKey\r\n } = filterStore;\r\n const styleToggle = isValidWhatVehicle ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('WhatVehicle')}\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\nconst CardFilterWhatRoad = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { isValidWhatRoad } = filterStore;\r\n const { speedLimit, updateSpeedLimit, roadWidth, updateRoadWidth, } = filterStore;\r\n const { separator, updateSeparator, oneLane, updateOneLane, setFormCardKey } = filterStore;\r\n const styleToggle = isValidWhatRoad ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('WhatRoad')}\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\nexport default FilterForm;\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport FilterForm from '../organisms/FilterForm';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigModal from \"../organisms/ConfigModal\";\r\n\r\ninterface IProps {\r\n }\r\nconst ConfigFilterModal: React.FC = observer(() => {\r\n const { filterStore, uiStore } = useStore();\r\n const { showFilterModal, setShowFilterModal } = uiStore;\r\n return (\r\n {\r\n filterStore.submitFilter();\r\n setTimeout(() => {\r\n setShowFilterModal(!showFilterModal)\r\n }, 1000);\r\n }}\r\n size=\"lg\"\r\n title={'Filters'}\r\n setShow={setShowFilterModal}\r\n showModal={showFilterModal}>\r\n \r\n \r\n );\r\n});\r\nexport default ConfigFilterModal;\r\n","import React from \"react\"\r\n\r\nfunction SvgIconFilter(props: React.SVGProps) {\r\n const color = (props.color) ? props.color : 'blue';\r\n const height = (props.height) ? props.height : 24;\r\n const width = (props.width) ? props.width : 24;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(SvgIconFilter);","import React from 'react';\r\n// import { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { useStore } from '../../stores/storeConfig';\r\n// import IconWithImage from '../atoms/IconWithImage';\r\n// import imgSrc from '../../assets/filter.png';\r\nimport { useMemos } from '../../hooks/myUseMemo';\r\nimport SvgIconFilter from '../../assets/SvgIconFilter';\r\nimport '../../styles/filter-btn.css'\r\n\r\ninterface IProps { }\r\nconst ButtonShowFilterModal: React.FC = observer(() => {\r\n // const { t } = useTranslation();\r\n const { uiStore } = useStore();\r\n const { showFilterModal, setShowFilterModal } = uiStore;\r\n const memoFilterIcon = useMemos([],\r\n );\r\n // const filterIcon = \r\n\r\n return (\r\n <>\r\n setShowFilterModal(!showFilterModal)}>\r\n {memoFilterIcon}\r\n \r\n \r\n );\r\n});\r\nexport default ButtonShowFilterModal;\r\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next';\r\nimport FilterForm from './FilterForm'\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { observer } from 'mobx-react';\r\nimport { Button } from 'react-bootstrap';\r\nimport '../../styles/sidebar.css'\r\n\r\nconst Drawer: React.FC = observer((props) => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n\r\n // console.log(filterStore)\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n filterStore.submitFilter()}\r\n disabled={filterStore.isLoading || !filterStore.isValidAllFilters}\r\n >\r\n {filterStore.isLoading ? t('Loading') : t('Submit')}\r\n \r\n alert('action in filter store to collect filters')}\r\n disabled={filterStore.isLoading || !filterStore.isValidAllFilters}\r\n >\r\n {t('Save')} {t('Filter')}\r\n \r\n
\r\n )\r\n {/* */ }\r\n})\r\n\r\n\r\nexport default Drawer","import React, { PropsWithChildren } from 'react'\r\nimport Drawer from '../organisms/Drawer'\r\nimport '../../styles/grid-with-drawer.css'\r\n\r\ninterface Props extends PropsWithChildren { }\r\n\r\nconst WithSidebarTemplate: React.FC = ({ children }) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default WithSidebarTemplate","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst WhenTitle: React.FC<{}> = observer(() => {\r\n const { filterStore } = useStore();\r\n const { dayNight } = filterStore;\r\n let res = (dayNight.text !== '') ? `, ${dayNight.text}` : '';\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhereTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { cities, cityPopSizeRange, roads, roadTypes, locationAccuracy } = filterStore;\r\n let res = t('Israel');\r\n if (cities.text !== '') {\r\n res = `${cities.text}`; // maybe use t('several-cities');\r\n } else if (cityPopSizeRange.text !== '') {\r\n res = `${t('city_size')} ${cityPopSizeRange.text}`;\r\n } else if (roads.text !== '') {\r\n res = `${t(roads.name)} ${roads.text}`;\r\n //res = (roads.length === 1) ? `${t('Road')} ${roads[0]}` : t('several-roads');\r\n }\r\n else if (roadTypes.text !== '') {\r\n res = `${roadTypes.text}`;\r\n }\r\n if (locationAccuracy.text != '') res += `, ${locationAccuracy.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhoTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { genderTypes, ageTypes, populationTypes } = filterStore;\r\n let res = (genderTypes.text != '') ? `, ${genderTypes.text}` : '';\r\n if (populationTypes.text != '') res += `, ${populationTypes.text}`;\r\n if (ageTypes.text != '') res += `, ${t('Age')}: ${ageTypes.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhatTitle: React.FC<{}> = observer(() => {\r\n const { filterStore } = useStore();\r\n const { accidentType } = filterStore;\r\n let res = (accidentType.text !== '') ? `, ${accidentType.text}` : '';\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhatVehicleTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { injTypes, vehicleType , involvedVehicle} = filterStore;\r\n let res = (injTypes.text !== '') ? `, ${injTypes.text}` : '';\r\n if (vehicleType.text !== '') res += `, ${t('VehicleType')}: ${vehicleType.text}`;\r\n if (involvedVehicle.text != '') res += `, ${t('Vehicles')}: ${involvedVehicle.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst InfoPanel: React.FC = observer(({ }) => {\r\n const styles = {\r\n div: {\r\n marginTop: '0.8rem',\r\n marginLeft: '1rem',\r\n marginRight: '1rem',\r\n marginBottom: '0.1rem'\r\n }\r\n }\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { casualtiesNames, isLoadingInjuriesCount: isLoadingCountInjuries, injuriesCount } = filterStore;\r\n if (isLoadingCountInjuries) return
{t('Loading')}
\r\n if (injuriesCount > 0) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {', '}\r\n {t('Found')}\r\n {' '}\r\n {injuriesCount}\r\n {' '}\r\n {t(casualtiesNames)}\r\n {' '}\r\n
\r\n );\r\n }\r\n return (\r\n
{t('NoResultsFound')}
\r\n );\r\n});\r\nexport default InfoPanel;\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\n// import FilterPanel from '../organisms/FilterPanel';\r\nimport TabsTemplate from './TabsTemplate';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigFilterModal from '../organisms/ConfigFilterModal';\r\nimport ButtonShowFilterModal from '../atoms/ButtonShowFilterModal';\r\nimport { useMemos } from \"../../hooks/myUseMemo\";\r\n// import CasualtiesSumLabel from '../atoms/CasualtiesSumLabel';\r\n// import FilterForm from \"../organisms/FilterForm\";\r\nimport WithSidebarTemplate from './WithSidebarTemplate';\r\nimport InfoPanel from '../molecules/InfoPanel';\r\n\r\ninterface IProps { }\r\nconst HomeTemplate: React.FC = observer(() => {\r\n const { t } = useTranslation();\r\n const { mapStore, filterStore, uiStore } = useStore();\r\n const { setIsMultipleCities, updateCities, submitFilter } = filterStore;\r\n const { setCurrentPage, setStoreByQuery, showFilterModal , setInitPage} = uiStore;\r\n\r\n useEffect(() => {\r\n setCurrentPage('home');\r\n // const query = useQuery(location);\r\n // const tab = useTabFromQuery(query, 'charts');\r\n // setCurrentTab(tab);\r\n setIsMultipleCities(true);\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n mapStore.isReadyToRenderMap = false;\r\n\r\n useEffect(() => {\r\n // mapStore.initBounds();\r\n setInitPage(true);\r\n updateCities([], false);\r\n setStoreByQuery('charts');\r\n submitFilter();\r\n setInitPage(false)\r\n }, [submitFilter, updateCities]);\r\n\r\n\r\n const memoConfigModal = useMemos([showFilterModal], )\r\n\r\n return (\r\n \r\n {/*
*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n {showFilterModal && memoConfigModal}\r\n \r\n
\r\n \r\n )\r\n})\r\n\r\nexport default HomeTemplate\r\n","import React from 'react';\r\nimport HomeTemplate from '../templates/HomeTemplate';\r\n\r\ninterface IProps { }\r\n\r\nconst HomePage: React.FC = () => (\r\n \r\n);\r\nexport default HomePage;\r\n","import React, { useEffect } from 'react';\r\n// import { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { TabsTemplate } from './TabsTemplate';\r\n// import FilterPanel from '../organisms/FilterPanel';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigFilterModal from '../organisms/ConfigFilterModal';\r\nimport ButtonShowFilterModal from '../atoms/ButtonShowFilterModal';\r\nimport { useMemos } from '../../hooks/myUseMemo';\r\nimport InfoPanel from '../molecules/InfoPanel';\r\nimport WithSidebarTemplate from './WithSidebarTemplate';\r\n\r\ninterface IProps { }\r\nconst CityTemplate: React.FC = observer(() => {\r\n // const { t } = useTranslation();\r\n const { filterStore, uiStore } = useStore();\r\n const { cityResult, isUpdateFromUrl, setIsUpdateFromUrl } = filterStore;\r\n const { setCurrentPage, setStoreByQuery, showFilterModal, setInitPage} = uiStore;\r\n\r\n useEffect(() => {\r\n setCurrentPage('city');\r\n filterStore.isMultipleCities = false;\r\n if (cityResult !== '') {\r\n filterStore.submitFilter();\r\n }\r\n return () => setIsUpdateFromUrl(true); // unmount\r\n }, []);\r\n // useEffect(() => {\r\n // if (cityResult !== '') {\r\n // history.push({\r\n // pathname: '/city',\r\n // search: `?name=${cityResult}&tab=${currentTab}`,\r\n // });\r\n // filterStore.submitFilter();\r\n // }\r\n // }, [cityResult, currentTab]);\r\n useEffect(() => {\r\n setInitPage(true);\r\n if (cityResult === '' && isUpdateFromUrl) {\r\n setIsUpdateFromUrl(false);\r\n setStoreByQuery('map','תל אביב -יפו');\r\n filterStore.submitFilter();\r\n }\r\n setInitPage(false);\r\n }, []);\r\n // useEffect(() => {\r\n // if (cityResult !== '') {\r\n // filterStore.submitFilter();\r\n // }\r\n // }, [cityResult]);\r\n\r\n const memoConfigModal = useMemos([showFilterModal], )\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {showFilterModal && memoConfigModal}\r\n \r\n {/*
*/}\r\n {/*
\r\n */}\r\n \r\n
\r\n );\r\n});\r\nexport default CityTemplate;\r\n","import React from 'react';\r\nimport CityTemplate from '../templates/CityTemplate';\r\n\r\ninterface IProps { }\r\n\r\nconst CityPage: React.FC = () => (\r\n \r\n);\r\n\r\nexport default CityPage;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport Form from 'react-bootstrap/Form'\r\nimport MySelect from '../atoms/MySelect';\r\n\r\nconst LanguageSelector = observer(() => {\r\n const { uiStore } = useStore();\r\n const style: any = document.getElementById('style-direction');\r\n if (style !== null) {\r\n if (uiStore.direction === 'rtl') {\r\n style.href = './bootstrap.rtl.min.css';\r\n // changeLanguage('he')\r\n document.body.classList.remove('dir-ltr');\r\n document.body.classList.add('dir-rtl');\r\n } else {\r\n style.href = './bootstrap.min.css';\r\n // changeLanguage('en')\r\n document.body.classList.remove('dir-rtl');\r\n document.body.classList.add('dir-ltr');\r\n }\r\n }\r\n return (\r\n \r\n\r\n ) => {\r\n uiStore.updateLanguage(e.target.value)\r\n }}\r\n // label={labelText}\r\n data={[{ value: 'he', text: 'Hebrew' }, { value: 'en', text: 'English' }]}\r\n valProp=\"value\"\r\n contentProp=\"text\"\r\n value={uiStore.language}\r\n />\r\n {/*
\r\n \r\n ) => {\r\n uiStore.updateLanguage(e.target.value)\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
*/}\r\n {/* {\r\n uiStore.updateLanguage(e.target.value)\r\n }}>\r\n \r\n \r\n */}\r\n
\r\n );\r\n});\r\nexport default LanguageSelector;","import React from 'react'\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nconst NavigationList: React.FC = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('Home')}\r\n \r\n \r\n {t('Cities')}\r\n \r\n \r\n {t('About')}\r\n \r\n \r\n {t('My-Filters')}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavigationList\r\n","import React from 'react';\r\nimport LanguageSelector from '../molecules/LanguageSelector';\r\nimport logo from '../../assets/safety-logo.png';\r\nimport NavigationList from '../molecules/NavigationList';\r\nimport Navbar from 'react-bootstrap/Navbar'\r\nimport '../../styles/tabs.css'\r\n\r\n\r\ninterface IProps {\r\n title: string\r\n}\r\n\r\nconst styles = {\r\n header: {\r\n marginBottom: '1rem',\r\n position: 'fixed' as 'fixed',\r\n top: '0px',\r\n width: '100%',\r\n zIndex: 5000,\r\n }\r\n};\r\n\r\nexport const Header: React.FC = ({ title }) => {\r\n\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\nexport default Header;\r\n","export default \"data:image/png;base64,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\"","import React, { lazy, Suspense } from 'react';\r\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\r\nimport Card from 'react-bootstrap/Card';\r\nimport HomePage from './components/pages/HomePage';\r\nimport CityPage from './components/pages/CityPage';\r\nimport Header from './components/templates/Headr';\r\nimport Footer from './components/templates/Footer';\r\nimport Loader from './components/atoms/Loader';\r\nimport './i18n';\r\nimport './App.css';\r\nimport Drawer from './components/organisms/Drawer';\r\n// import MyFilters from './components/pages/MyFilters';\r\n// import { useTranslate } from './hooks/transelate'\r\n\r\nconst AboutPage = lazy(() => import('./components/pages/AboutPage'));\r\nconst UpdateImagePage = lazy(() => import('./components/pages/UpdateImagePage'));\r\nconst MyFilters = lazy(() => import('./components/pages/MyFilters'))\r\n\r\n\r\nconst styles = {\r\n app: {\r\n marginTop: '44px',\r\n }\r\n};\r\n\r\nfunction App() {\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\r\n\r\nexport default App;\r\n","// 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.0/8 are 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\nexport function register(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(process.env.PUBLIC_URL, window.location.href);\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, 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, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\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\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.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"," /**\r\n* set the QueryString of the browser by name and vlaue\r\n*/\r\nexport const setBrowserQueryString = (name: string, val: string) => {\r\n const params = new URLSearchParams(location.search);\r\n params.set(name, val);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n}\r\nexport const delBrowserQueryString = (name: string,) => {\r\n const params = new URLSearchParams(location.search);\r\n params.delete(name);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n}","import { useMemo } from \"react\";\r\n\r\nexport function useMemos(dep: any[], item: any) {\r\n return useMemo(() => {\r\n return item\r\n }, dep)\r\n}","import i18n from 'i18next';\r\n// import LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport translationEng from './lng/en/translation.json';\r\nimport translationHeb from './lng/he/translation.json';\r\n\r\ni18n\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n // .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: 'he',\r\n lng: 'he',\r\n debug: true,\r\n // hardcoding translations for the sake of simplicity,\r\n // id more complex - get it from backend.\r\n // i18next has a small plugin that makes it easy.\r\n // learn more: https://github.com/i18next/i18next-xhr-backend\r\n resources: {\r\n en: {\r\n translation: translationEng,\r\n },\r\n he: {\r\n translation: translationHeb,\r\n },\r\n },\r\n interpolation: {\r\n escapeValue: false, // not needed for React as it escapes by default\r\n },\r\n });\r\nexport default i18n;\r\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next';\r\nimport '../../styles/my-select.css'\r\ninterface Props {\r\n data: any[]\r\n onChange: (event: React.ChangeEvent) => void,\r\n valProp?: string\r\n contentProp?: string\r\n value?: string\r\n label?: string\r\n style?: any\r\n cssClass?: string\r\n}\r\n\r\nconst MySelect: React.FC = ({ style, label, onChange, data, valProp, contentProp, value, cssClass='' }) => {\r\n const { t } = useTranslation();\r\n const cssname= \"form-select form-select-sm \" + cssClass;\r\n return (\r\n
\r\n {label && }\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MySelect\r\n","import { observable, action } from 'mobx';\r\nimport { Map } from 'react-leaflet';\r\nimport L from 'leaflet';\r\nimport logger from '../services/logger';\r\nimport RootStore from './RootStore';\r\nimport { setBrowserQueryString, delBrowserQueryString } from '../utils/queryStringUtils';\r\n// import autorun from \"mobx\"\r\n\r\n\r\n\r\n/**\r\n * bbox type - how to fetch data for map \r\n * NO_BBOX - when filter change, get all the points from server\r\n * SERVER_BBOX - on every zoom / movment of the map get only relevent DEFAULT_BOUNDS\r\n * LOCAL_BBOX - on zoom/ movment of map get relevent markers from memory (dataAllInjuries)\r\n */\r\nexport enum BBoxType {\r\n NO_BBOX,\r\n SERVER_BBOX,\r\n LOCAL_BBOX\r\n}\r\n// const INIT_BOUNDS = [L.latLng(32.032, 34.739), L.latLng(32.115, 34.949)];\r\nconst DEFAULT_BOUNDS = [\r\n L.latLng(29.50, 34.22), // most possible south-west point\r\n L.latLng(33.271, 35.946), // most possible north-east point\r\n];\r\nconst QUERY_STR_NAME_LAT = 'lat';\r\nconst QUERY_STR_NAME_LNG = 'lng';\r\nconst QUERY_STR_NAME_MRKRCOLOR = 'mkclr';\r\n\r\nexport default class MapStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n mapRef: React.RefObject> | null = null;\r\n\r\n setMapRef = (mapRef: React.RefObject>) => {\r\n this.mapRef = mapRef;\r\n }\r\n @action\r\n onMapLoad = () => {\r\n console.log('onMapLoad');\r\n const params = new URLSearchParams(window.location.search);\r\n this.setMapZoomByQuery(params);\r\n }\r\n\r\n /////////// set / get from quey string\r\n @action\r\n setStoreByQuery = (params: URLSearchParams) => {\r\n this.setMapCenterByQuery(params);\r\n this.setMapZoomByQuery(params);\r\n this.setMarkerColorTypeByQuery(params);\r\n }\r\n\r\n delQueryStrMapCenter = () => {\r\n delBrowserQueryString(QUERY_STR_NAME_LAT);\r\n delBrowserQueryString(QUERY_STR_NAME_LNG)\r\n }\r\n\r\n setQueryStrMapCenter = (center: L.LatLng) => {\r\n setBrowserQueryString(QUERY_STR_NAME_LAT, center.lat.toFixed(5));\r\n setBrowserQueryString(QUERY_STR_NAME_LNG, center.lng.toFixed(5));\r\n }\r\n setQueryStrMapZoom = (zoom: number) => {\r\n setBrowserQueryString('z', zoom.toString());\r\n }\r\n\r\n @observable\r\n isReadyToRenderMap = false;\r\n\r\n @observable\r\n bboxType: BBoxType = BBoxType.LOCAL_BBOX;\r\n\r\n @observable\r\n mapCenter: L.LatLng = new L.LatLng(32.08, 34.83)\r\n\r\n @action\r\n updateMapCenter = (center: L.LatLng, updateQuery: boolean = true) => {\r\n this.mapCenter = center;\r\n if (updateQuery) {\r\n this.setQueryStrMapCenter(center);\r\n }\r\n }\r\n\r\n @observable\r\n mapZoom: number = 13;\r\n\r\n @action\r\n setMapZoom = (value: number) => {\r\n this.mapZoom = value;\r\n };\r\n\r\n\r\n @action\r\n setMapCenterByQuery = (params: URLSearchParams) => {\r\n const center = this.getCenterByQuery(params);\r\n if (center) {\r\n this.updateMapCenter(center, false);\r\n }\r\n }\r\n getCenterByQuery = (params: URLSearchParams) => {\r\n let center = null\r\n const sLat = params.get(QUERY_STR_NAME_LAT);\r\n const sLon = params.get(QUERY_STR_NAME_LNG);\r\n if (sLat && sLon) {\r\n const lat = Number.parseFloat(sLat);\r\n const lng = Number.parseFloat(sLon)\r\n if (!Number.isNaN(lat) && !Number.isNaN(lng)) {\r\n center = new L.LatLng(lat, lng);\r\n }\r\n }\r\n return center;\r\n }\r\n @action\r\n setMapZoomByQuery = (params: URLSearchParams) => {\r\n const sZoom = params.get('z');\r\n if (sZoom) {\r\n const zoom = Number.parseInt(sZoom);\r\n if (!Number.isNaN(zoom)) {\r\n this.setMapZoom(zoom);\r\n }\r\n }\r\n }\r\n // if this is init-page and query string has center- don't center by city location\r\n isCenterMapByCity = () => {\r\n let doCenterByCity = true;\r\n if (this.rootStore.uiStore.initPage) {\r\n const params = new URLSearchParams(window.location.search);\r\n const center = this.getCenterByQuery(params);\r\n if (center) {\r\n doCenterByCity = false;\r\n }\r\n }\r\n return doCenterByCity;\r\n }\r\n\r\n @action\r\n updateMapCenterByCity = (res: any[]) => {\r\n if (res !== null && res.length > 0) {\r\n const city = res[0];\r\n if (city.lat && city.lon) {\r\n this.updateMapCenter(new L.LatLng(city.lat, city.lon));\r\n this.setMapZoom(13);\r\n }\r\n }\r\n }\r\n\r\n @observable\r\n useSetBounds = true;\r\n\r\n // @observable\r\n // mapBounds: L.LatLngBounds = L.latLngBounds(INIT_BOUNDS);\r\n // @action\r\n // updateBounds = (bounds: L.LatLngBounds) => {\r\n // //logger.log(\"updateBounds\",bounds)\r\n // try {\r\n // this.mapBounds = (bounds);\r\n // } catch (error) {\r\n // logger.error(error)\r\n // }\r\n // }\r\n // @action\r\n // initBounds = () => {\r\n // this.updateBounds(L.latLngBounds(INIT_BOUNDS))\r\n // }\r\n @action\r\n setBounds = (data: any[], citisArr: string[]) => {\r\n if (this.isSetBounds) {\r\n const bunds = this.getBoundsByPointsArr(data);\r\n if (citisArr.length > 0 && citisArr[0] !== '') {\r\n // //this.mapBounds = bunds;\r\n // if (bunds.contains(this.mapCenter))\r\n // this.mapBounds = bunds;\r\n // else\r\n // logger.log(\"worng bounds: \", bunds, this.mapCenter)\r\n } else {\r\n this.updateMapCenter(bunds.getCenter());\r\n // this.mapBounds = bunds;\r\n }\r\n this.isSetBounds = false;\r\n }\r\n }\r\n\r\n @observable\r\n isSetBounds = false;\r\n\r\n @action\r\n updateIsSetBounds = (citisArr: string[], roadSegArr: any[]) => {\r\n if (this.useSetBounds) {\r\n if (citisArr.length > 0 && citisArr[0] !== '') this.isSetBounds = true;\r\n else if (roadSegArr.length > 0 && roadSegArr[0] !== '') this.isSetBounds = true;\r\n }\r\n }\r\n\r\n @observable\r\n heatLayerHidden = true;\r\n\r\n @action\r\n toggleHeatLayer = () => {\r\n this.heatLayerHidden = !this.heatLayerHidden;\r\n }\r\n\r\n\r\n ////////// markers /////////////////\r\n @observable\r\n useSmallMarkers = false;\r\n\r\n @action\r\n toggleUseSmallMarkers = () => {\r\n this.useSmallMarkers = !this.useSmallMarkers;\r\n }\r\n\r\n @observable\r\n markerIconsType = \"Vehicle\";\r\n\r\n @action\r\n setMarkerIconsType = (value: string) => {\r\n this.markerIconsType = value;\r\n }\r\n markerIconTypesArr = [\r\n { val: \"general\", text: 'general' },\r\n { val: \"Vehicle\", text: 'Vehicle' },\r\n ];\r\n\r\n @observable\r\n markerColorType = \"Severity\";\r\n\r\n @action\r\n setMarkerColorType = (value: string) => {\r\n this.markerColorType = value;\r\n setBrowserQueryString(QUERY_STR_NAME_MRKRCOLOR, value);\r\n }\r\n @action\r\n setMarkerColorTypeByQuery = (params: URLSearchParams) => {\r\n const val = params.get(QUERY_STR_NAME_MRKRCOLOR);\r\n if (val !== null) {\r\n this.setMarkerColorType(val);\r\n }\r\n }\r\n setBrowserQueryStringByMarkerColor = (params: URLSearchParams) => {\r\n params.set(QUERY_STR_NAME_MRKRCOLOR, (this.markerColorType));\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n }\r\n\r\n markerColorTypesArr = [\r\n { val: \"Severity\", text: 'Severity' },\r\n { val: \"Vehicle\", text: 'Vehicle' },\r\n { val: 'AccidentType', text: 'AccidentType' },\r\n { val: 'SelfOrNotAcc', text: 'SelfOrNotAcc' },\r\n { val: \"DayNight\", text: 'DayNight' },\r\n { val: \"Gender\", text: 'Gender' },\r\n { val: 'RoadType', text: 'RoadType' }\r\n ];\r\n\r\n ////// bounds //////////////////////\r\n getBoundsByPointsArr = (data: any[]) => {\r\n // logger.log(\"setBounds!\")\r\n let arr: L.LatLng[] = [];\r\n let lastPoint: L.LatLng = L.latLng(0, 0);\r\n data.forEach((x) => {\r\n if (x.latitude !== null && x.longitude !== null) {\r\n const p = new L.LatLng(x.latitude, x.longitude);\r\n if ((lastPoint.lat === 0 && lastPoint.lng === 0)\r\n || x.latitude !== lastPoint.lat\r\n || x.longitude !== lastPoint.lng) {\r\n arr.push(p);\r\n // prevent insertion of duplicate same point\r\n lastPoint = p;\r\n }\r\n }\r\n });\r\n // bounds for single point\r\n if (arr.length === 1) {\r\n arr.length = 0; // clean tha array\r\n arr.push(L.latLng(lastPoint.lat + 0.01, lastPoint.lng + 0.01));\r\n arr.push(L.latLng(lastPoint.lat - 0.01, lastPoint.lng - 0.01));\r\n }\r\n // in case no lat/lon info\r\n if (arr.length < 2) arr = DEFAULT_BOUNDS;\r\n const bounds = L.latLngBounds(arr);\r\n return bounds;\r\n }\r\n\r\n getBounds2 = (data: any[]) => {\r\n if (data.length === 0) return L.latLngBounds(DEFAULT_BOUNDS);\r\n const bounds = {\r\n south: 200, north: -200, west: 200, east: -200,\r\n };\r\n data.forEach((x) => {\r\n if (x.latitude !== null && x.longitude !== null) {\r\n bounds.south = Math.min(x.latitude, bounds.south);\r\n bounds.north = Math.max(x.latitude, bounds.north);\r\n bounds.west = Math.min(x.longitude, bounds.west);\r\n bounds.east = Math.max(x.longitude, bounds.east);\r\n }\r\n });\r\n // bounds for single point\r\n if (bounds.south === bounds.north) {\r\n bounds.south -= 0.01;\r\n bounds.north += 0.01;\r\n bounds.west -= 0.01;\r\n bounds.east += 0.01;\r\n }\r\n const b = L.latLngBounds([bounds.south, bounds.west], [bounds.east, bounds.north]);\r\n return b;\r\n }\r\n\r\n @observable\r\n dataMarkersInBounds: any[] = []\r\n\r\n @action\r\n updateDataMarkersInBounds = (data: any[]) => {\r\n this.dataMarkersInBounds = data;\r\n }\r\n @action\r\n updateMapBounds = () => {\r\n try {\r\n //get markers\r\n if (this.bboxType !== BBoxType.NO_BBOX) this.getMarkersInBBox();\r\n //update query string by map\r\n this.setQueryStrMapCenterByBounds()\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n };\r\n setQueryStrMapCenterByBounds = () => {\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n if (mapBounds) {\r\n const center = mapBounds.getCenter()\r\n this.setQueryStrMapCenter(center);\r\n this.setQueryStrMapZoom(this.mapRef.current.leafletElement.getZoom());\r\n }\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n }\r\n /* \r\n setMapZoom =(zoom: number) =>{\r\n console.log('mapRef',this.mapRef)\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n this.mapRef.current.leafletElement.setZoom(zoom);\r\n const zoom2 = this.mapRef.current.leafletElement.getZoom();\r\n console.log('zoom2', zoom2)\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n } */\r\n\r\n getMarkersInBBox = () => {\r\n if (this.bboxType === BBoxType.LOCAL_BBOX) {\r\n this.getMarkersInLocalBBox(0.02);\r\n } else if (this.bboxType === BBoxType.SERVER_BBOX) {\r\n this.submintGetMarkersBBox();\r\n }\r\n }\r\n\r\n getMarkersInLocalBBox = (boundsMargin: number) => {\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n const west = mapBounds.getWest() - boundsMargin;\r\n const east = mapBounds.getEast() + boundsMargin;\r\n const south = mapBounds.getSouth() - boundsMargin;\r\n const north = mapBounds.getNorth() + boundsMargin;\r\n const data = this.rootStore.filterStore.dataAllInjuries\r\n .filter((x) => x.latitude >= south\r\n && x.latitude <= north && x.longitude >= west && x.longitude <= east);\r\n // const zoom = this.mapRef.current.leafletElement.getZoom();\r\n // console.log(zoom, east -west ,data.length); \r\n this.updateDataMarkersInBounds(data);\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n }\r\n\r\n submintGetMarkersBBox = () => {\r\n // if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n // const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n // const filter = this.rootStore.filterStore.getFilterForPost(mapBounds, true);\r\n // fetchFilter(filter, 'latlon')\r\n // .then((data: any[] | undefined) => {\r\n // if (data !== null && data !== undefined) {\r\n // this.updateDataMarkersInBounds(data);\r\n // }\r\n // });\r\n }\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/main.57815398.chunk.js b/build/static/js/main.57815398.chunk.js deleted file mode 100644 index eeb6242..0000000 --- a/build/static/js/main.57815398.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(this.webpackJsonpclient=this.webpackJsonpclient||[]).push([[2],{11:function(e,t,r){"use strict";r.d(t,"a",(function(){return $r}));var a,i,n,o,s,c,l,u,p,h,b,y,d,f,j,g,m,v,O,w,T,x,S,C,B,F,k,V,z,M,A=r(0),L=r.n(A),I=r(12),N=r(44),D=r(67),R=r(97),P=r(4),G=r(30),Q=r(3),Y=(r(31),r(2)),W=(a=function e(t,r,a){Object(I.a)(this,e),Object(P.a)(this,"checked",i,this),this.label=void 0,this.filters=void 0,this.label=t,this.checked=r,this.filters=a},i=Object(Q.a)(a.prototype,"checked",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a),_=r(195),K=r(196),q=r(197),E=r(198),H=r(49),J=(n=function(){function e(t,r){var a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,this.arrValues=void 0,this.isArrValuesEmptyOnAllCheck=void 0,Object(P.a)(this,"arrTypes",o,this),this.allTypesOption=void 0,Object(P.a)(this,"text",s,this),Object(P.a)(this,"setFilter",c,this),Object(P.a)(this,"setQueryVals",l,this),this.getFilter=function(){var e=a.arrValues.join(",");return 0==a.arrValues.length?"":"&".concat(a.queryColName,"=").concat(e)},this.setBrowserQueryString=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===a.arrValues.length&&t)e.delete(a.queryColName);else{var r=a.arrValues.join(",");e.set(a.queryColName,r)}},Object(P.a)(this,"setText",u,this),this.name=t,this.queryColName=r,this.arrTypes=[],this.arrValues=[],this.isArrValuesEmptyOnAllCheck=n,this.allTypesOption=i,this.text=""}return Object(G.a)(e,[{key:"isAllValsFalse",get:function(){return 0===this.arrTypes.reduce((function(e,t){return t.checked?++e:e}),0)}},{key:"setValuesByQuery",value:function(e){var t=e.get(this.queryColName);if(null!==t){var r=t.split(",").map(Number);this.arrTypes.forEach((function(e){var t=e.filters.some((function(e){return r.includes(e)}));e.checked=t}))}this.setQueryVals()}}]),e}(),o=Object(Q.a)(n.prototype,"arrTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=Object(Q.a)(n.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Object(Q.a)(n.prototype,"isAllValsFalse",[Y.g],Object.getOwnPropertyDescriptor(n.prototype,"isAllValsFalse"),n.prototype),c=Object(Q.a)(n.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){-1===e.allTypesOption?e.arrTypes[t].checked=r:t===e.allTypesOption?e.arrTypes.forEach((function(t,a){return t.checked=a===e.allTypesOption?r:!r})):(e.arrTypes[e.allTypesOption].checked=!1,e.arrTypes[t].checked=r),e.setQueryVals()}}}),l=Object(Q.a)(n.prototype,"setQueryVals",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=!0,r=[];if(e.allTypesOption>-1&&e.arrTypes[e.allTypesOption].checked)t=!0;else{var a,i=e.arrTypes.values(),n=Object(R.a)(i);try{for(n.s();!(a=n.n()).done;){var o=a.value;o.checked?r=[].concat(Object(D.a)(r),Object(D.a)(o.filters)):t=!1}}catch(s){n.e(s)}finally{n.f()}}t&&e.isArrValuesEmptyOnAllCheck&&(r=[]),e.arrValues=r}}}),Object(Q.a)(n.prototype,"setValuesByQuery",[Y.f],Object.getOwnPropertyDescriptor(n.prototype,"setValuesByQuery"),n.prototype),u=Object(Q.a)(n.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){t?(e.text=e.arrTypes.filter((function(t,r){return t.checked&&r!==e.allTypesOption})).map((function(e){return H.a.t(e.label)})).join(", "),-1===e.allTypesOption&&0===e.arrValues.length&&(e.text="")):e.text=e.arrTypes.filter((function(e){return e.checked})).map((function(e){return H.a.t(e.label)})).join(", ")}}}),n),U=function(){var e=new J("VehicleType","vcl",0);return e.arrTypes.push(new W("vclType.all",!0,[])),e.arrTypes.push(new W("vclType.pedestrian",!1,[0])),e.arrTypes.push(new W("vclType.mobilityscooter",!1,[22])),e.arrTypes.push(new W("vclType.bicycle",!1,[15])),e.arrTypes.push(new W("vclType.e-scooter",!1,[21])),e.arrTypes.push(new W("vclType.e-bike",!1,[23])),e.arrTypes.push(new W("vclType.motorcycle1",!1,[8])),e.arrTypes.push(new W("vclType.motorcycle2",!1,[9])),e.arrTypes.push(new W("vclType.motorcycle3",!1,[10])),e.arrTypes.push(new W("vclType.motorcycle4",!1,[19])),e.arrTypes.push(new W("vclType.car",!1,[1])),e.arrTypes.push(new W("vclType.taxi",!1,[12])),e.arrTypes.push(new W("vclType.tranzit",!1,[2])),e.arrTypes.push(new W("vclType.tender",!1,[3])),e.arrTypes.push(new W("vclType.minbuss",!1,[18])),e.arrTypes.push(new W("vclType.bus",!1,[11])),e.arrTypes.push(new W("vclType.truck1",!1,[24])),e.arrTypes.push(new W("vclType.truck2",!1,[25])),e.arrTypes.push(new W("vclType.truck3",!1,[5])),e.arrTypes.push(new W("vclType.truck4",!1,[6])),e.arrTypes.push(new W("vclType.truck5",!1,[7])),e.arrTypes.push(new W("vclType.tractor",!1,[14])),e.arrTypes.push(new W("vclType.train",!1,[16])),e.arrTypes.push(new W("vclType.other",!1,[17])),e},X=function(e,t){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,n=e;return n+="&gb=".concat(t),""!==r&&(n+="&gb2=".concat(r)),0!==i&&(n+="&sort=".concat(i)),0!==a&&(n+="&lim=".concat(a)),n},Z=function(e,t){var r="";return e>=0&&t>e&&(r+="&p1=".concat(e,"&p2=").concat(t)),r},$=function(e){var t="&lat=".concat(e.getSouth(),",").concat(e.getNorth());return t+="&lon=".concat(e.getWest(),",").concat(e.getEast())},ee=(p=function e(t,r,a){var i=this;Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,Object(P.a)(this,"arrValues",h,this),Object(P.a)(this,"text",b,this),this.isStringValues=void 0,Object(P.a)(this,"setFilter",y,this),this.setBrowserQueryString=function(e){if(i.arrValues.length>0&&""!==i.arrValues[0]){var t="";i.isStringValues?t+=i.arrValues.map((function(e){return"".concat(e.trim())})).join(","):t+=i.arrValues.map((function(e){return e})).join(","),e.set(i.queryColName,t)}else e.delete(i.queryColName)},this.getFilter=function(){var e="";return i.arrValues.length>0&&""!==i.arrValues[0]&&(e+="&".concat(i.queryColName,"="),i.isStringValues?e+=i.arrValues.map((function(e){return'"'.concat(e.trim(),'"')})).join(","):e+=i.arrValues.map((function(e){return e})).join(",")),e},Object(P.a)(this,"setText",d,this),this.name=t,this.queryColName=r,this.arrValues=[],this.isStringValues=a,this.text=""},h=Object(Q.a)(p.prototype,"arrValues",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=Object(Q.a)(p.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=Object(Q.a)(p.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.arrValues=t}}}),d=Object(Q.a)(p.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.text=e.arrValues.join(", ")}}}),p),te=r(96),re=r(114),ae=r(110),ie=(f=function e(t,r){var a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;Object(I.a)(this,e),this.name=void 0,this.queryColName=void 0,this.arrTypes=void 0,Object(P.a)(this,"queryValue",j,this),Object(P.a)(this,"text",g,this),this.allTypesOption=void 0,Object(P.a)(this,"setFilter",m,this),this.isEmpty=function(){return a.allTypesOption>=0&&a.queryValue===a.arrTypes[a.allTypesOption]},this.setBrowserQueryString=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(a.isEmpty())t&&e.delete(a.queryColName);else{var r="";"string"===typeof a.queryValue?r+=a.queryValue:r+=a.queryValue.toString(),e.set(a.queryColName,r)}},this.setValuesByQuery=function(e){var t=e.get(a.queryColName);null!==t&&("string"===typeof a.queryValue?a.setFilter(t):a.setFilter(parseInt(t)))},this.getFilter=function(){var e="";return a.isEmpty()||(e+="&".concat(a.queryColName,"="),"string"===typeof a.queryValue?e+=a.queryValue:e+=a.queryValue.toString()),e},Object(P.a)(this,"setText",v,this),this.name=t,this.queryColName=r,this.arrTypes=n,this.queryValue=o,this.allTypesOption=i,this.text=""},j=Object(Q.a)(f.prototype,"queryValue",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=Object(Q.a)(f.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=Object(Q.a)(f.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.queryValue=t}}}),v=Object(Q.a)(f.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){"string"===typeof e.queryValue?e.text=e.queryValue:e.text=e.queryValue.toString()}}}),f),ne=(O=function(e){Object(re.a)(r,e);var t=Object(ae.a)(r);function r(){var e;Object(I.a)(this,r);for(var a=arguments.length,i=new Array(a),n=0;n=0&&e.queryValue===e.arrTypes[e.allTypesOption].val},Object(P.a)(e,"setText",w,Object(te.a)(e)),e}return r}(ie),w=Object(Q.a)(O.prototype,"setText",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t="";if(!e.isEmpty()){var r=e.arrTypes.find((function(t){return t.val===e.queryValue}));r&&(t="".concat(H.a.t(r.text))),e.text=t}}}}),O),oe=["2015","2016","2017","2018","2019","2020"],se=[{val:'{"min":-1,"max":-1}',text:"all"},{val:'{"min":200000,"max":1000000}',text:"200K-1000K"},{val:'{"min":100000,"max":200000}',text:"100K-200K"},{val:'{"min":50000,"max":100000}',text:"50K-100K"},{val:'{"min":20000,"max":50000}',text:"20K-50K"},{val:'{"min":10000,"max":20000}',text:"10K-20K"},{val:'{"min":0,"max":10000}',text:"0-10K"}],ce=function(e){console.log("reGroupResultIsSelfAcc",e);var t=new Array;return t.push({_id:"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05e2\u05e6\u05de\u05d9\u05ea",count:0}),t.push({_id:"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05dc\u05d0 \u05e2\u05e6\u05de\u05d9\u05ea",count:0}),e.forEach((function(e){le(e._id)?t[0].count+=e.count:t[1].count+=e.count})),t},le=function(e){var t=!1;switch(e){case"\u05e2\u05e6\u05de\u05d9\u05ea":case"\u05d4\u05d7\u05dc\u05e7\u05d4":case"\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea":case"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd":case"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4":case"\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4":case"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1":case"\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2":t=!0;break;default:t=!1}return t},ue=(T=function e(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4?arguments[4]:void 0;Object(I.a)(this,e),Object(P.a)(this,"text",x,this),this.value=void 0,this.limit=void 0,this.sort=void 0,this.reGroupResultFunc=void 0,this.text=t,this.value=r,this.limit=a,this.sort=i,n&&(this.reGroupResultFunc=n)},x=Object(Q.a)(T.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T),pe=function(){var e=new Map;return e.set("sev",new ue("Severity","sev")),e.set("injt",new ue("TypeInjured","injt")),e.set("vcl",new ue("Vehicle","vcl")),e.set("sex",new ue("Gender","sex")),e.set("age",new ue("Age","age")),e.set("pt",new ue("Population","pt")),e.set("year",new ue("Year","year")),e.set("mn",new ue("Month","mn")),e.set("dn",new ue("DayNight","dn")),e.set("wd",new ue("WeekDay","wd")),e.set("rt",new ue("RoadType","rt")),e.set("lca",new ue("LocationAccuracy","lca")),e.set("city",new ue("City","city",15,-1)),e.set("cpop",new ue("CityByPop","cpop")),e.set("st",new ue("Street","st",15,-1)),e.set("rd",new ue("Road","rd",10,-1)),e.set("acc",new ue("AccidentType","acc")),e.set("selfacc",new ue("SelfOrNotAcc","selfacc",0,0,ce)),e.set("vcli",new ue("Vehicles","vcli")),e.set("sp",new ue("SpeedLimit","sp")),e.set("rw",new ue("RoadWidth","rw")),e.set("ml",new ue("Separator","ml")),e.set("ol",new ue("OneLane","ol")),e},he=function(){var e={};return e.Severity=new ue("Severity","injury_severity_hebrew"),e.TypeInjured=new ue("TypeInjured","injured_type_hebrew"),e.Vehicle=new ue("Vehicle","vehicle_vehicle_type_hebrew"),e.Gender=new ue("Gender","sex_hebrew"),e.Age=new ue("Age","age_group_hebrew"),e.Year=new ue("Year","accident_year"),e.Month=new ue("Month","accident_month"),e.DayNight=new ue("DayNight","day_night_hebrew"),e.WeekDay=new ue("WeekDay","day_in_week_hebrew"),e.RoadType=new ue("RoadType","road_type_hebrew"),e.City=new ue("City","accident_yishuv_name",10),e.CityByPop=new ue("CityByPop","accident_yishuv_name"),e.Street=new ue("Street","street1_hebrew",10),e.Road=new ue("Road","road1",10),e.AccidentType=new ue("AccidentType","accident_type_hebrew"),e.Vehicles=new ue("Vehicles","vehicles"),e.SpeedLimit=new ue("SpeedLimit","speed_limit_hebrew"),e.RoadWidth=new ue("RoadWidth","road_width_hebrew"),e.Separator=new ue("Separator","multi_lane_hebrew"),e.OneLane=new ue("OneLane","one_lane_hebrew"),e},be=(S=function e(t,r){var a=this;Object(I.a)(this,e),Object(P.a)(this,"text",C,this),this.name=void 0,this.vals=void 0,this.revTrnas=function(e){return""===e?"":a.vals[e].name},this.fixStrcutTable=function(e){return e.map((function(e){var t=e.count.map((function(e){var t=a.revTrnas(e.grp2);return'"'.concat(t,'":').concat(e.count)})).join(","),r=e._id;null!==r&&void 0!==r&&"string"===typeof r&&(r=r.replace('"','\\"'));var i='{"_id":"'.concat(r,'",').concat(t,"}");return i=JSON.parse(i)}))},this.getBars=function(){return Object.entries(a.vals).map((function(e){var t=Object(N.a)(e,2),r=(t[0],t[1]);return{key:r.name,color:r.color}}))},this.getColumns=function(){var e=Object.entries(a.vals).map((function(e){var t=Object(N.a)(e,2);t[0];return t[1].name}));return e.unshift("_id"),e},this.text=t,this.name=r,this.vals={}},C=Object(Q.a)(S.prototype,"text",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S),ye=function e(t,r){Object(I.a)(this,e),this.name=void 0,this.color=void 0,this.name=t,this.color=r},de=(B=function e(t,r,a){var i=this;Object(I.a)(this,e),this.dict=void 0,this.queryColName=void 0,Object(P.a)(this,"groupBy",F,this),Object(P.a)(this,"setFilter",k,this),Object(P.a)(this,"arrGroups",V,this),Object(P.a)(this,"setArrGroups",z,this),this.setBrowserQueryString=function(){var e=new URLSearchParams(location.search);i.groupBy instanceof ue?e.set(i.queryColName,i.groupBy.value):i.groupBy instanceof be&&e.set(i.queryColName,i.groupBy.name),window.history.replaceState({},"","".concat(location.pathname,"?").concat(e.toString()))},Object(P.a)(this,"setValuesByQuery",M,this),this.dict=t,this.queryColName=r,this.groupBy=this.dict.get(a),this.setArrGroups()},F=Object(Q.a)(B.prototype,"groupBy",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=Object(Q.a)(B.prototype,"setFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.groupBy=e.dict.get(t)}}}),V=Object(Q.a)(B.prototype,"arrGroups",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),z=Object(Q.a)(B.prototype,"setArrGroups",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.arrGroups=Array.from(e.dict,(function(e){var t=Object(N.a)(e,2);return{value:t[0],text:t[1].text}}))}}}),M=Object(Q.a)(B.prototype,"setValuesByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get(e.queryColName);null!==r&&e.setFilter(r)}}}),B),fe=function(){var e=new Map,t=new be("Severity","sev");t.vals["\u05d4\u05e8\u05d5\u05d2"]=new ye("dead","#8884D8"),t.vals["\u05e4\u05e6\u05d5\u05e2 \u05e7\u05e9\u05d4"]=new ye("severly-injured","#82CA9D"),e.set(t.name,t);var r=new be("Gender","sex");r.vals["\u05d6\u05db\u05e8"]=new ye("male","#8884D8"),r.vals["\u05e0\u05e7\u05d1\u05d4"]=new ye("female","#82CA9D"),e.set(r.name,r);var a=new be("RoadType","rt");a.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-junction","#559E54"),a.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-road","#305A30"),a.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-junction","#1258DC"),a.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-road","#0A337F"),e.set(a.name,a);var i=new be("Year","year");i.vals[2015]=new ye("2015","#82CA9D"),i.vals[2016]=new ye("2016","#559E54"),i.vals[2017]=new ye("2017","#559E54"),i.vals[2018]=new ye("2018","#305A30"),i.vals[2019]=new ye("2019","#305A30"),i.vals[2020]=new ye("2020","#1258DC"),e.set(i.name,i);var n=new be("DayNight","dn");n.vals["\u05d9\u05d5\u05dd"]=new ye("day","#82CA9D"),n.vals["\u05dc\u05d9\u05dc\u05d4"]=new ye("night","#559E54"),e.set(n.name,n);var o=new be("TypeInjured","injt");o.vals["\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("pedestrian","#82CA9D"),o.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd"]=new ye("cyclist-d","#559E54"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("cyclist-p","#559E54"),o.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-d","#305A30"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-p","#305A30"),o.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2"]=new ye("motorcycle-d","#1258DC"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("motorcycle-p","#1258DC"),o.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-d","#0A337F"),o.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-p","#0A337F"),e.set(o.name,o);var s=new be("AccidentType","acc");return s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("accType.ped","#e3eaa7"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05e6\u05d3"]=new ye("accType.front-side","#03045E"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05d7\u05d6\u05d9\u05ea"]=new ye("accType.front-front","#4673FA"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d7\u05d6\u05d9\u05ea \u05d1\u05d0\u05d7\u05d5\u05e8"]=new ye("accType.front-rear","#00b4d8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e6\u05d3 \u05d1\u05e6\u05d3"]=new ye("accType.side-side","#90e0ef"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd"]=new ye("accType.obstacle3","#ef6351"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4"]=new ye("accType.obstacle2","#f38375"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05e9\u05e0\u05e2\u05e6\u05e8 \u05dc\u05dc\u05d0 \u05d7\u05e0\u05d9\u05d4"]=new ye("accType.obstacle1","#f7a399"),s.vals["\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4"]=new ye("accType.offroad","#fbc3bc"),s.vals["\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea"]=new ye("accType.turning-over","#FA6E2D"),s.vals["\u05d4\u05d7\u05dc\u05e7\u05d4"]=new ye("accType.slip","#BD5422"),s.vals["\u05d0\u05d7\u05e8"]=new ye("accType.other","#a53860"),s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1"]=new ye("accType.passenger","#31572c"),s.vals["\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2"]=new ye("accType.falloff","#4f772d"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d1\u05d7\u05d6\u05d9\u05ea"]=new ye("accType.rear-front","#CAF0F8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d0\u05dc \u05e6\u05d3"]=new ye("accType.rear-side","#CAF0F8"),s.vals["\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05d1\u05e2\u05dc \u05d7\u05d9\u05d9\u05dd"]=new ye("accType.animal","#ecf39e"),s.vals["\u05e4\u05d2\u05d9\u05e2\u05d4 \u05de\u05de\u05d8\u05e2\u05df \u05e9\u05dc \u05e8\u05db\u05d1"]=new ye("accType.cargo","#0A337F"),e.set(s.name,s),e},je=function(){var e={};return e.Severity=new be("Severity","injury_severity_hebrew"),e.Severity.vals["\u05d4\u05e8\u05d5\u05d2"]=new ye("dead","#8884D8"),e.Severity.vals["\u05e4\u05e6\u05d5\u05e2 \u05e7\u05e9\u05d4"]=new ye("severly-injured","#82CA9D"),e.Gender=new be("Gender","sex_hebrew"),e.Gender.vals["\u05d6\u05db\u05e8"]=new ye("male","#8884D8"),e.Gender.vals["\u05e0\u05e7\u05d1\u05d4"]=new ye("female","#82CA9D"),e.RoadType=new be("RoadType","road_type_hebrew"),e.RoadType.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-junction","#559E54"),e.RoadType.vals["\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("urban-road","#305A30"),e.RoadType.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-junction","#1258DC"),e.RoadType.vals["\u05dc\u05d0-\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea \u05dc\u05d0 \u05d1\u05e6\u05d5\u05de\u05ea"]=new ye("non-urban-road","#0A337F"),e.Year=new be("Year","accident_year"),e.Year.vals[2015]=new ye("2015","#82CA9D"),e.Year.vals[2016]=new ye("2016","#559E54"),e.Year.vals[2017]=new ye("2017","#559E54"),e.Year.vals[2018]=new ye("2018","#305A30"),e.Year.vals[2019]=new ye("2019","#305A30"),e.TypeInjured=new be("TypeInjured","injured_type_hebrew"),e.TypeInjured.vals["\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc"]=new ye("pedestrian","#82CA9D"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd"]=new ye("cyclist-d","#559E54"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("cyclist-p","#559E54"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-d","#305A30"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"]=new ye("inj-unknown-p","#305A30"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2"]=new ye("motorcycle-d","#1258DC"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)"]=new ye("motorcycle-p","#1258DC"),e.TypeInjured.vals["\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-d","#0A337F"),e.TypeInjured.vals["\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8"]=new ye("wheels4+-p","#0A337F"),e},ge=r(13),me=r.n(ge),ve=r(21),Oe=new function e(){Object(I.a)(this,e),this.fetchGetList=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/",a+=t,e.next=4,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((i=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",i.json());case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchGetGroupBy=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r,a;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="/api/v1/accident/groupby/",r+=t,e.next=4,fetch(r,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((a=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",a.json());case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.fetchGetCount=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/get",a+=t,e.next=4,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 4:if((i=e.sent).ok){e.next=7;break}return e.abrupt("return",[]);case 7:return e.abrupt("return",i.json());case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchFilter=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/accident/".concat(r),e.next=3,fetch(a,{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchAggregatFilter=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="main"===r?"/api/v1/accident/aggmain":"/api/v1/accident/agglatlon",e.next=3,fetch(a,{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.fetchAggregate=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"/api/v1/accident/agg",e.next=3,fetch("/api/v1/accident/agg",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:t});case 3:if((r=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",r.json());case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},we=function(){function e(){Object(I.a)(this,e),this.getCityByNameHe=function(e,t){var r="/api/v1/city?name_he=".concat(e);fetch(r,{method:"GET",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"}).then((function(e){return e.json()})).then((function(e){t(e)})).catch((function(e){console.log("srv.getCityByNameHe",e)}))}}return Object(G.a)(e,[{key:"getCitiesNames",value:function(e,t){var r="/api/v1/city?lang=".concat(e);fetch(r,{method:"GET",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"}).then((function(e){return e.json()})).then((function(e){t(e)}))}}]),e}(),Te=new(r(203).a)("saftyData");function xe(e){return Se.apply(this,arguments)}function Se(){return(Se=Object(ve.a)(me.a.mark((function e(t){return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Te.injuerd.bulkPut(t);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ce(e){return Be.apply(this,arguments)}function Be(){return(Be=Object(ve.a)(me.a.mark((function e(t){var r,a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==t.length){e.next=6;break}return e.next=3,Te.injuerd.toArray();case 3:r=e.sent,e.next=14;break;case 6:return a=t.shift(),e.next=9,Te.injuerd.where(a.filterName).between(a.startYear,a.endYear,!0,!0);case 9:return i=e.sent,t.forEach((function(e){i=i.and((function(t){if(1===e.values.length)return t[e.filterName]===e.values[0];var r=!1;return e.values.forEach((function(a){return r=r||t[e.filterName]===a})),r}))})),e.next=13,i.toArray();case 13:r=e.sent;case 14:return e.abrupt("return",r);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Te.version(1).stores({injuerd:"id++,_id, accident_id, accident_year, accident_timestamp, sex_hebrew, accident_yishuv_name ,road_type_hebrew"});var Fe,ke,Ve,ze,Me,Ae,Le,Ie,Ne,De,Re,Pe,Ge,Qe,Ye,We,_e,Ke,qe,Ee,He,Je,Ue,Xe,Ze,$e,et,tt,rt,at,it,nt,ot,st,ct,lt,ut,pt,ht,bt,yt,dt,ft,jt,gt,mt,vt,Ot,wt,Tt,xt,St,Ct,Bt,Ft,kt,Vt,zt,Mt,At,Lt,It,Nt,Dt,Rt,Pt,Gt,Qt,Yt,Wt,_t,Kt,qt,Et,Ht,Jt,Ut,Xt,Zt,$t,er,tr,rr,ar,ir,nr,or,sr,cr,lr,ur,pr,hr,br,yr,dr,fr,jr,gr,mr,vr,Or,wr,Tr,xr,Sr,Cr,Br,Fr,kr,Vr,zr,Mr,Ar,Lr,Ir,Nr,Dr,Rr,Pr=r(36),Gr=r(74),Qr=function(){function e(){Object(I.a)(this,e)}return Object(G.a)(e,[{key:"getLoaclStorage",value:function(e){var t=localStorage.getItem(e);return t?JSON.parse(t):[]}},{key:"setLocalStorage",value:function(e,t){localStorage.setItem(e,JSON.stringify(t))}}]),e}(),Yr=r(77),Wr=(Fe=function(){function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.useGetFetch=!0,this.localStorageService=void 0,this.rootStore=void 0,Object(P.a)(this,"filtersArrayLocalStorage",ke,this),Object(P.a)(this,"setCurrentFiltersArrayLocalStorage",Ve,this),Object(P.a)(this,"updateFilterArrayLocalStorage",ze,this),Object(P.a)(this,"showAllVehicleTypes",Me,this),Object(P.a)(this,"updateShowAllVehicleTypes",Ae,this),Object(P.a)(this,"isUpdateFromUrl",Le,this),Object(P.a)(this,"setIsUpdateFromUrl",Ie,this),Object(P.a)(this,"formCardKey",Ne,this),Object(P.a)(this,"setFormCardKey",De,this),Object(P.a)(this,"injurySeverity",Re,this),Object(P.a)(this,"updateInjurySeverity",Pe,this),Object(P.a)(this,"casualtiesNames",Ge,this),Object(P.a)(this,"setCasualtiesNames",Qe,this),Object(P.a)(this,"isMultipleCities",Ye,this),Object(P.a)(this,"setIsMultipleCities",We,this),Object(P.a)(this,"cities",_e,this),Object(P.a)(this,"updateCities",Ke,this),Object(P.a)(this,"cityResult",qe,this),Object(P.a)(this,"streets",Ee,this),Object(P.a)(this,"updateStreets",He,this),Object(P.a)(this,"roads",Je,this),Object(P.a)(this,"setRoads",Ue,this),Object(P.a)(this,"cityPopSizeRange",Xe,this),Object(P.a)(this,"setCityPopSizeRange",Ze,this),Object(P.a)(this,"roadSegment",$e,this),Object(P.a)(this,"updateRoadSegment",et,this),Object(P.a)(this,"roadTypes",tt,this),Object(P.a)(this,"updateRoadType",rt,this),Object(P.a)(this,"locationAccuracy",at,this),Object(P.a)(this,"updateLocationAccuracy",it,this),Object(P.a)(this,"startYear",nt,this),Object(P.a)(this,"setStartYear",ot,this),Object(P.a)(this,"endYear",st,this),Object(P.a)(this,"setEndYear",ct,this),Object(P.a)(this,"dayNight",lt,this),Object(P.a)(this,"updateDayNight",ut,this),Object(P.a)(this,"genderTypes",pt,this),Object(P.a)(this,"updateGenderType",ht,this),Object(P.a)(this,"ageTypes",bt,this),Object(P.a)(this,"updateAgeType",yt,this),Object(P.a)(this,"populationTypes",dt,this),Object(P.a)(this,"updatePopulationType",ft,this),Object(P.a)(this,"accidentType",jt,this),Object(P.a)(this,"updateAccidentType",gt,this),Object(P.a)(this,"injTypes",mt,this),Object(P.a)(this,"updateInjuerdType",vt,this),Object(P.a)(this,"vehicleType",Ot,this),Object(P.a)(this,"updateVehicleType",wt,this),Object(P.a)(this,"involvedVehicle",Tt,this),Object(P.a)(this,"setInvolvedVehicle",xt,this),Object(P.a)(this,"speedLimit",St,this),this.updateSpeedLimit=function(e,t){r.updateFilters(r.speedLimit,e,t)},Object(P.a)(this,"roadWidth",Ct,this),Object(P.a)(this,"updateRoadWidth",Bt,this),Object(P.a)(this,"separator",Ft,this),Object(P.a)(this,"updateSeparator",kt,this),Object(P.a)(this,"oneLane",Vt,this),Object(P.a)(this,"updateOneLane",zt,this),Object(P.a)(this,"injuriesCount",Mt,this),Object(P.a)(this,"setInjuriesCount",At,this),Object(P.a)(this,"isLoadingInjuriesCount",Lt,this),Object(P.a)(this,"dataAllInjuries",It,this),Object(P.a)(this,"updateAllInjuries",Nt,this),Object(P.a)(this,"dataMarkersLean",Dt,this),Object(P.a)(this,"updateDataMarkersLean",Rt,this),Object(P.a)(this,"dataByYears",Pt,this),Object(P.a)(this,"dataFilterdByYears",Gt,this),Object(P.a)(this,"setDataFilterdByYears",Qt,this),Object(P.a)(this,"dataFilterd",Yt,this),Object(P.a)(this,"dataGroupby2",Wt,this),Object(P.a)(this,"isLoading",_t,this),Object(P.a)(this,"updateGroupby",Kt,this),Object(P.a)(this,"groupByDict",qt,this),Object(P.a)(this,"submitGroupByYears",Et,this),this.padDataYearsWith0=function(e){for(var t=[],a=Number(r.startYear.queryValue);a<=Number(r.endYear.queryValue);a+=1)t.push(a);return t.map((function(t){var r=e.find((function(e){return e._id===t})),a=r?r.count:0;return{_id:t,count:a}}))},this.getCountFromGroupByRes=function(e){return e.reduce((function(e,t){return e+t.count}),0)},Object(P.a)(this,"submitfilterdGroupByYears",Ht,this),Object(P.a)(this,"submitfilterdGroup",Jt,this),Object(P.a)(this,"submitfilterdGroupByPop",Ut,this),Object(P.a)(this,"submitfilterdGroup2",Xt,this),Object(P.a)(this,"updateGroupBy2",Zt,this),Object(P.a)(this,"group2Dict",$t,this),Object(P.a)(this,"isUse2StepsMarkers",er,this),Object(P.a)(this,"markersLoadStep",tr,this),Object(P.a)(this,"setMarkersLoadStep",rr,this),Object(P.a)(this,"submitFilter",ar,this),this.submintMainDataFilter=function(){if(r.isLoading=!0,r.useGetFetch){var e=r.getFilterQueryString(null);r.setFiltersText(!0),r.setBrowserQueryString(),r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Oe.fetchGetList(e,"main").then((function(e){null!==e&&void 0!==e&&(r.updateAllInjuries(e),1===r.useLocalDb&&xe(e)),r.isLoading=!1}))}else{JSON.parse(r.cityPopSizeRange.queryValue.toString());var t=r.getFilterForPost(null);r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Oe.fetchAggregatFilter(t,"main").then((function(e){null!==e&&void 0!==e&&(r.updateAllInjuries(e),1===r.useLocalDb&&xe(e)),r.isLoading=!1}))}},this.submintGetMarkerFirstStep=function(){JSON.parse(r.cityPopSizeRange.queryValue.toString());var e=r.getFilterForPost(null);Oe.fetchAggregatFilter(e,"latlon").then((function(e){null!==e&&void 0!==e&&r.updateDataMarkersLean(e)}))},this.submitCityNameAndLocation=function(){if(r.cities.arrValues.length>=1){var e=r.cities.arrValues[0],t=new we,a=r.rootStore.mapStore.isCenterMapByCity()?r.rootStore.mapStore.updateMapCenterByCity:function(){};t.getCityByNameHe(e,a);r.cityResult=r.cities.arrValues[0]}else r.cityResult=""},this.getFilterQueryString=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a="?";a+=r.startYear.getFilter(),a+=r.endYear.getFilter(),a+=r.injurySeverity.getFilter(),a+=r.cities.getFilter(),t&&null!=e&&(a+=$(e)),a+=r.dayNight.getFilter(),a+=r.streets.getFilter(),a+=r.roads.getFilter(),a+=r.roadSegment.getFilter(),a+=r.injTypes.getFilter(),a+=r.genderTypes.getFilter(),a+=r.ageTypes.getFilter(),a+=r.populationTypes.getFilter(),a+=r.accidentType.getFilter(),a+=r.vehicleType.getFilter(),a+=r.involvedVehicle.getFilter(),a+=r.locationAccuracy.getFilter(),a+=r.roadTypes.getFilter(),a+=r.speedLimit.getFilter(),a+=r.roadWidth.getFilter(),a+=r.separator.getFilter(),a+=r.oneLane.getFilter();var i=JSON.parse(r.cityPopSizeRange.queryValue.toString());return a+=Z(i.min,i.max)},this.setFiltersText=function(e){r.startYear.setText(),r.endYear.setText(),r.injTypes.setText(e),r.dayNight.setText(e),r.genderTypes.setText(e),r.ageTypes.setText(e),r.populationTypes.setText(e),r.locationAccuracy.setText(e),r.roadTypes.setText(e),r.cities.setText(),r.roads.setText(),r.cityPopSizeRange.setText(),r.accidentType.setText(e),r.vehicleType.setText(e),r.involvedVehicle.setText(e)},Object(P.a)(this,"setBrowserQueryString",ir,this),Object(P.a)(this,"setStoreByQuery",nr,this),this.getFilterForPost=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a='{"$and" : [';return a+='{"accident_year": { "$gte" : '.concat(r.startYear,',"$lte": ').concat(r.endYear,"}}"),t&&null!=e&&(a+=$(e)),a+="]}"},Object(P.a)(this,"updateFilters",or,this),this.getfilterBySeverityAndCity=function(){var e="?";return e+=r.startYear.getFilter(),e+=r.injurySeverity.getFilter(),e+=r.cities.getFilter()},this.getFilterFromArray=function(e,t){var r="";return e.length>0&&""!==e[0]&&(r+=',{"$or": [',r+=e.map((function(e){return'{"'.concat(t,'" : "').concat(e.trim(),'"}')})).join(","),r+="]}"),r},this.getFilterFromNumArray=function(e,t){var r="";return e.length>0&&(r+=',{"$or": [',r+=e.map((function(e){return'{"'.concat(t,'" : ').concat(parseInt(e,10),"}")})).join(","),r+="]}"),r},Object(P.a)(this,"useLocalDb",sr,this),this.submitMainDataFilterLocalDb=function(){r.isLoading=!0;var e=r.getFilterIDB();r.rootStore.mapStore.updateIsSetBounds(r.cities.arrValues,r.roadSegment.arrValues),Ce(e).then((function(e){null!==e&&void 0!==e&&r.updateAllInjuries(e),r.isLoading=!1}))},this.submintGetMarkersBBoxIdb=function(e){Ce(r.getFilterBboxIDB(e)).then((function(e){null!==e&&void 0!==e&&r.rootStore.mapStore.updateDataMarkersInBounds(e)}))},this.getFilterIDB=function(){var e=[],t={filterName:"accident_year",startYear:r.startYear.queryValue.toString(),endYear:r.endYear.queryValue.toString()};return e.push(t),r.getfilterCityIDB(e),r.getFilterStreetsIDB(e),r.getMultiplefilterIDB(e,r.dayNight),r.getFilterFromArrayIDb(e,"road_segment_name",r.roadSegment.arrValues),r.getMultiplefilterIDB(e,r.roadTypes),r.getMultiplefilterIDB(e,r.injTypes),r.getMultiplefilterIDB(e,r.genderTypes),r.getMultiplefilterIDB(e,r.ageTypes),r.getMultiplefilterIDB(e,r.populationTypes),r.getMultiplefilterIDB(e,r.accidentType),r.getMultiplefilterIDB(e,r.vehicleType),r.getMultiplefilterIDB(e,r.roadTypes),r.getMultiplefilterIDB(e,r.speedLimit),r.getMultiplefilterIDB(e,r.roadWidth),r.getMultiplefilterIDB(e,r.separator),r.getMultiplefilterIDB(e,r.oneLane),e},this.getFilterBboxIDB=function(e){var t=[],a={filterName:"bbox",p1:e.getSouthWest,p2:e.getNorthEast};t.push(a);var i={filterName:"accident_year",startYear:r.startYear.queryValue.toString(),endYear:r.endYear.queryValue.toString()};return t.push(i),r.getfilterCityIDB(t),r.getFilterStreetsIDB(t),r.getMultiplefilterIDB(t,r.dayNight),r.getFilterFromArrayIDb(t,"road_segment_name",r.roadSegment.arrValues),r.getMultiplefilterIDB(t,r.roadTypes),r.getMultiplefilterIDB(t,r.injTypes),r.getMultiplefilterIDB(t,r.genderTypes),r.getMultiplefilterIDB(t,r.ageTypes),r.getMultiplefilterIDB(t,r.populationTypes),r.getMultiplefilterIDB(t,r.accidentType),r.getMultiplefilterIDB(t,r.vehicleType),r.getMultiplefilterIDB(t,r.roadTypes),r.getMultiplefilterIDB(t,r.speedLimit),r.getMultiplefilterIDB(t,r.roadWidth),r.getMultiplefilterIDB(t,r.separator),r.getMultiplefilterIDB(t,r.oneLane),t},this.getMultiplefilterIDB=function(e,t){if(!(t.allTypesOption>-1&&t.arrTypes[t.allTypesOption].checked)){var r,a=!0,i=[],n=t.arrTypes.values(),o=Object(R.a)(n);try{for(o.s();!(r=o.n()).done;){var s=r.value;s.checked?i=[].concat(Object(D.a)(i),Object(D.a)(s.filters)):a=!1}}catch(u){o.e(u)}finally{o.f()}if(!a){var c=i.map((function(e){return-1===e?null:e})),l={filterName:t.queryColName,values:c};e.push(l)}}},this.getfilterCityIDB=function(e){if(r.cities.arrValues.length>0){var t={filterName:"accident_yishuv_name",values:r.cities.arrValues};e.push(t)}},this.getFilterStreetsIDB=function(e){if(r.streets.arrValues.length>0&&""!==r.streets.arrValues[0]){var t={filterName:"street1_hebrew",values:r.streets.arrValues.map((function(e){return e.trim()}))};e.push(t)}},this.getFilterFromArrayIDb=function(e,t,r){if(r.length>0&&""!==r[0]){var a={filterName:t,values:r.map((function(e){return e.trim()}))};e.push(a)}},this.rootStore=t,this.injurySeverity=function(){var e=new J("Severity","sev",-1,!1);return e.arrTypes.push(new W("dead",!0,[1])),e.arrTypes.push(new W("severly-injured",!1,[2])),e.setQueryVals(),e}(),this.setCasualtiesNames(this.injurySeverity),this.startYear=new ie("FromYear","sy",-1,oe,2016),this.endYear=new ie("ToYear","ey",-1,oe,2020),this.dayNight=function(){var e=new J("DayNight","dn");return e.arrTypes.push(new W("day",!0,[1])),e.arrTypes.push(new W("night",!0,[5])),e}(),this.locationAccuracy=function(){var e=new J("LocationAccuracy","lca");return e.arrTypes.push(new W("accurate_location",!0,[1])),e.arrTypes.push(new W("city_center",!0,[2])),e.arrTypes.push(new W("road_center",!0,[3])),e.arrTypes.push(new W("km_cneter",!0,[4])),e.arrTypes.push(new W("no_location",!0,[9])),e}(),this.roadTypes=function(){var e=new J("RoadType","rt");return e.arrTypes.push(new W("urban-junction",!0,[1])),e.arrTypes.push(new W("urban-road",!0,[2])),e.arrTypes.push(new W("non-urban-junction",!0,[3])),e.arrTypes.push(new W("non-urban-road",!0,[4])),e}(),this.roads=new ee("Road","rd",!1),this.roadSegment=new ee("RoadSegment","rds",!0),this.cities=new ee("City","city",!0),this.streets=new ee("Street","st",!0),this.cityPopSizeRange=new ne("city_size","p1",0,se,'{"min":-1,"max":-1}'),this.genderTypes=function(){var e=new J("Gender","sex");return e.arrTypes.push(new W("female",!0,[2])),e.arrTypes.push(new W("male",!0,[1])),e}(),this.ageTypes=function(){var e=new J("Age","age",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("00-04",!1,[1])),e.arrTypes.push(new W("05-09",!1,[2])),e.arrTypes.push(new W("10-14",!1,[3])),e.arrTypes.push(new W("15-19",!1,[4])),e.arrTypes.push(new W("20-29",!1,[5,6])),e.arrTypes.push(new W("30-39",!1,[7,8])),e.arrTypes.push(new W("40-49",!1,[9,10])),e.arrTypes.push(new W("50-59",!1,[11,12])),e.arrTypes.push(new W("60-69",!1,[13,14])),e.arrTypes.push(new W("70-79",!1,[15,16])),e.arrTypes.push(new W("80+",!1,[17,18])),e.arrTypes.push(new W("unknown",!1,[99])),e}(),this.populationTypes=function(){var e=new J("Population","pt");return e.arrTypes.push(new W("jews",!0,[1])),e.arrTypes.push(new W("arabs",!0,[2])),e.arrTypes.push(new W("immigrants",!0,[4])),e.arrTypes.push(new W("others",!0,[3])),e}(),this.accidentType=function(){var e=new J("AccidentType","acc",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("accType.ped",!1,[1])),e.arrTypes.push(new W("accType.front-side",!1,[2])),e.arrTypes.push(new W("accType.front-front",!1,[5])),e.arrTypes.push(new W("accType.front-rear",!1,[3])),e.arrTypes.push(new W("accType.side-side",!1,[4])),e.arrTypes.push(new W("accType.obstacle1",!1,[6])),e.arrTypes.push(new W("accType.obstacle2",!1,[7])),e.arrTypes.push(new W("accType.obstacle3",!1,[8])),e.arrTypes.push(new W("accType.offroad",!1,[9])),e.arrTypes.push(new W("accType.turning-over",!1,[10])),e.arrTypes.push(new W("accType.slip",!1,[11])),e.arrTypes.push(new W("accType.passenger",!1,[12])),e.arrTypes.push(new W("accType.falloff",!1,[13])),e.arrTypes.push(new W("accType.rear-front",!1,[17])),e.arrTypes.push(new W("accType.rear-side",!1,[18])),e.arrTypes.push(new W("accType.animal",!1,[19])),e.arrTypes.push(new W("accType.cargo",!1,[20])),e.arrTypes.push(new W("accType.other",!1,[15])),e}(),this.injTypes=function(){var e=new J("TypeInjured","injt",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("pedestrian",!1,[1])),e.arrTypes.push(new W("cyclist",!1,[6,7])),e.arrTypes.push(new W("other",!1,[8,9])),e.arrTypes.push(new W("motorcycle",!1,[4,5])),e.arrTypes.push(new W("wheels4+",!1,[2,3])),e}(),this.vehicleType=U(),this.involvedVehicle=function(){var e=new J("Vehicles","vcli",0);return e.arrTypes.push(new W("vclType.all",!0,[])),e.arrTypes.push(new W("vclType.mobilityscooter",!1,[22])),e.arrTypes.push(new W("vclType.bicycle",!1,[15])),e.arrTypes.push(new W("vclType.e-scooter",!1,[21])),e.arrTypes.push(new W("vclType.e-bike",!1,[23])),e.arrTypes.push(new W("vclType.motorcycle",!1,[8])),e.arrTypes.push(new W("vclType.car",!1,[1])),e.arrTypes.push(new W("vclType.taxi",!1,[12])),e.arrTypes.push(new W("vclType.tranzit",!1,[2])),e.arrTypes.push(new W("vclType.tender",!1,[3])),e.arrTypes.push(new W("vclType.bus",!1,[11])),e.arrTypes.push(new W("vclType.truck",!1,[5])),e.arrTypes.push(new W("vclType.tractor",!1,[14])),e.arrTypes.push(new W("vclType.train",!1,[16])),e.arrTypes.push(new W("vclType.other",!1,[17])),e}(),this.speedLimit=function(){var e=new J("SpeedLimit","sp",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("speed50",!1,[1])),e.arrTypes.push(new W("speed60",!1,[2])),e.arrTypes.push(new W("speed70",!1,[3])),e.arrTypes.push(new W("speed80",!1,[4])),e.arrTypes.push(new W("speed90",!1,[5])),e.arrTypes.push(new W("speed100",!1,[6])),e.arrTypes.push(new W("speed110",!1,[7])),e.arrTypes.push(new W("speed120",!1,[8])),e.arrTypes.push(new W("speed-unknown",!1,[0])),e}(),this.roadWidth=function(){var e=new J("RoadWidth","rw",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("road-width-5",!1,[1])),e.arrTypes.push(new W("road-width-7",!1,[2])),e.arrTypes.push(new W("road-width-10",!1,[3])),e.arrTypes.push(new W("road-width-14",!1,[4])),e.arrTypes.push(new W("road-width-14+",!1,[5])),e.arrTypes.push(new W("unknown",!1,[0])),e}(),this.separator=function(){var e=new J("Separator","ml",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("separator-fence",!1,[2])),e.arrTypes.push(new W("separator-built",!1,[3])),e.arrTypes.push(new W("separator-not-built",!1,[4])),e.arrTypes.push(new W("separator-paint",!1,[1])),e.arrTypes.push(new W("separator-ohter",!1,[5])),e}(),this.oneLane=function(){var e=new J("OneLane","ol",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("onelane-oneway",!1,[1])),e.arrTypes.push(new W("onelane-twoway-line",!1,[2])),e.arrTypes.push(new W("onelane-twoway-noline",!1,[3])),e.arrTypes.push(new W("onelane-unknown",!1,[9])),e}();var a=this.useGetFetch?pe():he();this.groupByDict=new de(a,"gb","injt");var i=function(e){return e?fe():je()}(this.useGetFetch);this.group2Dict=new de(i,"gb2","sex"),this.dataByYears=_,this.dataFilterdByYears=K,this.dataFilterd=q,this.dataGroupby2=E,this.appInitialized=!1,this.localStorageService=new Qr}return Object(G.a)(e,[{key:"isValidSeverity",get:function(){return!this.injurySeverity.isAllValsFalse}},{key:"getCityNameFromQuery",value:function(e,t){var r=t?[t]:[],a=e.get("city");if(null!==a){var i=a.split(",");i.length>1&&this.isMultipleCities?r=i:Yr.includes(a)&&(r=[Yr.find((function(e){return e===a}))])}return r}},{key:"isValidWhere",get:function(){return!this.roadTypes.isAllValsFalse&&!this.locationAccuracy.isAllValsFalse}},{key:"isValidWhen",get:function(){return!this.dayNight.isAllValsFalse}},{key:"isValidWho",get:function(){return!this.genderTypes.isAllValsFalse&&!this.ageTypes.isAllValsFalse&&!this.populationTypes.isAllValsFalse}},{key:"isValidWhat",get:function(){return!this.accidentType.isAllValsFalse}},{key:"isValidWhatVehicle",get:function(){return!this.injTypes.isAllValsFalse&&!this.vehicleType.isAllValsFalse&&!this.involvedVehicle.isAllValsFalse}},{key:"isValidWhatRoad",get:function(){return!this.speedLimit.isAllValsFalse&&!this.roadWidth.isAllValsFalse&&!this.separator.isAllValsFalse&&!this.oneLane.isAllValsFalse}},{key:"isValidAllFilters",get:function(){return this.isValidSeverity&&this.isValidWhen&&this.isValidWho&&this.isValidWhere&&this.isValidWhat&&this.isValidWhatVehicle&&this.isValidWhatRoad}}]),e}(),ke=Object(Q.a)(Fe.prototype,"filtersArrayLocalStorage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Ve=Object(Q.a)(Fe.prototype,"setCurrentFiltersArrayLocalStorage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.filtersArrayLocalStorage=e.localStorageService.getLoaclStorage("my-filters")}}}),ze=Object(Q.a)(Fe.prototype,"updateFilterArrayLocalStorage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.filtersArrayLocalStorage=e.localStorageService.getLoaclStorage("my-filters"),e.filtersArrayLocalStorage.push(t),e.localStorageService.setLocalStorage("my-filters",e.filtersArrayLocalStorage)}}}),Me=Object(Q.a)(Fe.prototype,"showAllVehicleTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Ae=Object(Q.a)(Fe.prototype,"updateShowAllVehicleTypes",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showAllVehicleTypes=t,e.showAllVehicleTypes?e.vehicleType=U():e.vehicleType=function(){var e=new J("VehicleType","vcl",0);return e.arrTypes.push(new W("all",!0,[])),e.arrTypes.push(new W("pedestrian",!1,[0])),e.arrTypes.push(new W("mobilityscooter",!1,[22])),e.arrTypes.push(new W("bicycle",!1,[15])),e.arrTypes.push(new W("e-scooter",!1,[21])),e.arrTypes.push(new W("e-bike",!1,[23])),e.arrTypes.push(new W("motorcycle",!1,[8,9,10,19])),e.arrTypes.push(new W("car",!1,[1])),e.arrTypes.push(new W("taxi",!1,[12])),e.arrTypes.push(new W("tranzit",!1,[2])),e.arrTypes.push(new W("tender",!1,[3])),e.arrTypes.push(new W("bus",!1,[11,18])),e.arrTypes.push(new W("truck",!1,[24,25,5,6,7])),e.arrTypes.push(new W("tractor",!1,[14])),e.arrTypes.push(new W("train",!1,[16])),e.arrTypes.push(new W("other",!1,[17])),e}()}}}),Le=Object(Q.a)(Fe.prototype,"isUpdateFromUrl",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),Ie=Object(Q.a)(Fe.prototype,"setIsUpdateFromUrl",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isUpdateFromUrl=t}}}),Ne=Object(Q.a)(Fe.prototype,"formCardKey",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),De=Object(Q.a)(Fe.prototype,"setFormCardKey",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.formCardKey=t}}}),Re=Object(Q.a)(Fe.prototype,"injurySeverity",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Pe=Object(Q.a)(Fe.prototype,"updateInjurySeverity",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.injurySeverity,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidSeverity",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidSeverity"),Fe.prototype),Ge=Object(Q.a)(Fe.prototype,"casualtiesNames",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"casualties"}}),Qe=Object(Q.a)(Fe.prototype,"setCasualtiesNames",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r="casualties",a=t.arrTypes[0],i=t.arrTypes[1];a.checked&&!i.checked?r="killed":!a.checked&&i.checked&&(r="severely-injured"),e.casualtiesNames=r}}}),Ye=Object(Q.a)(Fe.prototype,"isMultipleCities",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),We=Object(Q.a)(Fe.prototype,"setIsMultipleCities",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isMultipleCities=t}}}),_e=Object(Q.a)(Fe.prototype,"cities",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ke=Object(Q.a)(Fe.prototype,"updateCities",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.cities.setFilter(t),0===e.cities.arrValues.length)e.streets.arrValues=[];else if(r){var a=Object(N.a)(e.cities.arrValues,1);e.cityResult=a[0]}}}}),qe=Object(Q.a)(Fe.prototype,"cityResult",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),Ee=Object(Q.a)(Fe.prototype,"streets",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),He=Object(Q.a)(Fe.prototype,"updateStreets",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.streets.setFilter(t.split(","))}}}),Je=Object(Q.a)(Fe.prototype,"roads",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ue=Object(Q.a)(Fe.prototype,"setRoads",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.roads.setFilter(t)}}}),Xe=Object(Q.a)(Fe.prototype,"cityPopSizeRange",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ze=Object(Q.a)(Fe.prototype,"setCityPopSizeRange",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.cityPopSizeRange.setFilter(t)}}}),$e=Object(Q.a)(Fe.prototype,"roadSegment",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),et=Object(Q.a)(Fe.prototype,"updateRoadSegment",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.roadSegment.setFilter(t.split(","))}}}),tt=Object(Q.a)(Fe.prototype,"roadTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),rt=Object(Q.a)(Fe.prototype,"updateRoadType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.roadTypes,t,r)}}}),at=Object(Q.a)(Fe.prototype,"locationAccuracy",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),it=Object(Q.a)(Fe.prototype,"updateLocationAccuracy",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.locationAccuracy,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhere",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhere"),Fe.prototype),nt=Object(Q.a)(Fe.prototype,"startYear",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ot=Object(Q.a)(Fe.prototype,"setStartYear",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.startYear.setFilter(parseInt(t))}}}),st=Object(Q.a)(Fe.prototype,"endYear",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ct=Object(Q.a)(Fe.prototype,"setEndYear",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.endYear.setFilter(parseInt(t))}}}),lt=Object(Q.a)(Fe.prototype,"dayNight",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ut=Object(Q.a)(Fe.prototype,"updateDayNight",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.dayNight,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhen",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhen"),Fe.prototype),pt=Object(Q.a)(Fe.prototype,"genderTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ht=Object(Q.a)(Fe.prototype,"updateGenderType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.genderTypes,t,r)}}}),bt=Object(Q.a)(Fe.prototype,"ageTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),yt=Object(Q.a)(Fe.prototype,"updateAgeType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.ageTypes,t,r)}}}),dt=Object(Q.a)(Fe.prototype,"populationTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ft=Object(Q.a)(Fe.prototype,"updatePopulationType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.populationTypes,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWho",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWho"),Fe.prototype),jt=Object(Q.a)(Fe.prototype,"accidentType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),gt=Object(Q.a)(Fe.prototype,"updateAccidentType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.accidentType,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhat",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhat"),Fe.prototype),mt=Object(Q.a)(Fe.prototype,"injTypes",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),vt=Object(Q.a)(Fe.prototype,"updateInjuerdType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.injTypes,t,r)}}}),Ot=Object(Q.a)(Fe.prototype,"vehicleType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),wt=Object(Q.a)(Fe.prototype,"updateVehicleType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.vehicleType,t,r)}}}),Tt=Object(Q.a)(Fe.prototype,"involvedVehicle",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),xt=Object(Q.a)(Fe.prototype,"setInvolvedVehicle",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.involvedVehicle,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhatVehicle",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhatVehicle"),Fe.prototype),St=Object(Q.a)(Fe.prototype,"speedLimit",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ct=Object(Q.a)(Fe.prototype,"roadWidth",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Bt=Object(Q.a)(Fe.prototype,"updateRoadWidth",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.roadWidth,t,r)}}}),Ft=Object(Q.a)(Fe.prototype,"separator",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),kt=Object(Q.a)(Fe.prototype,"updateSeparator",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.separator,t,r)}}}),Vt=Object(Q.a)(Fe.prototype,"oneLane",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),zt=Object(Q.a)(Fe.prototype,"updateOneLane",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.updateFilters(e.oneLane,t,r)}}}),Object(Q.a)(Fe.prototype,"isValidWhatRoad",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidWhatRoad"),Fe.prototype),Mt=Object(Q.a)(Fe.prototype,"injuriesCount",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),At=Object(Q.a)(Fe.prototype,"setInjuriesCount",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.injuriesCount=t,e.isLoadingInjuriesCount=!1}}}),Lt=Object(Q.a)(Fe.prototype,"isLoadingInjuriesCount",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),It=Object(Q.a)(Fe.prototype,"dataAllInjuries",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Nt=Object(Q.a)(Fe.prototype,"updateAllInjuries",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMarkersLoadStep(2),e.dataAllInjuries=t,e.rootStore.mapStore.setBounds(t,e.cities.arrValues),e.rootStore.mapStore.bboxType===Gr.a.LOCAL_BBOX&&e.rootStore.mapStore.getMarkersInLocalBBox(.1)}}}),Dt=Object(Q.a)(Fe.prototype,"dataMarkersLean",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Rt=Object(Q.a)(Fe.prototype,"updateDataMarkersLean",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMarkersLoadStep(1),e.dataMarkersLean=t}}}),Pt=Object(Q.a)(Fe.prototype,"dataByYears",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Gt=Object(Q.a)(Fe.prototype,"dataFilterdByYears",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Qt=Object(Q.a)(Fe.prototype,"setDataFilterdByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.dataFilterdByYears=t}}}),Yt=Object(Q.a)(Fe.prototype,"dataFilterd",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),Wt=Object(Q.a)(Fe.prototype,"dataGroupby2",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),_t=Object(Q.a)(Fe.prototype,"isLoading",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Object(Q.a)(Fe.prototype,"isValidAllFilters",[Y.g],Object.getOwnPropertyDescriptor(Fe.prototype,"isValidAllFilters"),Fe.prototype),Kt=Object(Q.a)(Fe.prototype,"updateGroupby",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){if(e.groupByDict.setFilter(t),e.groupByDict.setBrowserQueryString(),e.useGetFetch||"CityByPop"!==e.groupByDict.groupBy.text?e.submitfilterdGroup(e.groupByDict.groupBy):e.submitfilterdGroupByPop(),"CityByPop"!==e.groupByDict.groupBy.text){var r=e.group2Dict.groupBy.name;e.submitfilterdGroup2(e.groupByDict.groupBy,r)}}}}),qt=Object(Q.a)(Fe.prototype,"groupByDict",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Et=Object(Q.a)(Fe.prototype,"submitGroupByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){if(e.useGetFetch){var t=e.getfilterBySeverityAndCity(),r=X(t,"year");Oe.fetchGetGroupBy(r).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.dataByYears=r}}))}else{var a=e.getfilterBySeverityAndCity(),i=X(a,"accident_year");Oe.fetchAggregate(i).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.dataByYears=r}}))}}}}),Ht=Object(Q.a)(Fe.prototype,"submitfilterdGroupByYears",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.isLoadingInjuriesCount=!0;var t=JSON.parse(e.cityPopSizeRange.queryValue.toString());if(e.useGetFetch){var r=e.getFilterQueryString(null),a=X(r,"year",t.min,t.max);Oe.fetchGetGroupBy(a).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.setDataFilterdByYears(r);var a=e.getCountFromGroupByRes(t);e.setInjuriesCount(a)}}))}else{var i=e.getFilterForPost(null),n=X(i,"accident_year",t.min,t.max);Oe.fetchAggregate(n).then((function(t){if(void 0!==t){var r=e.padDataYearsWith0(t);e.setDataFilterdByYears(r);var a=e.getCountFromGroupByRes(t);e.setInjuriesCount(a)}}))}}}}),Jt=Object(Q.a)(Fe.prototype,"submitfilterdGroup",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=JSON.parse(e.cityPopSizeRange.queryValue.toString());if(e.useGetFetch){var a=e.getFilterQueryString(null),i=X(a,t.value,r.min,r.max,"",t.limit,t.sort);Oe.fetchGetGroupBy(i).then((function(r){t.reGroupResultFunc&&(r=t.reGroupResultFunc(r)),void 0!==r&&(e.dataFilterd=r)}))}else{var n=e.getFilterForPost(null),o=X(n,t.value,r.min,r.max,"",t.limit);Oe.fetchAggregate(o).then((function(t){void 0!==t&&(e.dataFilterd=t)}))}}}}),Ut=Object(Q.a)(Fe.prototype,"submitfilterdGroupByPop",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=JSON.parse(e.cityPopSizeRange.queryValue.toString()),r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e5,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e5,a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,n="".concat('[{"$match": ').concat(e,"}");return n+=',{"$lookup":{ "from": "cities", "localField": "accident_yishuv_name", "foreignField": "name_he","as": "city"}}',t>=0&&r>0&&(n+=',{ "$match": { "city.population": { "$gte" : '.concat(t,' , "$lte" : ').concat(r,"}}}")),n+=',{"$group": {"_id": "$accident_yishuv_name","t_count" : { "$sum" : 1 },"t_population" : { "$first" : "$city.population" }}}',n+=',{ "$unwind" : "$t_population"}',n+=',{ "$project" : { "count" :{ "$multiply" : [100000, { "$divide" : ["$t_count", "$t_population"] } ]}}}',n+=0===i?',{"$sort": {"count": '.concat(a,"}}"):"".concat(',{"$sort": {"count": '.concat(a,"}}")+',{"$limit": ').concat(i,"}"),n+"]"}(e.getFilterForPost(null),t.min,t.max,-1,15);Oe.fetchAggregate(r).then((function(t){void 0!==t&&(e.dataFilterd=t)}))}}}),Xt=Object(Q.a)(Fe.prototype,"submitfilterdGroup2",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.useGetFetch){var a=JSON.parse(e.cityPopSizeRange.queryValue.toString()),i=e.getFilterQueryString(null),n=X(i,t.value,a.min,a.max,r,t.limit);Oe.fetchGetGroupBy(n).then((function(t){if(void 0!==t&&t.length>0)try{var r=e.group2Dict.groupBy.fixStrcutTable(t);e.dataGroupby2=r}catch(a){Pr.a.log(a),e.dataGroupby2=[]}else e.dataGroupby2=[]}))}else{var o=JSON.parse(e.cityPopSizeRange.queryValue.toString()),s=e.getFilterForPost(null),c=X(s,t.value,o.min,o.max,r,t.limit);Oe.fetchAggregate(c).then((function(t){if(void 0!==t&&t.length>0)try{var r=e.group2Dict.groupBy.fixStrcutTable(t);e.dataGroupby2=r}catch(a){Pr.a.log(a),e.dataGroupby2=[]}else e.dataGroupby2=[]}))}}}}),Zt=Object(Q.a)(Fe.prototype,"updateGroupBy2",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.group2Dict.setFilter(t),e.group2Dict.setBrowserQueryString();var r=e.group2Dict.groupBy.name;e.submitfilterdGroup2(e.groupByDict.groupBy,r)}}}),$t=Object(Q.a)(Fe.prototype,"group2Dict",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),er=Object(Q.a)(Fe.prototype,"isUse2StepsMarkers",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),tr=Object(Q.a)(Fe.prototype,"markersLoadStep",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 1}}),rr=Object(Q.a)(Fe.prototype,"setMarkersLoadStep",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.isUse2StepsMarkers&&(e.markersLoadStep=t)}}}),ar=Object(Q.a)(Fe.prototype,"submitFilter",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){2===e.useLocalDb?e.submitMainDataFilterLocalDb():(e.rootStore.mapStore.bboxType===Gr.a.SERVER_BBOX&&e.rootStore.mapStore.submintGetMarkersBBox(),e.isUse2StepsMarkers&&e.submintGetMarkerFirstStep(),e.submintMainDataFilter()),e.submitCityNameAndLocation(),e.submitGroupByYears(),e.submitfilterdGroupByYears(),e.useGetFetch||"CityByPop"!==e.groupByDict.groupBy.text?e.submitfilterdGroup(e.groupByDict.groupBy):e.submitfilterdGroupByPop(),e.submitfilterdGroup2(e.groupByDict.groupBy,e.group2Dict.groupBy.name),e.setCasualtiesNames(e.injurySeverity);var t=e.rootStore.uiStore.language;"city"===e.rootStore.uiStore.currentPage&&e.rootStore.imageStore.getImagesByPlace(e.cityResult,t)}}}),ir=Object(Q.a)(Fe.prototype,"setBrowserQueryString",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){var t=new URLSearchParams(location.search);t.set("tab",e.rootStore.uiStore.currentTab),e.startYear.setBrowserQueryString(t,!1),e.endYear.setBrowserQueryString(t,!1),e.injurySeverity.setBrowserQueryString(t,!1),e.roadTypes.setBrowserQueryString(t),e.injTypes.setBrowserQueryString(t),e.genderTypes.setBrowserQueryString(t),e.ageTypes.setBrowserQueryString(t),e.populationTypes.setBrowserQueryString(t),e.cities.setBrowserQueryString(t),e.roads.setBrowserQueryString(t),e.locationAccuracy.setBrowserQueryString(t),e.accidentType.setBrowserQueryString(t),e.vehicleType.setBrowserQueryString(t),e.involvedVehicle.setBrowserQueryString(t),e.speedLimit.setBrowserQueryString(t),e.roadWidth.setBrowserQueryString(t),e.separator.setBrowserQueryString(t),e.oneLane.setBrowserQueryString(t),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t.toString())),e.groupByDict.setBrowserQueryString()}}}),nr=Object(Q.a)(Fe.prototype,"setStoreByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.startYear.setValuesByQuery(t),e.endYear.setValuesByQuery(t),e.injurySeverity.setValuesByQuery(t),e.dayNight.setValuesByQuery(t);var a=e.getCityNameFromQuery(t,r);a&&e.updateCities(a,!0),e.locationAccuracy.setValuesByQuery(t),e.roadTypes.setValuesByQuery(t),e.injTypes.setValuesByQuery(t),e.genderTypes.setValuesByQuery(t),e.ageTypes.setValuesByQuery(t),e.populationTypes.setValuesByQuery(t),e.accidentType.setValuesByQuery(t),e.vehicleType.setValuesByQuery(t),e.involvedVehicle.setValuesByQuery(t),e.speedLimit.setValuesByQuery(t),e.roadWidth.setValuesByQuery(t),e.separator.setValuesByQuery(t),e.oneLane.setValuesByQuery(t),e.groupByDict.setValuesByQuery(t),e.group2Dict.setValuesByQuery(t)}}}),or=Object(Q.a)(Fe.prototype,"updateFilters",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return function(e,t,r){e.setFilter(t,r),-1===e.allTypesOption?e.arrTypes[t].checked=r:t===e.allTypesOption?e.arrTypes.forEach((function(t,a){return t.checked=a===e.allTypesOption?r:!r})):(e.arrTypes[e.allTypesOption].checked=!1,e.arrTypes[t].checked=r)}}}),sr=Object(Q.a)(Fe.prototype,"useLocalDb",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),Fe),_r=r(45),Kr=(cr=function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,Object(P.a)(this,"language",lr,this),Object(P.a)(this,"updateLanguage",ur,this),Object(P.a)(this,"direction",pr,this),Object(P.a)(this,"setDirection",hr,this),this.reactionChangeLang=Object(Y.o)((function(){return r.language}),(function(e){H.a.changeLanguage(e)})),this.initLang=function(){try{var e=localStorage.getItem("lang");if(null!==e){var t=JSON.parse(e);r.updateLanguage(t)}}catch(a){Pr.a.log(a)}},Object(P.a)(this,"showFilterModal",br,this),Object(P.a)(this,"setShowFilterModal",yr,this),Object(P.a)(this,"initPage",dr,this),Object(P.a)(this,"setInitPage",fr,this),Object(P.a)(this,"setStoreByQuery",jr,this),this.getValFromQuery=function(e,t,r){var a=e.get(t);return null!==a?a:r},Object(P.a)(this,"currentPage",gr,this),Object(P.a)(this,"setCurrentPage",mr,this),Object(P.a)(this,"currentTab",vr,this),Object(P.a)(this,"setCurrentTab",Or,this),Object(P.a)(this,"setQueryStrTab",wr,this),Object(P.a)(this,"searchParams",Tr,this),Object(P.a)(this,"chartType",xr,this),Object(P.a)(this,"chartTypeList",Sr,this),Object(P.a)(this,"updateChartType",Cr,this),Object(P.a)(this,"showPercentageChart",Br,this),Object(P.a)(this,"updateShowPercentageChart",Fr,this),this.rootStore=t,this.initLang(),this.appInitialized=!1},lr=Object(Q.a)(cr.prototype,"language",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"he"}}),ur=Object(Q.a)(cr.prototype,"updateLanguage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.language=t,localStorage.setItem("lang",JSON.stringify(t));var r="en"===t?"ltr":"rtl";e.setDirection(r)}}}),pr=Object(Q.a)(cr.prototype,"direction",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"rtl"}}),hr=Object(Q.a)(cr.prototype,"setDirection",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.direction=t}}}),br=Object(Q.a)(cr.prototype,"showFilterModal",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),yr=Object(Q.a)(cr.prototype,"setShowFilterModal",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showFilterModal=t}}}),dr=Object(Q.a)(cr.prototype,"initPage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),fr=Object(Q.a)(cr.prototype,"setInitPage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.initPage=t}}}),jr=Object(Q.a)(cr.prototype,"setStoreByQuery",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){var a=new URLSearchParams(window.location.search),i=e.getValFromQuery(a,"tab",t);i&&e.setCurrentTab(i),e.rootStore.filterStore.setStoreByQuery(a,r),e.rootStore.mapStore.setStoreByQuery(a)}}}),gr=Object(Q.a)(cr.prototype,"currentPage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"home"}}),mr=Object(Q.a)(cr.prototype,"setCurrentPage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currentPage=t}}}),vr=Object(Q.a)(cr.prototype,"currentTab",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"charts"}}),Or=Object(Q.a)(cr.prototype,"setCurrentTab",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currentTab=t,e.setQueryStrTab()}}}),wr=Object(Q.a)(cr.prototype,"setQueryStrTab",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){Object(_r.b)("tab",e.currentTab)}}}),Tr=Object(Q.a)(cr.prototype,"searchParams",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),xr=Object(Q.a)(cr.prototype,"chartType",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"BarChart"}}),Sr=Object(Q.a)(cr.prototype,"chartTypeList",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return["BarChart","PieChart","HorizontalBar"]}}),Cr=Object(Q.a)(cr.prototype,"updateChartType",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.chartType=t}}}),Br=Object(Q.a)(cr.prototype,"showPercentageChart",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Fr=Object(Q.a)(cr.prototype,"updateShowPercentageChart",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.showPercentageChart=t}}}),cr),qr=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=""===r?"/api/v1/img/tags/".concat(t):"/api/v1/img/tags/".concat(r,"/").concat(t),e.next=3,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Er=function(){var e=Object(ve.a)(me.a.mark((function e(t,r){var a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="/api/v1/img/place/".concat(r,"/").concat(t),e.next=3,fetch(a,{method:"GET",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer"});case 3:if((i=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",i.json());case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),Hr=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r,a,i;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t.file){e.next=2;break}return e.abrupt("return",[]);case 2:return(a=new FormData).append("titlehe",t.titlehe),a.append("texthe",t.texthe),a.append("image",t.file),a.append("tags",t.tags),a.append("place",t.place),void 0!==t.index&&a.append("index",null===(r=t.index)||void 0===r?void 0:r.toString()),"/api/v1/img/",e.next=12,fetch("/api/v1/img/",{method:"POST",mode:"cors",body:a});case 12:if((i=e.sent).ok){e.next=15;break}return e.abrupt("return",[]);case 15:return e.abrupt("return",i.json());case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Jr=function(){var e=Object(ve.a)(me.a.mark((function e(t){var r;return me.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"/api/v1/img/props",e.next=3,fetch("/api/v1/img/props",{method:"PUT",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(t)});case 3:if((r=e.sent).ok){e.next=6;break}return e.abrupt("return",[]);case 6:return e.abrupt("return",r.json());case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ur=(kr=function e(t){var r=this;Object(I.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,Object(P.a)(this,"imageList",Vr,this),Object(P.a)(this,"setImageList",zr,this),Object(P.a)(this,"isLoading",Mr,this),Object(P.a)(this,"currTag",Ar,this),Object(P.a)(this,"setCurrTag",Lr,this),this.tagsArr=[{val:"\u05db\u05dc\u05dc\u05d9",text:"general"},{val:"\u05d4\u05d5\u05dc\u05db\u05d9 \u05e8\u05d2\u05dc",text:"pedestrian"},{val:"\u05e8\u05d5\u05db\u05d1\u05d9 \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd",text:"cyclist"},{val:"\u05e8\u05d5\u05db\u05d1\u05d9 \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2",text:"motorcycle"},{val:"\u05de\u05db\u05d5\u05e0\u05d9\u05d5\u05ea",text:"car"},{val:"\u05d0\u05d5\u05d8\u05d5\u05d1\u05d5\u05e1\u05d9\u05dd",text:"bus"},{val:"\u05d9\u05dc\u05d3\u05d9\u05dd",text:"kids"}],Object(P.a)(this,"currImage",Ir,this),Object(P.a)(this,"setCurrImage",Nr,this),Object(P.a)(this,"hideDescription",Dr,this),Object(P.a)(this,"toggleHideDescription",Rr,this),this.setCurrImageVal=function(e,t){null!==r.currImage&&(r.currImage[e]=t)},this.submitImageFile=function(){null!==r.currImage&&(0===r.currImage._id&&void 0!==r.currImage.file?Hr(r.currImage):Jr(r.currImage))},this.getImages=function(e){var t=r.rootStore.uiStore.language;if("city"===e){var a=r.rootStore.filterStore.cityResult;r.getImagesByPlace(a,t)}else r.getImagesByTag(r.currTag,t)},this.getImagesByTag=function(e,t){r.isLoading=!0,qr(e,t).then((function(e){null!==e&&void 0!==e&&r.setImageList(e),r.isLoading=!1}))},this.getImagesByPlace=function(e,t){Er(e,t).then((function(e){null!==e&&void 0!==e&&r.setImageList(e)}))},this.rootStore=t},Vr=Object(Q.a)(kr.prototype,"imageList",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),zr=Object(Q.a)(kr.prototype,"setImageList",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.imageList=t,e.imageList.length>0&&e.setCurrImage(e.imageList[0])}}}),Mr=Object(Q.a)(kr.prototype,"isLoading",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Ar=Object(Q.a)(kr.prototype,"currTag",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"\u05db\u05dc\u05dc\u05d9"}}),Lr=Object(Q.a)(kr.prototype,"setCurrTag",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currTag=t;var r=e.rootStore.uiStore.language;e.getImagesByTag(t,r)}}}),Ir=Object(Q.a)(kr.prototype,"currImage",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),Nr=Object(Q.a)(kr.prototype,"setCurrImage",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.currImage=t}}}),Dr=Object(Q.a)(kr.prototype,"hideDescription",[Y.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Rr=Object(Q.a)(kr.prototype,"toggleHideDescription",[Y.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.hideDescription=!e.hideDescription,e.hideDescription?document.documentElement.style.setProperty("--image-gallery-description-visable","none"):document.documentElement.style.setProperty("--image-gallery-description-visable","inherit")}}}),kr),Xr=new function e(){Object(I.a)(this,e),this.appInitialized=!1,this.uiStore=void 0,this.mapStore=void 0,this.filterStore=void 0,this.imageStore=void 0,this.uiStore=new Kr(this),this.mapStore=new Gr.b(this),this.filterStore=new Wr(this),this.imageStore=new Ur(this)},Zr=L.a.createContext(Xr),$r=function(){var e=L.a.useContext(Zr);if(!e)throw new Error("You have forgot to use StoreProvider, shame on you.");return e}},147:function(e,t,r){"use strict";var a=r(70),i=(r(0),r(1));t.a=function(e){var t=e.children,r=e.header,n=e.style,o=r?Object(i.jsxs)(i.Fragment,{children:[" ",Object(i.jsx)("h6",{children:r})," ",Object(i.jsx)("hr",{})," "]}):null;return Object(i.jsxs)("div",{style:Object(a.a)({},n),className:"p-3 bg-white rounded shadow",children:[o,t]})}},188:function(e,t,r){"use strict";var a=r(0),i=r(144),n=r(16),o=r(1),s=function(e){var t=e.group,r=e.label,a=e.id,s=e.checked,c=e.onChange,l=Object(i.a)().t;return Object(o.jsx)(n.a.Check,{inline:!0,label:l(r),type:"checkbox",id:"cbox".concat(t).concat(a),checked:s,onChange:c})};t.a=Object(a.memo)(s)},191:function(e,t,r){"use strict";var a=r(0),i=r.n(a),n=r(144),o=r(116),s=r(69),c=r(11),l=r(10),u=r(1),p=Object(l.a)((function(e){var t=e.title,r=e.showModal,a=e.setShow,i=e.children,l=e.size,p=e.action,h=Object(n.a)().t,b=function(){return a(!1)},y=Object(c.a)().filterStore,d=p?Object(u.jsx)(o.a,{variant:"primary",onClick:p,disabled:y.isLoading||!y.isValidAllFilters,children:y.isLoading?h("Loading"):h("Submit")}):null;return Object(u.jsxs)(s.a,{size:l,show:r,onHide:b,children:[Object(u.jsx)(s.a.Header,{closeButton:!0,children:Object(u.jsx)(s.a.Title,{children:h(t)})}),Object(u.jsx)(s.a.Body,{style:{maxHeight:"calc(100vh - 240px)",overflowY:"auto"},children:i}),Object(u.jsxs)(s.a.Footer,{children:[d,Object(u.jsx)(o.a,{variant:"secondary",onClick:b,children:h("Close")})]})]})}));t.a=i.a.memo(p)},195:function(e){e.exports=JSON.parse('[{"_id":"2015","count":370},{"_id":"2016","count":391},{"_id":"2017","count":372},{"_id":"2018","count":327},{"_id":"2019","count":367}]')},196:function(e){e.exports=JSON.parse('[{"_id":"2015","count":370},{"_id":"2016","count":391},{"_id":"2017","count":372},{"_id":"2018","count":327},{"_id":"2019","count":367}]')},197:function(e){e.exports=JSON.parse('[{"_id":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","count":533},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","count":263},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","count":73},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","count":488},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","count":80},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)","count":16},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)","count":1},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","count":352},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","count":21}]')},198:function(e){e.exports=JSON.parse('[{"_id":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","female":198,"male":335},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","male":261,"female":2},{"_id":"\u05e0\u05d4\u05d2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","male":68,"female":5},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","female":78,"male":409},{"_id":"\u05e0\u05d4\u05d2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","male":77,"female":2},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 (\u05dc\u05d0 \u05e0\u05d4\u05d2)","male":12,"female":4},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd (\u05dc\u05d0 \u05e0\u05d4\u05d2)","male":1},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05d1\u05e2\u05dc 4 \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd \u05d5\u05d9\u05d5\u05ea\u05e8","female":163,"male":183},{"_id":"\u05e0\u05d5\u05e1\u05e2 - \u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","female":6,"male":15}]')},199:function(e){e.exports=JSON.parse('{"2015":"2015","2016":"2016","2017":"2017","2018":"2018","2019":"2019","2020":"2020","test":"Test translation","Hebrew":"\u05e2\u05d1\u05e8\u05d9\u05ea","English":"English","Home":"Home","HeatMap":"Heat Map","Markers":"Markers","Cities":"Cities","About":"About","Israel":"Israel","Charts":"Charts","Groups":"Groups","Map":"Map","Chart Options":"Chart Options","ChartType":"Chart Type","BarChart":"Bar Chart","PieChart":"Pie Chart","HorizontalBar":"Horizontal Bar Chart","PercentageChart":"Percentage values","small-markers":"Small Marker","big-markers":"Big Marker","Table":"Table","Images":"Images","Filter Options":"Filter Options","HideFilter":"Hide Filter","ShowFilter":"Show Filter","Close":"Close","ShowAllVehicleTypes":"Show All Vehicle Types","When":"When","FromYear":"From Year","ToYear":"To Year","DayNight":"Day\\\\Night","day":"Day","night":"Night","WeekDay":"Week Day","Year":"Year","Month":"Month","Where":"Where","LocationAccuracy":"Location Accuracy","accurate_location":"Accurate Location","city_center":"city Center","road_center":"Road Center","km_cneter":"Km Center","no_location":"No Location","City":"City","CityByPop":"Per 100k residents","city_size":"City Population","200K-1000K":"200K-1000K","100K-200K":"100K-200K","50K-100K":"50K-100K","20K-50K":"20K-50K","10K-20K":"10K-20K","0-10K":"0-10K","Street":"Street","ChooseCity":"Choose a City...","several-cities":"Several Cities","Road":"Road","several-roads":"Several Roads","RoadSegment":"Road Segment","Who":"Who","Severity":"Severity","dead":"Dead","severly-injured":"Severly","Vehicle":"Vehicle","TypeInjured":"Type Injured","all":"All","pedestrian":"Pedestrian","cyclist":"Cyclist","motorcycle":"Motorcycle","Wheels4+":"4+ Wheels","other":"Micromobility","cyclist-d":"Cyclist, driver","cyclist-p":"Cyclist, passenger","inj-unknown-d":"Unknown, driver","inj-unknown-p":"Unknown, passenger","motorcycle-d":"Motorcycle, driver","motorcycle-p":"Motorcycle, passenger","wheels4+-d":"4+ Wheels, driver","wheels4+-p":"4+ Wheels, passenger","Gender":"Gender","female":"Female","male":"Male","Age":"Age","00-04":"00-04","05-09":"05-09","10-14":"10-14","15-19":"15-19","20-29":"20-29","30-39":"30-39","40-49":"40-49","50-59":"50-59","60-69":"60-69","70-79":"70-79","80+":"80+","_id":"type","Population":"Population","jews":"jews","arabs":"arabs","immigrants":"immigrants","others":"others","unknown":"unknown","What":"What","AccidentType":"Accident Type","accType":{"ped":"hit pedestrian","front-side":"front-side","front-front":"front-front","front-rear":"front-rear","side-side":"side-side","obstacle":"collision with object","obstacle1":"collision with stopped vehicle","obstacle2":"collision with parked vehicle","obstacle3":"collision with inanimate object","turning-over":"turning over","slip":"slip","offroad":"got off the road","passenger":"passenger hit inside the vehicle","falloff":"falling from a moving vehicle","other":"other","rear-front":"rear-front","rear-side":"rear-side","animal":"collision with animal","cargo":"hit by cargo"},"SelfOrNotAcc":"Self/Multiple","selfAccType":{"self":"self accident","non-self":"multiple accident"},"Vehicles":"Involved Vehicles","WhatVehicle":"What Vehicle","VehicleType":"Injured Vehicle","vclType":{"all":"All","pedestrian":"Pedestrian","mobilityscooter":"Mobility scooter","bicycle":"Bicycle","e-scooter":"E-scooter","e-bike":"E-bike","motorcycle":"Motorcycle","motorcycle1":"Motorcycle under 50 cc","motorcycle2":"Motorcycle 50-125 cc","motorcycle3":"Motorcycle 126-400 cc","motorcycle4":"Motorcycle 400+ cc","car":"Car","taxi":"Taxi","minbuss":"Minbuss","bus":"Nus","tranzit":"Tranzit","tender":"Tender","truck":"Truck","truck1":"Truck 3.6 - 9.9 ton","truck2":"Truck 10 - 12 ton","truck3":"Truck 12.1 - 15.9 ton","truck4":"Truck 16 - 33.9 ton","truck5":"Truck 34+ ton","tractor":"Tractor","train":"Train","other":"Other"},"WhatRoad":"What Road","RoadType":"Road Type","urban-junction":"Urban junction","urban-road":"Urban road","non-urban-junction":"Non-urban junction","non-urban-road":"Non-urban road","SpeedLimit":"Speed Limit","speed50":"Up to 50","speed60":"60","speed70":"70","speed80":"80","speed90":"90","speed100":"100","speed110":"110","speed120":"120","speed-unknown":"unknown","RoadWidth":"Road Width","road-width-5":"Up to 5 meters","road-width-7":"5-7 meters","road-width-10":"7-10.5 meters","road-width-14":"10.5-14 meters","road-width-14+":"14+ meters","MultiLane":"Multi Lane","Separator":"separator (in Multi Lane)","separator-fence":"fence","separator-built":"built, no fence","separator-not-built":"not built","separator-paint":"paint","separator-ohter":"oter","separator-not-relevant":"not-relevant","OneLane":"One Lane","onelane-twoway-line":"two-way + line","onelane-twoway-noline":"two-way no line","onelane-oneway":"one way","onelane-unknown":"unknown lane count","onelane-not-relevant":"not-relevant","check_one_checkbox":"Please Check at least one Checkbox.","Submit":"Submit","Loading":"Loading","in-region":"In The Region","casualties":"Casualties","killed":"Killed","severely-injured":"Severely-injured","by-years":"By Years","GroupBy":"Group By","Found":"Found","resize":"Resize","NoResultsFound":"No results found","export-to-csv":"Export to CSV","general":"General","kids":"Kids","hide-description":"Hide Text","show-description":"Show Text","not-found-images":"No photos found for this category","Filters":"Filters","My-Filters":"My-Filters","Filter":"Filter","Save":"Save","#Map":"=========Map==========","MarkersColorType":"Color By","MarkersIconType":"Icon By"}')},200:function(e){e.exports=JSON.parse('{"2015":"2015","2016":"2016","2017":"2017","2018":"2018","2019":"2019","2020":"2020","test":"\u05d1\u05d3\u05d9\u05e7\u05ea \u05ea\u05e8\u05d2\u05d5\u05dd","Hebrew":"\u05e2\u05d1\u05e8\u05d9\u05ea","English":"English","Home":"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea","HeatMap":"\u05de\u05e4\u05ea \u05d7\u05d5\u05dd","Markers":"\u05e1\u05de\u05e0\u05d9\u05dd","Cities":"\u05d9\u05d9\u05e9\u05d5\u05d1\u05d9\u05dd","About":"\u05d0\u05d5\u05d3\u05d5\u05ea","Israel":"\u05d9\u05e9\u05e8\u05d0\u05dc","Charts":"\u05d2\u05e8\u05e4\u05d9\u05dd","Groups":"\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea","Map":"\u05de\u05e4\u05d4","Chart Options":"\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d2\u05e8\u05e4\u05d9\u05dd","ChartType":"\u05e1\u05d5\u05d2 \u05d2\u05e8\u05e3","BarChart":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05de\u05d5\u05d3\u05d5\u05ea","PieChart":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05d5\u05d2\u05d4","HorizontalBar":"\u05ea\u05e8\u05e9\u05d9\u05dd \u05e2\u05de\u05d5\u05d3\u05d5\u05ea \u05d0\u05d5\u05e4\u05e7\u05d9\u05d5\u05ea","PercentageChart":"\u05e2\u05e8\u05db\u05d9 \u05d0\u05d7\u05d5\u05d6\u05d9\u05dd","small-markers":"\u05e1\u05de\u05df \u05e7\u05d8\u05df","big-markers":"\u05e1\u05de\u05df \u05d2\u05d3\u05d5\u05dc","Table":"\u05d8\u05d1\u05dc\u05d4","Images":"\u05ea\u05de\u05d5\u05e0\u05d5\u05ea","Filter Options":"\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e1\u05d9\u05e0\u05d5\u05df","HideFilter":"\u05d4\u05e1\u05ea\u05e8 \u05e4\u05d9\u05dc\u05d8\u05e8","ShowFilter":"\u05d4\u05e6\u05d2 \u05e4\u05d9\u05dc\u05d8\u05e8","Close":"\u05e1\u05d2\u05d5\u05e8","ShowAllVehicleTypes":"\u05d4\u05e6\u05d2 \u05db\u05dc \u05e1\u05d5\u05d2\u05d9 \u05d4\u05e8\u05db\u05d1\u05d9\u05dd","When":"\u05de\u05ea\u05d9","FromYear":"\u05de\u05e9\u05e0\u05d4","ToYear":"\u05e2\u05d3 \u05e9\u05e0\u05d4","DayNight":"\u05d9\u05d5\u05dd\\\\\u05dc\u05d9\u05dc\u05d4","day":"\u05d9\u05d5\u05dd","night":"\u05dc\u05d9\u05dc\u05d4","WeekDay":"\u05d9\u05d5\u05dd \u05d1\u05e9\u05d1\u05d5\u05e2","Year":"\u05e9\u05e0\u05d4","Month":"\u05d7\u05d5\u05d3\u05e9","Where":"\u05d0\u05d9\u05e4\u05d4","LocationAccuracy":"\u05d3\u05d9\u05d5\u05e7 \u05de\u05d9\u05e7\u05d5\u05dd","accurate_location":"\u05e2\u05d9\u05d2\u05d5\u05df \u05de\u05d3\u05d5\u05d9\u05e7","city_center":"\u05de\u05e8\u05db\u05d6 \u05d9\u05e9\u05d5\u05d1","road_center":"\u05de\u05e8\u05db\u05d6 \u05d3\u05e8\u05da","km_cneter":"\u05de\u05e8\u05db\u05d6 \u05e7\u05d9\u05dc\u05d5\u05de\u05d8\u05e8","no_location":"\u05dc\u05d0 \u05e2\u05d5\u05d2\u05df","City":"\u05d9\u05d9\u05e9\u05d5\u05d1","CityByPop":"\u05d1\u05d9\u05d7\u05e1 \u05dc\u05de\u05d0\u05d4 \u05d0\u05dc\u05e3 \u05ea\u05d5\u05e9\u05d1\u05d9\u05dd","city_size":"\u05d9\u05e9\u05d5\u05d1\u05d9\u05dd \u05d1\u05d2\u05d5\u05d3\u05dc","200K-1000K":"200K-1000K","100K-200K":"100K-200K","50K-100K":"50K-100K","20K-50K":"20K-50K","10K-20K":"10K-20K","0-10K":"0-10K","ChooseCity":"\u05d1\u05d7\u05e8\u05d5 \u05d9\u05d9\u05e9\u05d5\u05d1...","several-cities":"\u05de\u05e1\u05e4\u05e8 \u05d9\u05e9\u05d5\u05d1\u05d9\u05dd","Street":"\u05e8\u05d7\u05d5\u05d1","Road":"\u05db\u05d1\u05d9\u05e9","several-roads":"\u05de\u05e1\u05e4\u05e8 \u05db\u05d1\u05d9\u05e9\u05d9\u05dd","RoadSegment":"\u05e7\u05d8\u05e2 \u05db\u05d1\u05d9\u05e9","Who":"\u05de\u05d9","Severity":"\u05d7\u05d5\u05de\u05e8\u05d4","dead":"\u05d4\u05e8\u05d5\u05d2","severly-injured":"\u05e7\u05e9\u05d4","Vehicle":"\u05db\u05dc\u05d9 \u05e8\u05db\u05d1","TypeInjured":"\u05e1\u05d5\u05d2 \u05e0\u05e4\u05d2\u05e2","all":"\u05db\u05dc \u05d4\u05e1\u05d5\u05d2\u05d9\u05dd","pedestrian":"\u05d4\u05d5\u05dc\u05da-\u05e8\u05d2\u05dc","cyclist":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","motorcycle":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","wheels4+":"4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","other":"\u05db\u05dc\u05d9\u05dd \u05d7\u05e9\u05de\u05dc\u05d9\u05d9\u05dd","cyclist-d":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd, \u05e0\u05d4\u05d2","cyclist-p":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd, \u05e0\u05d5\u05e1\u05e2","inj-unknown-d":"\u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2, \u05e0\u05d4\u05d2","inj-unknown-p":"\u05e8\u05db\u05d1 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2, \u05e0\u05d5\u05e1\u05e2","motorcycle-d":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2, \u05e0\u05d4\u05d2","motorcycle-p":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2, \u05e0\u05d5\u05e1\u05e2","wheels4+-d":"\u05e0\u05d4\u05d2 4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","wheels4+-p":"\u05e0\u05d5\u05e1\u05e2 4+ \u05d2\u05dc\u05d2\u05dc\u05d9\u05dd","Gender":"\u05de\u05d2\u05d3\u05e8","female":"\u05e0\u05e7\u05d1\u05d5\u05ea","male":"\u05d6\u05db\u05e8\u05d9\u05dd","Age":"\u05d2\u05d9\u05dc","00-04":"00-04","05-09":"05-09","10-14":"10-14","15-19":"15-19","20-29":"20-29","30-39":"30-39","40-49":"40-49","50-59":"50-59","60-69":"60-69","70-79":"70-79","80+":"80+","_id":"\u05e1\u05d5\u05d2","Population":"\u05de\u05d5\u05e6\u05d0","jews":"\u05d9\u05d4\u05d5\u05d3\u05d9\u05dd","arabs":"\u05e2\u05e8\u05d1\u05d9\u05dd","immigrants":"\u05de\u05d4\u05d2\u05e8\u05d9\u05dd","others":"\u05d0\u05d7\u05e8\u05d9\u05dd","unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","What":"\u05de\u05d4","AccidentType":"\u05e1\u05d5\u05d2 \u05ea\u05d0\u05d5\u05e0\u05d4","accType":{"ped":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","front-side":"\u05d7\u05d6\u05d9\u05ea-\u05e6\u05d3","front-front":"\u05d7\u05d6\u05d9\u05ea-\u05d7\u05d6\u05d9\u05ea","front-rear":"\u05d7\u05d6\u05d9\u05ea-\u05d0\u05d7\u05d5\u05e8","side-side":"\u05e6\u05d3-\u05e6\u05d3","obstacle1":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05e9\u05e0\u05e2\u05e6\u05e8 \u05dc\u05dc\u05d0 \u05d7\u05e0\u05d9\u05d4","obstacle2":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e8\u05db\u05d1 \u05d7\u05d5\u05e0\u05d4","obstacle3":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05e2\u05e6\u05dd \u05d3\u05d5\u05de\u05dd","offroad":"\u05d9\u05e8\u05d9\u05d3\u05d4 \u05de\u05d4\u05db\u05d1\u05d9\u05e9 \u05d0\u05d5 \u05e2\u05dc\u05d9\u05d9\u05d4 \u05dc\u05de\u05d3\u05e8\u05db\u05d4","obstacle":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e2\u05e6\u05dd","turning-over":"\u05d4\u05ea\u05d4\u05e4\u05db\u05d5\u05ea","slip":"\u05d4\u05d7\u05dc\u05e7\u05d4","passenger":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05d5\u05e1\u05e2 \u05d1\u05ea\u05d5\u05da \u05db\u05dc\u05d9 \u05d4\u05e8\u05db\u05d1","falloff":"\u05e0\u05e4\u05d9\u05dc\u05d4 \u05de\u05e8\u05db\u05d1 \u05e0\u05e2","other":"\u05d0\u05d7\u05e8","rear-front":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d1\u05d7\u05d6\u05d9\u05ea","rear-side":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d0\u05d7\u05d5\u05e8 \u05d0\u05dc \u05e6\u05d3","animal":"\u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05e2\u05dd \u05d1\u05e2\u05dc \u05d7\u05d9\u05d9\u05dd","cargo":"\u05e4\u05d2\u05d9\u05e2\u05d4 \u05de\u05de\u05d8\u05e2\u05df \u05e9\u05dc \u05e8\u05db\u05d1"},"SelfOrNotAcc":"\u05ea\u05d0\u05d5\u05e0\u05d4 \u05e2\u05e6\u05de\u05d9\u05ea\\\\\u05de\u05e8\u05d5\u05d1\u05d4","selfAccType":{"self":"\u05e2\u05e6\u05de\u05d9\u05ea","non-self":"\u05dc\u05d0 \u05e2\u05e6\u05de\u05d9\u05ea"},"Vehicles":"\u05e8\u05db\u05d1\u05d9\u05dd \u05de\u05e2\u05d5\u05e8\u05d1\u05d9\u05dd","WhatVehicle":"\u05d0\u05d9\u05d6\u05d4 \u05e8\u05db\u05d1","VehicleType":"\u05e8\u05db\u05d1 \u05d4\u05e0\u05e4\u05d2\u05e2","vclType":{"all":"\u05db\u05dc \u05d4\u05e1\u05d5\u05d2\u05d9\u05dd","pedestrian":"\u05d4\u05d5\u05dc\u05da \u05e8\u05d2\u05dc","mobilityscooter":"\u05e7\u05dc\u05e0\u05d5\u05e2\u05d9\u05ea","bicycle":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd","e-scooter":"\u05e7\u05d5\u05e8\u05e7\u05d9\u05e0\u05d8 \u05d7\u05e9\u05de\u05dc\u05d9","e-bike":"\u05d0\u05d5\u05e4\u05e0\u05d9\u05d9\u05dd \u05d7\u05e9\u05de\u05dc\u05d9\u05d9\u05dd","motorcycle":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2","motorcycle1":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 \u05e2\u05d3 50 \u05e1\u05de\\"\u05e7","motorcycle2":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 51 - 125 \u05e1\u05de\\"\u05e7","motorcycle3":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 126 - 400 \u05e1\u05de\\"\u05e7","motorcycle4":"\u05d0\u05d5\u05e4\u05e0\u05d5\u05e2 401+ \u05e1\u05de\\"\u05e7","car":"\u05de\u05db\u05d5\u05e0\u05d9\u05ea","taxi":"\u05de\u05d5\u05e0\u05d9\u05ea","minbuss":"\u05de\u05d9\u05e0\u05d9\u05d1\u05d5\u05e1","bus":"\u05d0\u05d5\u05d8\u05d5\u05d1\u05d5\u05e1","tranzit":"\u05d8\u05e8\u05e0\u05d6\u05d9\u05d8","tender":"\u05d8\u05e0\u05d3\u05e8","truck":"\u05de\u05e9\u05d0\u05d9\u05ea","tractor":"\u05d8\u05e8\u05e7\u05d8\u05d5\u05e8","truck1":"\u05de\u05e9\u05d0\u05d9\u05ea 3.6 - 9.9 \u05d8\u05d5\u05df","truck2":"\u05de\u05e9\u05d0\u05d9\u05ea 10 - 12 \u05d8\u05d5\u05df","truck3":"\u05de\u05e9\u05d0\u05d9\u05ea 12.1 - 15.9 \u05d8\u05d5\u05df","truck4":"\u05de\u05e9\u05d0\u05d9\u05ea 16 - 33.9 \u05d8\u05d5\u05df","truck5":"\u05de\u05e9\u05d0\u05d9\u05ea 34+ \u05d8\u05d5\u05df","train":"\u05e8\u05db\u05d1\u05ea","other":"\u05d0\u05d7\u05e8"},"WhatRoad":"\u05ea\u05e0\u05d0\u05d9 \u05d3\u05e8\u05da","RoadType":"\u05e1\u05d5\u05d2 \u05d3\u05e8\u05da","urban-junction":"\u05e6\u05d5\u05de\u05ea \u05e2\u05d9\u05e8\u05d5\u05e0\u05d9","urban-road":"\u05d3\u05e8\u05da \u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea","non-urban-junction":"\u05e6\u05d5\u05de\u05ea \u05d1\u05d9\u05e0\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9","non-urban-road":"\u05d3\u05e8\u05da \u05d1\u05d9\u05e0\u05e2\u05d9\u05e8\u05d5\u05e0\u05d9\u05ea","SpeedLimit":"\u05de\u05d2\u05d1\u05dc\u05ea \u05de\u05d4\u05d9\u05e8\u05d5\u05ea","speed50":"\u05e2\u05d3 50","speed60":"60","speed70":"70","speed80":"80","speed90":"90","speed100":"100","speed110":"110","speed120":"120","speed-unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2","RoadWidth":"\u05e8\u05d5\u05d7\u05d1 \u05d3\u05e8\u05da","road-width-5":"\u05e2\u05d3 5 \u05de\u05d8\u05e8","road-width-7":"5-7 \u05de\u05d8\u05e8","road-width-10":"7-10.5 \u05de\u05d8\u05e8","road-width-14":"10.5-14 \u05de\u05d8\u05e8","road-width-14+":"14+ \u05de\u05d8\u05e8","MultiLane":"\u05e8\u05d1-\u05e0\u05ea\u05d9\u05d1\u05d9","Separator":"\u05de\u05e4\u05e8\u05d3\u05d4 (\u05e8\u05d1 \u05e0\u05ea\u05d9\u05d1\u05d9)","separator-fence":"\u05d2\u05d3\u05e8","separator-built":"\u05d1\u05e0\u05d5\u05d9\u05d4 \u05dc\u05dc\u05d0 \u05d2\u05d3\u05e8","separator-not-built":"\u05dc\u05d0 \u05d1\u05e0\u05d5\u05d9\u05d4","separator-paint":"\u05e6\u05d1\u05e2","separator-ohter":"\u05d0\u05d7\u05e8","separator-not-relevant":"\u05dc\u05d0 \u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9","OneLane":"\u05e0\u05ea\u05d9\u05d1 \u05d1\u05d5\u05d3\u05d3","onelane-twoway-line":"\u05d3\u05d5 \u05e1\u05d9\u05d8\u05e8\u05d9 + \u05e7\u05d5 \u05d4\u05e4\u05e8\u05d3\u05d4 \u05e8\u05e6\u05d5\u05e3","onelane-twoway-noline":"\u05d3\u05d5 \u05e1\u05d9\u05d8\u05e8\u05d9 \u05d0\u05d9\u05df \u05e7\u05d5 \u05d4\u05e4\u05e8\u05d3\u05d4 \u05e8\u05e6\u05d5\u05e3","onelane-oneway":"\u05d7\u05d3 \u05e1\u05d9\u05d8\u05e8\u05d9","onelane-unknown":"\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2 \u05de\u05e1 \u05de\u05e1\u05dc\u05d5\u05dc\u05d9\u05dd","onelane-not-relevant":"\u05dc\u05d0 \u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9","check_one_checkbox":"\u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8\u05d5 \u05dc\u05e4\u05d7\u05d5\u05ea \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d0\u05d7\u05ea","Submit":"\u05e1\u05e0\u05df","Loading":"\u05d8\u05d5\u05e2\u05df","in-region":"\u05d1\u05d0\u05d6\u05d5\u05e8","casualties":"\u05e0\u05e4\u05d2\u05e2\u05d9\u05dd","killed":"\u05d4\u05e8\u05d5\u05d2\u05d9\u05dd","severely-injured":"\u05e4\u05e6\u05d5\u05e2\u05d9\u05dd \u05e7\u05e9\u05d9\u05dd","by-years":"\u05dc\u05e4\u05d9 \u05e9\u05e0\u05d9\u05dd","GroupBy":"\u05e7\u05d1\u05e5 \u05dc\u05e4\u05d9","Found":"\u05e0\u05de\u05e6\u05d0\u05d5","resize":"\u05d4\u05d2\u05d3\u05dc\u05d4","NoResultsFound":"\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea","export-to-csv":"\u05d9\u05e6\u05d5\u05d0 \u05dc\u05e7\u05d5\u05d1\u05e5 CSV","general":"\u05db\u05dc\u05dc\u05d9","kids":"\u05d9\u05dc\u05d3\u05d9\u05dd","hide-description":"\u05d4\u05e1\u05ea\u05e8 \u05ea\u05d0\u05d5\u05e8","show-description":"\u05d4\u05e6\u05d2 \u05ea\u05d0\u05d5\u05e8","not-found-images":"\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05dc\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05d6\u05d5","Filters":"\u05e1\u05d9\u05e0\u05d5\u05e0\u05d9\u05dd","My-Filters":"\u05e1\u05d9\u05e0\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05d9","Filter":"\u05e1\u05d9\u05e0\u05d5\u05df","Save":"\u05e9\u05de\u05d5\u05e8","#Map":"=========Map==========","MarkersColorType":"\u05e6\u05d1\u05e2 \u05dc\u05e4\u05d9","MarkersIconType":"\u05e1\u05de\u05e0\u05d9\u05dd \u05dc\u05e4\u05d9"}')},206:function(e){e.exports=JSON.parse('["1","2","3","4","5","6","7","9","10","12","20","22","25","31","34","35","38","40","41","42","44","45","46","50","55","57","60","61","65","66","67","70","71","73","75","77","79","80","85","87","89","90","91","92","98","99","204","206","211","222","224","225","227","232","234","241","258","264","293","310","316","317","325","334","352","353","356","358","367","375","383","386","395","396","398","402","404","406","410","411","412","417","424","425","431","434","436","437","443","444","446","449","453","457","458","461","463","465","466","471","481","482","483","505","508","531","551","553","554","555","557","562","574","578","581","596","611","650","651","652","653","654","669","671","672","675","705","716","717","721","722","752","754","762","767","768","772","780","781","784","789","804","805","806","807","808","854","864","866","886","888","899","918","959","977","978","989","2104","2114","2211","2229","2333","2357","2410","2444","2544","2933","3157","3253","3401","3402","3411","3412","3413","3415","3500","3507","3511","3523","3533","3553","3565","3631","3633","3703","3711","3712","3755","3835","3855","3866","3877","3922","3933","3955","3965","4060","4101","4103","4123","4173","4303","4311","4313","4370","4372","4402","4404","4460","4570","4578","4612","4613","4622","4711","4775","5050","5060","5062","5066","5233","5442","5443","5505","5511","5519","5613","5614","5702","5710","5711","5714","5720","5785","5803","6000","6353","6400","6403","6502","6511","6513","6515","6517","6523","6524","6531","6533","6535","6661","6667","6692","6724","6953","6954","7021","7155","7212","7255","7266","7268","7269","7276","7513","7516","7555","7626","7703","7899","7912","7933","7935","7955","8050","8071","8510","8533","8534","8544","8556","8655","8677","8697","8721","8833","8834","8900","8913","8944","8993","9088","9323","9330","9357","9778","9779","9888","9898","9998"]')},216:function(e,t,r){},221:function(e,t,r){},36:function(e,t,r){"use strict";var a=r(12),i=r(30),n=new(function(){function e(){Object(a.a)(this,e)}return Object(i.a)(e,[{key:"log",value:function(e){console.log(e)}},{key:"error",value:function(e){console.error(e)}}]),e}());Object.freeze(n),t.a=n},383:function(e,t,r){},384:function(e,t,r){},387:function(e,t,r){},388:function(e,t,r){},389:function(e,t,r){},390:function(e,t,r){},391:function(e,t,r){},392:function(e,t,r){},393:function(e,t,r){"use strict";r.r(t);var a=r(0),i=r.n(a),n=r(20),o=r.n(n),s=(r(216),r(52)),c=r(15),l=r(144),u=r(10),p=r(193),h=r(66),b=r(12),y=r(30),d=r(114),f=r(110),j=r(36),g=r(1),m=function(e){Object(d.a)(r,e);var t=Object(f.a)(r);function r(e){var a;return Object(b.a)(this,r),(a=t.call(this,e)).state={hasError:!1},a}return Object(y.a)(r,[{key:"componentDidCatch",value:function(e,t){j.a.error(e)}},{key:"render",value:function(){return this.state.hasError?Object(g.jsx)("h1",{children:"Something went wrong."}):this.props.children}}],[{key:"getDerivedStateFromError",value:function(e){return{hasError:!0}}}]),r}(i.a.Component),v=r(11),O=r(204),w=(r(221),function(){return Object(g.jsxs)("div",{className:"loader-con",children:[" ",Object(g.jsx)(O.a,{animation:"border",variant:"info"})]})}),T=r(147),x=Object(a.lazy)((function(){return Promise.all([r.e(7),r.e(11)]).then(r.bind(null,541))})),S=Object(a.lazy)((function(){return Promise.all([r.e(0),r.e(8)]).then(r.bind(null,543))})),C=Object(a.lazy)((function(){return Promise.all([r.e(6),r.e(9)]).then(r.bind(null,538))})),B=Object(a.lazy)((function(){return Promise.all([r.e(0),r.e(5),r.e(13)]).then(r.bind(null,536))})),F=Object(a.lazy)((function(){return Promise.all([r.e(1),r.e(10)]).then(r.bind(null,537))})),k={tab:{marginTop:"0.5rem"},tabMap:{marginTop:"0.1rem"},mapCard:{width:"150px",height:"35px"}},V=Object(u.a)((function(e){var t=e.type,r=Object(l.a)().t,i=Object(v.a)(),n=i.mapStore,o=i.uiStore;return Object(g.jsxs)(p.a,{mountOnEnter:!0,activeKey:o.currentTab,id:"main-tabs",onSelect:function(e){n.isReadyToRenderMap="map"===e,o.setCurrentTab(e)},children:[Object(g.jsx)(h.a,{style:k.tab,eventKey:"charts",title:r("Charts"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(x,{})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"groups",title:r("Groups"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(S,{})})})}),Object(g.jsx)(h.a,{style:k.tabMap,eventKey:"map",title:r("Map"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)(T.a,{children:Object(g.jsx)(C,{})})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"table",title:r("Table"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)("div",{className:"col-auto",children:Object(g.jsx)(B,{})})})})}),Object(g.jsx)(h.a,{style:k.tab,eventKey:"image",title:r("Images"),children:Object(g.jsx)(m,{children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsx)("div",{className:"col-auto",children:Object(g.jsx)(F,{type:t})})})})})]})})),z=V,M=r(70),A=r(44),L=r(95),I=r(16),N=r(54),D=r(108),R=r(23),P=r(107),G=(r(187),r(77)),Q=Object(u.a)((function(e){var t=e.isMultiple,r=void 0!==t&&t,a=Object(v.a)().filterStore,i=a.cities,n=a.updateCities,o=Object(l.a)().t;return Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlCity",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[o("City"),":"]}),Object(g.jsx)(P.Typeahead,{id:"typeaheadCity",onChange:function(e){n(e,!0)},options:G,multiple:r,selected:i.arrValues})]})})),Y=Object(u.a)((function(){var e=Object(v.a)().filterStore,t=e.streets,r=e.cities,a=Object(l.a)().t;return r.arrValues.length>0?Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlStreet",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[a("Street"),":"]}),Object(g.jsx)(I.a.Control,{type:"input",placeholder:"",value:t.arrValues.toString(),onChange:function(t){e.updateStreets(t.target.value)}})]}):null})),W=r(206),_=Object(u.a)((function(e){var t=e.isMultiple,r=void 0===t||t,a=Object(v.a)().filterStore,i=a.roads,n=a.setRoads,o=i.arrValues,s=Object(l.a)().t;return Object(g.jsxs)(I.a.Group,{controlId:"filterForm.ControlRoad",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[s("Road"),":"]}),Object(g.jsx)(P.Typeahead,{id:"typeaheadCity",onChange:function(e){n(e)},inputProps:{type:"number"},options:W,multiple:r,selected:o})]})})),K=Object(u.a)((function(e){e.isMultiple;var t=Object(l.a)().t,r=Object(v.a)().filterStore,a=r.cities,i=r.roadSegment,n=r.updateRoadSegment;return 0===a.arrValues.length?Object(g.jsxs)(I.a.Group,{controlId:"exampleForm.ControlRoadSegment",children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[t("RoadSegment"),":"]}),Object(g.jsx)(I.a.Control,{type:"input",placeholder:"",value:i.arrValues.toString(),onChange:function(e){n(e.target.value)}})]}):null})),q=r(188),E=r(48),H=Object(u.a)((function(e){var t=e.formName,r=e.colFilter,a=e.onChange,i=Object(l.a)().t,n=r.isAllValsFalse,o=r.name,s=r.arrTypes,c=function(e,t){a(e,t)},u=Object(g.jsxs)("div",{style:{marginTop:".25rem",fontSize:"80%",color:"#dc3545"},children:[" ",i("check_one_checkbox")]}),p=n?u:null,h=s.map((function(e,t){return Object(E.a)([e.checked],Object(g.jsx)(q.a,{label:e.label,group:r.name,id:t,checked:e.checked,onChange:function(e){c(t,e.target.checked)}},e.label))}));return Object(g.jsx)("div",{className:"injury-level-form",children:Object(g.jsxs)(I.a.Group,{controlId:"".concat(t,".Control").concat(o),children:[Object(g.jsxs)(I.a.Label,{className:"filterLable",children:[i(o),":"]}),h,p]})})})),J=r(62),U=(r(384),{}),X={color:"#007bff",cursor:"pointer"},Z=Object(u.a)((function(e){Object(L.a)(e);var t=Object(v.a)().filterStore,r=t.injurySeverity,a=t.updateInjurySeverity,n=t.formCardKey;return Object(g.jsx)(i.a.Fragment,{children:Object(g.jsxs)(I.a,{children:[Object(g.jsxs)(N.a,{defaultActiveKey:n.toString(),children:[Object(g.jsx)(ee,{}),Object(g.jsx)(ie,{}),Object(g.jsx)(te,{}),Object(g.jsx)(re,{}),Object(g.jsx)(ae,{}),Object(g.jsx)(ne,{})]}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:r,onChange:a})]})})}));function $(e){var t=e.children,r=e.style,i=e.eventKey,n=e.onClick,o=Object(a.useState)(!1),s=Object(A.a)(o,2),c=s[0],l=s[1],u=function(){return l(!c)},p=c?{textDecoration:"underline"}:{textDecoration:"none"},h=Object(D.b)(i,(function(){return n(i)}));return Object(g.jsx)("div",{children:Object(g.jsx)("a",{style:Object(M.a)(Object(M.a)({},r),p),onClick:h,onMouseEnter:u,onMouseLeave:u,children:t})})}var ee=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhen,a=t.startYear,i=t.setStartYear,n=t.endYear,o=t.setEndYear,s=t.dayNight,c=t.updateDayNight,u=t.setFormCardKey,p=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"0",style:p,onClick:u,children:e("When")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"0",className:"filterControls",children:Object(g.jsx)(R.a.Body,{children:Object(g.jsxs)("div",{children:[Object(g.jsxs)("div",{className:"accordion-when-selects",children:[Object(g.jsx)(J.a,{label:"FromYear",value:String(a.queryValue),data:a.arrTypes,onChange:function(e){i(e.target.value)}}),Object(g.jsx)(J.a,{label:"ToYear",value:String(n.queryValue),data:n.arrTypes,onChange:function(e){o(e.target.value)}})]}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:c})]})})})]})})),te=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhere,a=t.roadTypes,i=t.updateRoadType,n=t.locationAccuracy,o=t.updateLocationAccuracy,s=t.isMultipleCities,c=t.cityPopSizeRange,u=t.setCityPopSizeRange,p=t.setFormCardKey,h=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"2",style:h,onClick:p,children:e("Where")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"2",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(Q,{isMultiple:s}),Object(g.jsx)(Y,{}),Object(g.jsx)(_,{}),Object(g.jsx)(K,{}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(J.a,{style:{display:"flex-end",alignItems:"center"},label:"city_size",data:c.arrTypes,valProp:"val",contentProp:"text",onChange:function(e){return u(e.target.value)}}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o})]})})]})})),re=Object(u.a)((function(){var e=Object(l.a)().t,t=(Object(c.f)(),Object(v.a)().filterStore),r=t.isValidWho,a=t.genderTypes,i=t.updateGenderType,n=t.ageTypes,o=t.updateAgeType,s=t.populationTypes,u=t.updatePopulationType,p=t.setFormCardKey,h=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"3",style:h,onClick:p,children:e("Who")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"3",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:u})]})})]})})),ae=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhat,a=t.accidentType,i=t.updateAccidentType,n=t.setFormCardKey,o=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"4",style:o,onClick:n,children:e("What")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"4",className:"filterControls",children:Object(g.jsx)("div",{children:Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i})})})]})})),ie=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.injTypes,a=t.updateInjuerdType,i=t.vehicleType,n=t.updateVehicleType,o=t.involvedVehicle,s=t.setInvolvedVehicle,c=t.isValidWhatVehicle,u=t.setFormCardKey,p=c?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"1",style:p,onClick:u,children:e("WhatVehicle")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"1",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:r,onChange:a}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:i,onChange:n}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:o,onChange:s})]})})]})})),ne=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.isValidWhatRoad,a=t.speedLimit,i=t.updateSpeedLimit,n=t.roadWidth,o=t.updateRoadWidth,s=t.separator,c=t.updateSeparator,u=t.oneLane,p=t.updateOneLane,h=t.setFormCardKey,b=r?X:U;return Object(g.jsxs)(R.a,{children:[Object(g.jsx)(R.a.Header,{children:Object(g.jsx)($,{eventKey:"5",style:b,onClick:h,children:e("WhatRoad")})}),Object(g.jsx)(N.a.Collapse,{eventKey:"5",className:"filterControls",children:Object(g.jsxs)("div",{children:[Object(g.jsx)(H,{formName:"exampleForm",colFilter:a,onChange:i}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:n,onChange:o}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:s,onChange:c}),Object(g.jsx)(H,{formName:"exampleForm",colFilter:u,onChange:p})]})})]})})),oe=Z,se=r(191),ce=Object(u.a)((function(){var e=Object(v.a)(),t=e.filterStore,r=e.uiStore,a=r.showFilterModal,i=r.setShowFilterModal;return Object(g.jsx)(se.a,{action:function(){t.submitFilter(),setTimeout((function(){i(!a)}),1e3)},size:"lg",title:"Filters",setShow:i,showModal:a,children:Object(g.jsx)(oe,{})})}));function le(e){var t=e.color?e.color:"blue",r=e.height?e.height:24,a=e.width?e.width:24;return Object(g.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",height:r,viewBox:"0 0 24 24",width:a,children:[Object(g.jsx)("path",{d:"M0 0h24m0 24H0",fill:"none"}),Object(g.jsx)("path",{d:"M7 6h10l-5.01 6.3L7 6zm-2.75-.39C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0018.95 4H5.04c-.83 0-1.3.95-.79 1.61z",fill:t}),Object(g.jsx)("path",{d:"M0 0h24v24H0V0z",fill:"none"})]})}var ue=i.a.memo(le),pe=(r(387),Object(u.a)((function(){var e=Object(v.a)().uiStore,t=e.showFilterModal,r=e.setShowFilterModal,a=Object(E.a)([],Object(g.jsx)(ue,{color:"var(--onprimary-color)",height:40,width:34}));return Object(g.jsx)(g.Fragment,{children:Object(g.jsx)("span",{title:"Filter",className:"btn-sm filter-btn",onClick:function(){return r(!t)},children:a})})}))),he=r(116),be=(r(388),Object(u.a)((function(e){var t=Object(l.a)().t,r=Object(v.a)().filterStore;return Object(g.jsxs)("div",{className:"sidebar",children:[Object(g.jsx)("div",{className:"filters",children:Object(g.jsx)(oe,{})}),Object(g.jsx)(he.a,{style:{margin:"0.5rem"},variant:"primary",onClick:function(){return r.submitFilter()},disabled:r.isLoading||!r.isValidAllFilters,children:r.isLoading?t("Loading"):t("Submit")}),Object(g.jsxs)(he.a,{style:{margin:"0.5rem"},variant:"info",onClick:function(){return alert("action in filter store to collect filters")},disabled:r.isLoading||!r.isValidAllFilters,children:[t("Save")," ",t("Filter")]})]})}))),ye=(r(389),function(e){var t=e.children;return Object(g.jsxs)("div",{className:"grid-with-drawer",children:[Object(g.jsx)("div",{className:"grid-drawer",children:Object(g.jsx)(be,{})}),Object(g.jsx)("div",{className:"grid-main",children:t})]})}),de=Object(u.a)((function(){var e=Object(v.a)().filterStore.dayNight,t=""!==e.text?", ".concat(e.text):"";return Object(g.jsx)("span",{children:t})})),fe=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.cities,a=t.cityPopSizeRange,i=t.roads,n=t.roadTypes,o=t.locationAccuracy,s=e("Israel");return""!==r.text?s="".concat(r.text):""!==a.text?s="".concat(e("city_size")," ").concat(a.text):""!==i.text?s="".concat(e(i.name)," ").concat(i.text):""!==n.text&&(s="".concat(n.text)),""!=o.text&&(s+=", ".concat(o.text)),Object(g.jsx)("span",{children:s})})),je=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.genderTypes,a=t.ageTypes,i=t.populationTypes,n=""!=r.text?", ".concat(r.text):"";return""!=i.text&&(n+=", ".concat(i.text)),""!=a.text&&(n+=", ".concat(e("Age"),": ").concat(a.text)),Object(g.jsx)("span",{children:n})})),ge=Object(u.a)((function(){var e=Object(v.a)().filterStore.accidentType,t=""!==e.text?", ".concat(e.text):"";return Object(g.jsx)("span",{children:t})})),me=Object(u.a)((function(){var e=Object(l.a)().t,t=Object(v.a)().filterStore,r=t.injTypes,a=t.vehicleType,i=t.involvedVehicle,n=""!==r.text?", ".concat(r.text):"";return""!==a.text&&(n+=", ".concat(e("VehicleType"),": ").concat(a.text)),""!=i.text&&(n+=", ".concat(e("Vehicles"),": ").concat(i.text)),Object(g.jsx)("span",{children:n})})),ve=Object(u.a)((function(e){Object(L.a)(e);var t={div:{marginTop:"0.8rem",marginLeft:"1rem",marginRight:"1rem",marginBottom:"0.1rem"}},r=Object(l.a)().t,a=Object(v.a)().filterStore,i=a.casualtiesNames,n=a.isLoadingInjuriesCount,o=a.injuriesCount;return n?Object(g.jsxs)("div",{style:t.div,children:[" ",r("Loading")," "]}):o>0?Object(g.jsxs)("h5",{style:t.div,children:[Object(g.jsx)(fe,{}),Object(g.jsx)(me,{}),Object(g.jsx)(je,{}),Object(g.jsx)(de,{}),Object(g.jsx)(ge,{}),", ",r("Found")," ",o," ",r(i)," "]}):Object(g.jsx)("h5",{style:t.div,children:r("NoResultsFound")})})),Oe=Object(u.a)((function(){Object(l.a)().t;var e=Object(v.a)(),t=e.mapStore,r=e.filterStore,i=e.uiStore,n=r.setIsMultipleCities,o=r.updateCities,s=r.submitFilter,c=i.setCurrentPage,u=i.setStoreByQuery,p=i.showFilterModal,h=i.setInitPage;Object(a.useEffect)((function(){c("home"),n(!0)}),[]),t.isReadyToRenderMap=!1,Object(a.useEffect)((function(){h(!0),o([],!1),u("charts"),s(),h(!1)}),[s,o]);var b=Object(E.a)([p],Object(g.jsx)(ce,{}));return Object(g.jsx)(ye,{children:Object(g.jsxs)("div",{children:[Object(g.jsxs)("div",{children:[Object(g.jsx)(ve,{}),Object(g.jsx)(pe,{})]}),p&&b,Object(g.jsx)(z,{type:"home"})]})})})),we=function(){return Object(g.jsx)(Oe,{})},Te=Object(u.a)((function(){var e=Object(v.a)(),t=e.filterStore,r=e.uiStore,i=t.cityResult,n=t.isUpdateFromUrl,o=t.setIsUpdateFromUrl,s=r.setCurrentPage,c=r.setStoreByQuery,l=r.showFilterModal,u=r.setInitPage;Object(a.useEffect)((function(){return s("city"),t.isMultipleCities=!1,""!==i&&t.submitFilter(),function(){return o(!0)}}),[]),Object(a.useEffect)((function(){u(!0),""===i&&n&&(o(!1),c("map","\u05ea\u05dc \u05d0\u05d1\u05d9\u05d1 -\u05d9\u05e4\u05d5"),t.submitFilter()),u(!1)}),[]);var p=Object(E.a)([l],Object(g.jsx)(ce,{}));return Object(g.jsx)(ye,{children:Object(g.jsxs)("div",{className:"App",children:[Object(g.jsxs)("div",{children:[Object(g.jsx)(ve,{}),Object(g.jsx)(pe,{})]}),l&&p,Object(g.jsx)(V,{type:"city"})]})})})),xe=function(){return Object(g.jsx)(Te,{})},Se=Object(u.a)((function(){var e=Object(v.a)().uiStore,t=document.getElementById("style-direction");return null!==t&&("rtl"===e.direction?(t.href="./bootstrap.rtl.min.css",document.body.classList.remove("dir-ltr"),document.body.classList.add("dir-rtl")):(t.href="./bootstrap.min.css",document.body.classList.remove("dir-rtl"),document.body.classList.add("dir-ltr"))),Object(g.jsx)(i.a.Fragment,{children:Object(g.jsx)(J.a,{onChange:function(t){e.updateLanguage(t.target.value)},data:[{value:"he",text:"Hebrew"},{value:"en",text:"English"}],valProp:"value",contentProp:"text",value:e.language})})})),Ce=function(){var e=Object(l.a)().t;return Object(g.jsxs)(i.a.Fragment,{children:[Object(g.jsx)(s.b,{className:"nav-link",to:"/",children:e("Home")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/city",children:e("Cities")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/about",children:e("About")}),Object(g.jsx)(s.b,{className:"nav-link",to:"/my-filters",children:e("My-Filters")})]})},Be=r(115),Fe=(r(390),{header:{marginBottom:"1rem",position:"fixed",top:"0px",width:"100%",zIndex:5e3}}),ke=function(e){var t=e.title;return Object(g.jsx)("header",{style:Fe.header,children:Object(g.jsx)(Be.a,{className:"navbar",expand:"lg",children:Object(g.jsxs)("div",{className:"container-fluid",children:[Object(g.jsx)("img",{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAAtCAYAAAAUcwFNAAAMhklEQVR4Xu1c+XMcRxV+Onel1bGSVpZ8W7HkQ7FjJb5ix7YMPij8Q8yZIuGsBCgqpCiK4u+gCioUgSoCIZAA4UqAVGFifMT4kvEZy5aPyIdsy7p2pT20d1PfrGbV2zuz27Oza9namd9s9Ux3f/316/e+93pLyHosBIoIgZIimqs1VQsBsghvkaCoELAIX1TLbU3WIrzFgaJCwCJ8US23NVmL8BYHigqBWUP4C3cCbGmzjaoqSpUF9IfjVGMrmzXzKypWFnCyORPiT6fdbOMSB7lqysg+RTKMMxxl5AvF6NpwiDa21eT8fdk5v3fOwz69qo7KS1O7isQYvXpwmH6ws6XgY5AdayHavXVyjD2/viHjp6NxRoFwnIa8UTo3MElfeKphVmOSCQzDE//3pQnW3VFDFRLG88r9EC1vtRvuQ5YYrx8dYV/b2EhlAtnxvkV4fRQZI7rjidDCxsqCrY3sGj7odoYmfPHuJFvZaqcSybcKTfhrQ0HFjcGDRTx/Z5K6FlZLji53qA9f8bLlrXZ688QY/XDXzJ4gMhZeb6axOKNDV320Y0VdwTFTx3Dqpp8tcFZQa/3MbDbpie7rHWc7V9SlkH0iGKMT/QHa3TkNmOrqzHdW0NWhwlr48ckoq7OXKViO+qPkqqmQnk8udP/wqpdtaa9RXn1YThCR8D03ArShzZGCA9p0zLHRshYbqXip84ehON7vp81LC+t+9g0GGfrH4wvFqdYu4SLkskhZ3pEmyJA3wpprypOf0wJW7AuWcNuyWuk+jM7PG4yxGlsiSEXM0DGncO4T+ngUCH/kmo+2dmTG3BOIsvqqhKHAA0v/lzMeem5dY8HW6pEjfCgSZ5XlCTy8wTjVVc3MDuU3BU/4QrtPs4nwmMtdT5jNra9IwukJxKjBMbXARi2PRPtHivA/+uA+e2V7czJQve+NUmtdYd0HCQzJIjyR6NLIWHgV28lwjKkKG1ybd8956LNPFkbBeaQID4B4cEJRBinS9PGHAKaj2UYOW2lSaYGsedsdpvc/mqDvfXJOWh/3PGHWylkmvY2ht/A/+c8Q27OqjhY2VJJ6Yk1G4tQ/EqbH51Wl9ScbFMKn/93JMdraXkNqII2x7eudoE89Xq+LlWhMTvT76enH5P1pM4RH7mLVvKokhNeHQ9Su4xZqydDYJOOTMUXq3L483Y3iXcBMBkzPp8da7VhRS4saK8lRWZqMHzOtVzZDKU1akWgjvig11+Zm5cV4QGuQAPPsQICeWpQagJkh/MfDQbakyaarMqFPbBQ+7jBCeOj+TY5y+srGRlLNwY3RMLW5bLo4i3HBLz4coVc+kb7R9RbSDOF/dmiYfXNLUzKHoeXWHOzzsmfaHWl5DnE8WqTNlfAwAt/a4iI1PtObO2KPA1d8tGulvMokTfi3T46xL651pmjeSGggwt/aLh+YihYN3whGmDIne0VJCrAg4N8vjNPeNc7kOHMl/LA3wlxc0K32W1ZKZC+fth7o8/BVX9JiGSU8El18X0j4ODJkfPn5DLiNa+NmCA/MfaEYg/XEozVW3hUBNsFonGJxIhE3vC8awVwJL84Jp344xhRDZS8vSeEgTtbXj47Sd7Y1S3FZqpG6w6C6QJYTdXiQ5/zAJK1dnGqNtXYmCP9ydzPdG49oWr73L4yz3Z21yUkN+6I0R+ckkfXhYdnbXAlJDFbhmMYm5SVOPZLKqjTHP/axjW0Opb9MvrG4+bO5P1p4miU8vzm1pFYQfmFjBR3s89Ge1emu2eB4mLXUJYLfTHM14sNjTs+tddKlwSCtnp+eVznR72PrFzuSPMzkiomYGSI8XtZL5eNvIP6x6/4Ul0BrkX56cIh9d7v+sd0/EmJLmiqVV4OROFVVaitCMoR/49go412MI9d9mifSa4eH2Yubm5KBuVYMIEv4qXEz25To0Xc/SCta0+MD/nu51v6YJTx/wmgR/vc9Y+xL6/XlStEtunBnkp5YkE5SI4TP5ofj7/xGNaIwGSa8OhiQcnFjpaY/DOs9z5l7Jk2WWDKEvzw4yZa32JVhZyPV4ESEtdQmcg0InBc1pvresuPC+7fGQgyBMR49GZcnm96myLb4hSZ8tv4T85vOh+jJw/kmfK7fy5nwKhB33Ak9V3RzjOy6d896WJurkqC+IFARfWqoH199uiltrDJAu/1R5qxOJFmyBZA8iMgi11el6tJGCP/XM262d41TwQVH/R9Ouen5DdOWkndn4ozotyfG6Oub0ueYjXBmCc+7cvCVbVnUt18dHWFLXTaa31BBiImqK0tT4i49Y5crQTH/H++/zzrm2Amnfktdok+xYDHbuFUcTRNe/dCN0RBb1JBq8ftHQvRYc3r28+eHh9nnnnQqioZMXc7bPW56gSOL2qcM4f2hGANARp9sqoNMaQGf0fzo7mSKP8pvHjOKl1nC83Kz1iYHbpCPn5hfJVUwODgeobkap7tRwkMG3bWyNq0UQmsdZdYi74THB/dfTlRSqtWLGIgos0Hm2taRHvjCV1dLWJ1VZYq1V59cCS8GhUZInw/Cnx8IsNXzEzq3eOLx7oxR7Z2fhxnC42R9dk198nNaJyB/QqoNEfgHo0xRZbBm7c225GbIB+G1ihRVhQjrMjQRJdRqqSf3jBEegPAVjPj3f6/7aUt7IpHy6oEh9u2triQ4AOyd0x56uTtVUhLlrFwJjz55CwZfesAdluJ9IBKndYLqZMSlEecLt+WN46P04maXgkUwEleCWrNJPDOEvz0WZgsa9BUWfi0hSJy6GaBNGkkx/qQ1S3jRFbzlDtOSpvQ8Bn9izCjhRbLyQQxv8ZChc1Zr127kk/D5LDAzSngQmycVCLN+iaMEdwp2rqhVNl4u2ns+LPyfT7vZZ7qcyQSZ1nrwxuKDy17dBE8+Cc8H+5mweWgI33PDz9Ytrk6uibrI+A++YEnPEqAdL0vi32YsvIxaImXyc6yW5Mmt+ur8Jnjv3Djt7ZpOrMmORW2Xi4WHLPzSMy5SZVOtBN+bx0fZlzc0JmMsvTUQZUmzFp4PojMVBGbLH+jhKB20wvfWqpcQP8wPWExE8H6rXqCmdYvJDOF5wmGsl+4FqVOjZkaGaLyF11Je9L6hZjNx9O6/7KXty2oUlSGbTCozJqOER/Jw09LUUgEtTMTv6m3MmxArGhPyKx4ZwmdyQfjTQk9VE+9m5N2lUYM/1IcMTkSVrCqfdYNs1L2sljrn2lMieTFQ672XuDGFB4TpuelPufeKJAfUG/H6oBnCoy9eLUG/en4h2v7r4rhSb6N1NRGbvntZ4gIIHl6Cg0XUkk7Rjs8FuFGGOyWTisqNDMHFNjIXQN75n5thbXAJRMRWT0lDP3xJuJaCI57EmQjPr30CkyCtnJtIxiGZ+exU+QjvBSA43tfrTeHagb4JhgI9/lpnwQgvc49VXRAM4q2eMfrGpkSQhkfLeqsRv1ojgSAORFIzrXjPLOH/eCqxkcS7ryA/Ku8SNRrT9TR6VkoMunnyZQJdzPbiPTPaO9+vbK2PuFEw9zO3AxnLQUTrjW9ATcOj6uBI0EFeVqVfPez4YFQcC6+Iad2sQ8CMHAF+kQJrhXgDKpGaJMw74TFAPoDJZokwoF8fG6Xv70i/73n6lp91LajW1N8xMdy8mVdfAWUn2Y1ZwuNDvzwywl7Y0JCSsNCbx80xbWUA7Xtxr3du4pSSJTzaiRWimWqEsuFrhvAgOvpukbzPwLsY4rjUoFImaMW74qUT9XuiBMzXPol9YsO9dniE9qyqV64s4ikI4fFhWJOuBVU0z1mh1LCrP40BK+0PxenGWJgOXfFp1rHzA//N8VG2u7OOXI4yxepi914fCVHn1BGXT5VGBOwf5z1s89IaqrNP1+Bjo2H8ILrM+HEE41jFNTlYHGX8w6GMsYE4JzPauxHCq/o13Muzt1NdUdmNdeZ2gC1vSfzmj1oDv7/Pm/y5D1nCoz/EEF0Lq5WMOrDDCXvxblBRr/jxiBijXe+9YFIqfmhUGlkQi60dX0FpVnsvNuzyOV9plSafnRbjt3iXRqswrRgxmYk5W4R/AKjzQWuh744+gOk80l1YhH8Ay8cHa0aqSB/A0IquC4vwBV5yVJHi3gAeSJF/O+uhzxfxbzsWGO6sn7cInxUiYw0yVWiayfIaG4XVWg8Bi/B55oYW4eG3XxnSvuaX5+6tz2VBwCJ8ASgSCMcYNGvkJ0b8Mfrn+XF6act0xrkAXVqflETAIrwkUFaz2YGARfjZsY7WLCQRsAgvCZTVbHYgYBF+dqyjNQtJBCzCSwJlNZsdCPwfUhr/pt6aya4AAAAASUVORK5CYII=",alt:"".concat(t," logo"),height:"45",width:"188"}),Object(g.jsx)(Be.a.Toggle,{"aria-controls":"basic-navbar-nav",className:"text-light"}),Object(g.jsxs)(Be.a.Collapse,{id:"basic-navbar-nav",children:[Object(g.jsx)("div",{className:"navbar-nav",children:Object(g.jsx)(Ce,{})}),Object(g.jsx)("div",{children:Object(g.jsx)(Se,{})})]})]})})})},Ve=(r(391),r(49),r(392),Object(a.lazy)((function(){return r.e(14).then(r.bind(null,539))}))),ze=Object(a.lazy)((function(){return Promise.all([r.e(1),r.e(15)]).then(r.bind(null,540))})),Me=Object(a.lazy)((function(){return r.e(12).then(r.bind(null,542))})),Ae={app:{marginTop:"44px"}};var Le=function(){return Object(g.jsx)(s.a,{children:Object(g.jsxs)("div",{style:{height:"100%"},children:[Object(g.jsx)(ke,{title:"Safety Data"}),Object(g.jsx)("div",{style:Ae.app,children:Object(g.jsx)(a.Suspense,{fallback:Object(g.jsx)(w,{}),children:Object(g.jsxs)(c.c,{children:[Object(g.jsx)(c.a,{exact:!0,path:"/my-filters",component:Me}),Object(g.jsx)(c.a,{path:"/about",component:Ve}),Object(g.jsx)(c.a,{exact:!0,path:"/city",component:xe}),Object(g.jsx)(c.a,{path:"/update-img",component:ze}),Object(g.jsx)(c.a,{path:"/",component:we})]})})})]})})};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(Object(g.jsx)(Le,{}),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))},45:function(e,t,r){"use strict";r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return i}));var a=function(e,t){var r=new URLSearchParams(location.search);r.set(e,t),window.history.replaceState({},"","".concat(location.pathname,"?").concat(r.toString()))},i=function(e){var t=new URLSearchParams(location.search);t.delete(e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t.toString()))}},48:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var a=r(0);function i(e,t){return Object(a.useMemo)((function(){return t}),e)}},49:function(e,t,r){"use strict";var a=r(142),i=r(68),n=r(199),o=r(200);a.a.use(i.e).init({fallbackLng:"he",lng:"he",debug:!0,resources:{en:{translation:n},he:{translation:o}},interpolation:{escapeValue:!1}}),t.a=a.a},62:function(e,t,r){"use strict";r(0);var a=r(144),i=(r(383),r(1));t.a=function(e){var t=e.style,r=e.label,n=e.onChange,o=e.data,s=e.valProp,c=e.contentProp,l=e.value,u=e.cssClass,p=void 0===u?"":u,h=Object(a.a)().t,b="form-select form-select-sm "+p;return Object(i.jsxs)("div",{className:"select-wrapper",style:t&&t,children:[r&&Object(i.jsxs)("label",{children:[" ",h(r)," "]}),Object(i.jsx)("select",{className:b,onChange:n,value:l,children:o.map((function(e){return Object(i.jsx)("option",{value:s?e[s]:e,children:h(c?e[c]:e)},s?e[s]:e)}))})]})}},74:function(e,t,r){"use strict";r.d(t,"a",(function(){return z})),r.d(t,"b",(function(){return _}));var a,i,n,o,s,c,l,u,p,h,b,y,d,f,j,g,m,v,O,w,T,x,S,C,B,F,k,V,z,M=r(4),A=r(12),L=r(3),I=(r(31),r(2)),N=r(27),D=r.n(N),R=r(36),P=r(45);!function(e){e[e.NO_BBOX=0]="NO_BBOX",e[e.SERVER_BBOX=1]="SERVER_BBOX",e[e.LOCAL_BBOX=2]="LOCAL_BBOX"}(z||(z={}));var G=[D.a.latLng(29.5,34.22),D.a.latLng(33.271,35.946)],Q="lat",Y="lng",W="mkclr",_=(a=function e(t){var r=this;Object(A.a)(this,e),this.appInitialized=!1,this.rootStore=void 0,this.mapRef=null,this.setMapRef=function(e){r.mapRef=e},Object(M.a)(this,"onMapLoad",i,this),Object(M.a)(this,"setStoreByQuery",n,this),this.delQueryStrMapCenter=function(){Object(P.a)(Q),Object(P.a)(Y)},this.setQueryStrMapCenter=function(e){Object(P.b)(Q,e.lat.toFixed(5)),Object(P.b)(Y,e.lng.toFixed(5))},this.setQueryStrMapZoom=function(e){Object(P.b)("z",e.toString())},Object(M.a)(this,"isReadyToRenderMap",o,this),Object(M.a)(this,"bboxType",s,this),Object(M.a)(this,"mapCenter",c,this),Object(M.a)(this,"updateMapCenter",l,this),Object(M.a)(this,"mapZoom",u,this),Object(M.a)(this,"setMapZoom",p,this),Object(M.a)(this,"setMapCenterByQuery",h,this),this.getCenterByQuery=function(e){var t=null,r=e.get(Q),a=e.get(Y);if(r&&a){var i=Number.parseFloat(r),n=Number.parseFloat(a);Number.isNaN(i)||Number.isNaN(n)||(t=new D.a.LatLng(i,n))}return t},Object(M.a)(this,"setMapZoomByQuery",b,this),this.isCenterMapByCity=function(){var e=!0;if(r.rootStore.uiStore.initPage){var t=new URLSearchParams(window.location.search);r.getCenterByQuery(t)&&(e=!1)}return e},Object(M.a)(this,"updateMapCenterByCity",y,this),Object(M.a)(this,"useSetBounds",d,this),Object(M.a)(this,"setBounds",f,this),Object(M.a)(this,"isSetBounds",j,this),Object(M.a)(this,"updateIsSetBounds",g,this),Object(M.a)(this,"heatLayerHidden",m,this),Object(M.a)(this,"toggleHeatLayer",v,this),Object(M.a)(this,"useSmallMarkers",O,this),Object(M.a)(this,"toggleUseSmallMarkers",w,this),Object(M.a)(this,"markerIconsType",T,this),Object(M.a)(this,"setMarkerIconsType",x,this),this.markerIconTypesArr=[{val:"general",text:"general"},{val:"Vehicle",text:"Vehicle"}],Object(M.a)(this,"markerColorType",S,this),Object(M.a)(this,"setMarkerColorType",C,this),Object(M.a)(this,"setMarkerColorTypeByQuery",B,this),this.setBrowserQueryStringByMarkerColor=function(e){e.set(W,r.markerColorType),window.history.replaceState({},"","".concat(location.pathname,"?").concat(e.toString()))},this.markerColorTypesArr=[{val:"Severity",text:"Severity"},{val:"Vehicle",text:"Vehicle"},{val:"AccidentType",text:"AccidentType"},{val:"SelfOrNotAcc",text:"SelfOrNotAcc"},{val:"DayNight",text:"DayNight"},{val:"Gender",text:"Gender"},{val:"RoadType",text:"RoadType"}],this.getBoundsByPointsArr=function(e){var t=[],r=D.a.latLng(0,0);return e.forEach((function(e){if(null!==e.latitude&&null!==e.longitude){var a=new D.a.LatLng(e.latitude,e.longitude);(0===r.lat&&0===r.lng||e.latitude!==r.lat||e.longitude!==r.lng)&&(t.push(a),r=a)}})),1===t.length&&(t.length=0,t.push(D.a.latLng(r.lat+.01,r.lng+.01)),t.push(D.a.latLng(r.lat-.01,r.lng-.01))),t.length<2&&(t=G),D.a.latLngBounds(t)},this.getBounds2=function(e){if(0===e.length)return D.a.latLngBounds(G);var t={south:200,north:-200,west:200,east:-200};return e.forEach((function(e){null!==e.latitude&&null!==e.longitude&&(t.south=Math.min(e.latitude,t.south),t.north=Math.max(e.latitude,t.north),t.west=Math.min(e.longitude,t.west),t.east=Math.max(e.longitude,t.east))})),t.south===t.north&&(t.south-=.01,t.north+=.01,t.west-=.01,t.east+=.01),D.a.latLngBounds([t.south,t.west],[t.east,t.north])},Object(M.a)(this,"dataMarkersInBounds",F,this),Object(M.a)(this,"updateDataMarkersInBounds",k,this),Object(M.a)(this,"updateMapBounds",V,this),this.setQueryStrMapCenterByBounds=function(){if(void 0!==r.mapRef&&null!==r.mapRef&&null!==r.mapRef.current)try{var e=r.mapRef.current.leafletElement.getBounds();if(e){var t=e.getCenter();r.setQueryStrMapCenter(t),r.setQueryStrMapZoom(r.mapRef.current.leafletElement.getZoom())}}catch(a){R.a.error(a)}},this.getMarkersInBBox=function(){r.bboxType===z.LOCAL_BBOX?r.getMarkersInLocalBBox(.02):r.bboxType===z.SERVER_BBOX&&r.submintGetMarkersBBox()},this.getMarkersInLocalBBox=function(e){if(void 0!==r.mapRef&&null!==r.mapRef&&null!==r.mapRef.current)try{var t=r.mapRef.current.leafletElement.getBounds(),a=t.getWest()-e,i=t.getEast()+e,n=t.getSouth()-e,o=t.getNorth()+e,s=r.rootStore.filterStore.dataAllInjuries.filter((function(e){return e.latitude>=n&&e.latitude<=o&&e.longitude>=a&&e.longitude<=i}));r.updateDataMarkersInBounds(s)}catch(c){R.a.error(c)}},this.submintGetMarkersBBox=function(){},this.rootStore=t},i=Object(L.a)(a.prototype,"onMapLoad",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){console.log("onMapLoad");var t=new URLSearchParams(window.location.search);e.setMapZoomByQuery(t)}}}),n=Object(L.a)(a.prototype,"setStoreByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.setMapCenterByQuery(t),e.setMapZoomByQuery(t),e.setMarkerColorTypeByQuery(t)}}}),o=Object(L.a)(a.prototype,"isReadyToRenderMap",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=Object(L.a)(a.prototype,"bboxType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return z.LOCAL_BBOX}}),c=Object(L.a)(a.prototype,"mapCenter",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new D.a.LatLng(32.08,34.83)}}),l=Object(L.a)(a.prototype,"updateMapCenter",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.mapCenter=t,r&&e.setQueryStrMapCenter(t)}}}),u=Object(L.a)(a.prototype,"mapZoom",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 13}}),p=Object(L.a)(a.prototype,"setMapZoom",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.mapZoom=t}}}),h=Object(L.a)(a.prototype,"setMapCenterByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=e.getCenterByQuery(t);r&&e.updateMapCenter(r,!1)}}}),b=Object(L.a)(a.prototype,"setMapZoomByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get("z");if(r){var a=Number.parseInt(r);Number.isNaN(a)||e.setMapZoom(a)}}}}),y=Object(L.a)(a.prototype,"updateMapCenterByCity",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){if(null!==t&&t.length>0){var r=t[0];r.lat&&r.lon&&(e.updateMapCenter(new D.a.LatLng(r.lat,r.lon)),e.setMapZoom(13))}}}}),d=Object(L.a)(a.prototype,"useSetBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),f=Object(L.a)(a.prototype,"setBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){if(e.isSetBounds){var a=e.getBoundsByPointsArr(t);r.length>0&&""!==r[0]||e.updateMapCenter(a.getCenter()),e.isSetBounds=!1}}}}),j=Object(L.a)(a.prototype,"isSetBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),g=Object(L.a)(a.prototype,"updateIsSetBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t,r){e.useSetBounds&&(t.length>0&&""!==t[0]||r.length>0&&""!==r[0])&&(e.isSetBounds=!0)}}}),m=Object(L.a)(a.prototype,"heatLayerHidden",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),v=Object(L.a)(a.prototype,"toggleHeatLayer",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.heatLayerHidden=!e.heatLayerHidden}}}),O=Object(L.a)(a.prototype,"useSmallMarkers",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),w=Object(L.a)(a.prototype,"toggleUseSmallMarkers",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){e.useSmallMarkers=!e.useSmallMarkers}}}),T=Object(L.a)(a.prototype,"markerIconsType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"Vehicle"}}),x=Object(L.a)(a.prototype,"setMarkerIconsType",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.markerIconsType=t}}}),S=Object(L.a)(a.prototype,"markerColorType",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"Severity"}}),C=Object(L.a)(a.prototype,"setMarkerColorType",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.markerColorType=t,Object(P.b)(W,t)}}}),B=Object(L.a)(a.prototype,"setMarkerColorTypeByQuery",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){var r=t.get(W);null!==r&&e.setMarkerColorType(r)}}}),F=Object(L.a)(a.prototype,"dataMarkersInBounds",[I.n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),k=Object(L.a)(a.prototype,"updateDataMarkersInBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(t){e.dataMarkersInBounds=t}}}),V=Object(L.a)(a.prototype,"updateMapBounds",[I.f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){var e=this;return function(){try{e.bboxType!==z.NO_BBOX&&e.getMarkersInBBox(),e.setQueryStrMapCenterByBounds()}catch(t){R.a.error(t)}}}}),a)},77:function(e){e.exports=JSON.parse('["\u05d0\u05d1\u05d5 \u05d2\u05d5\u05e9","\u05d0\u05d1\u05d5 \u05e1\u05e0\u05d0\u05df","\u05d0\u05d1\u05d5 \u05e7\u05d5\u05e8\u05d9\u05e0\u05d0\u05ea (\u05d9\u05d9\u05e9\u05d5\u05d1)","\u05d0\u05d1\u05d5 \u05e7\u05d5\u05e8\u05d9\u05e0\u05d0\u05ea (\u05e9\u05d1\u05d8)","\u05d0\u05d1\u05df \u05d9\u05d4\u05d5\u05d3\u05d4","\u05d0\u05d5\u05dd \u05d0\u05dc-\u05e4\u05d7\u05dd","\u05d0\u05d5\u05e4\u05e7\u05d9\u05dd","\u05d0\u05d5\u05e8 \u05d9\u05d4\u05d5\u05d3\u05d4","\u05d0\u05d5\u05e8 \u05e2\u05e7\u05d9\u05d1\u05d0","\u05d0\u05d5\u05e8\u05e0\u05d9\u05ea","\u05d0\u05d6\u05d5\u05e8","\u05d0\u05d9\u05d9\u05dc\u05ea \u05d4\u05e9\u05d7\u05e8","\u05d0\u05d9\u05db\u05e1\u05d0\u05dc","\u05d0\u05d9\u05dc\u05ea","\u05d0\u05dc \u05e1\u05d9\u05d9\u05d3","\u05d0\u05dc\u05d9\u05db\u05d9\u05df","\u05d0\u05dc\u05e2\u05d3","\u05d0\u05de\u05d5\u05e0\u05d9\u05dd","\u05d0\u05e2\u05d1\u05dc\u05d9\u05df","\u05d0\u05e8\u05d9\u05d0\u05dc","\u05d0\u05e9\u05d3\u05d5\u05d3","\u05d0\u05e9\u05dc\u05d9\u05dd","\u05d0\u05e9\u05e7\u05dc\u05d5\u05df","\u05d1\u05d0\u05e7\u05d4 \u05d0\u05dc-\u05d2\u05e8\u05d1\u05d9\u05d4","\u05d1\u05d0\u05e8 \u05d9\u05e2\u05e7\u05d1","\u05d1\u05d0\u05e8 \u05e9\u05d1\u05e2","\u05d1\u05d5\u05e2\u05d9\u05d9\u05e0\u05d4-\u05e0\u05d5\u05d2\'\u05d9\u05d3\u05d0\u05ea","\u05d1\u05d5\u05e7\u05e2\u05d0\u05ea\u05d0","\u05d1\u05d9\u05e6\u05e8\u05d5\u05df","\u05d1\u05d9\u05e8 \u05d0\u05dc \u05de\u05db\u05e1\u05d5\u05e8","\u05d1\u05d9\u05e8 \u05d4\u05d3\u05d0\u05d2\'","\u05d1\u05d9\u05ea \u05d0\u05dc","\u05d1\u05d9\u05ea \u05d0\u05dc\u05e4\u05d0","\u05d1\u05d9\u05ea \u05d2\'\u05df","\u05d1\u05d9\u05ea \u05d3\u05d2\u05df","\u05d1\u05d9\u05ea \u05e7\u05e9\u05ea","\u05d1\u05d9\u05ea \u05e9\u05d0\u05df","\u05d1\u05d9\u05ea \u05e9\u05de\u05e9","\u05d1\u05d9\u05ea\u05e8 \u05e2\u05d9\u05dc\u05d9\u05ea","\u05d1\u05df \u05e9\u05de\u05df (\u05db\u05e4\u05e8 \u05e0\u05d5\u05e2\u05e8)","\u05d1\u05e0\u05d9 \u05d1\u05e8\u05e7","\u05d1\u05e0\u05d9 \u05e2\u05d9\\"\u05e9","\u05d1\u05e0\u05d9 \u05e6\u05d9\u05d5\u05df","\u05d1\u05e0\u05d9\u05de\u05d9\u05e0\u05d4 - \u05d2\u05d1\u05e2\u05ea \u05e2\u05d3\u05d4","\u05d1\u05e1\u05de\\"\u05d4","\u05d1\u05e1\u05de\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05d1\u05e2\u05e0\u05d4","\u05d1\u05e8\u05db\u05d9\u05d4","\u05d1\u05e8\u05e7\u05ea","\u05d1\u05ea \u05d9\u05dd","\u05d2\'\u05d3\u05d9\u05d9\u05d3\u05d4-\u05de\u05db\u05e8","\u05d2\'\u05d5\u05dc\u05e1","\u05d2\'\u05d9\u05e9","\u05d2\'\u05dc\u05d2\'\u05d5\u05dc\u05d9\u05d4","\u05d2\'\u05ea","\u05d2\'\u05e1\u05e8 \u05d0-\u05d6\u05e8\u05e7\u05d0","\u05d2\u05d1\u05e2\u05ea \u05e9\u05de\u05d5\u05d0\u05dc","\u05d2\u05d1\u05e2\u05ea\u05d9\u05d9\u05dd","\u05d2\u05d3\u05e8\u05d4","\u05d2\u05d5\u05e8\u05df","\u05d2\u05df \u05d9\u05d1\u05e0\u05d4","\u05d2\u05e0\u05d9 \u05ea\u05e7\u05d5\u05d5\u05d4","\u05d3\u05d1\u05d5\u05e8\u05d9\u05d9\u05d4","\u05d3\u05d1\u05d9\u05e8\u05d4","\u05d3\u05d9\u05d9\u05e8 \u05d7\u05e0\u05d0","\u05d3\u05d9\u05de\u05d5\u05e0\u05d4","\u05d3\u05d9\u05e8 \u05d0\u05dc \u05d0\u05e1\u05d3","\u05d3\u05d9\u05e8 \u05d7\u05e0\u05d0","\u05d3\u05dc\u05d9\u05ea \u05d0\u05dc-\u05db\u05e8\u05de\u05dc","\u05d4\u05d5\u05d3 \u05d4\u05e9\u05e8\u05d5\u05df","\u05d4\u05e8\u05e6\u05dc\u05d9\u05d9\u05d4","\u05d6\u05db\u05e8\u05d5\u05df \u05d9\u05e2\u05e7\u05d1","\u05d6\u05de\u05e8","\u05d6\u05e8\u05d6\u05d9\u05e8","\u05d7\u05d3\u05e8\u05d4","\u05d7\u05d5\u05dc\u05d5\u05df","\u05d7\u05d5\u05e3 \u05d4\u05db\u05e8\u05de\u05dc \u05de\\"\u05d0 15","\u05d7\u05d5\u05e8\u05d4","\u05d7\u05d5\u05e8\u05e4\u05d9\u05e9","\u05d7\u05d9\u05e4\u05d4","\u05d7\u05e6\u05d5\u05e8 \u05d4\u05d2\u05dc\u05d9\u05dc\u05d9\u05ea","\u05d7\u05e8\u05d9\u05e9","\u05d8\u05d1\u05e8\u05d9\u05d4","\u05d8\u05d5\u05d1\u05d0 \u05d6\u05e0\u05d2\u05e8\u05d9\u05d4","\u05d8\u05d5\u05e8\u05e2\u05d0\u05df","\u05d8\u05d9\u05d9\u05d1\u05d4","\u05d8\u05d9\u05e8\u05d4","\u05d8\u05d9\u05e8\u05ea \u05d4\u05db\u05e8\u05de\u05dc","\u05d8\u05de\u05e8\u05d4","\u05d9\u05d0\u05e0\u05d5\u05d7 - \u05d2\'\u05ea","\u05d9\u05d1\u05e0\u05d0\u05dc","\u05d9\u05d1\u05e0\u05d4","\u05d9\u05d4\u05d5\u05d3","\u05d9\u05e0\u05d5\u05df","\u05d9\u05e1\u05d5\u05d3 \u05d4\u05de\u05e2\u05dc\u05d4","\u05d9\u05e4\u05d9\u05e2","\u05d9\u05e6\u05d9\u05e5","\u05d9\u05e7\u05e0\u05e2\u05dd \u05e2\u05d9\u05dc\u05d9\u05ea","\u05d9\u05e8\u05d5\u05d7\u05dd","\u05d9\u05e8\u05d5\u05e9\u05dc\u05d9\u05dd","\u05d9\u05e8\u05db\u05d0","\u05db\u05d0\u05d1\u05d5\u05dc","\u05db\u05d5\u05d5\u05db\u05d1 \u05d0\u05d1\u05d5 \u05d0\u05dc-\u05d4\u05d9\u05d2\'\u05d0","\u05db\u05d5\u05db\u05d1 \u05d9\u05d0\u05d9\u05e8","\u05db\u05e1\u05d9\u05e4\u05d4","\u05db\u05e1\u05e8\u05d4 - \u05e1\u05de\u05d9\u05e2","\u05db\u05e2\u05d1\u05d9\u05d4 \u05d8\u05d1\u05d0\u05e9 \u05d7\u05d2\'\u05d0\u05d2\'\u05e8\u05d4","\u05db\u05e4\u05e8 \u05d1\u05d9\u05d0\u05dc\u05d9\u05e7","\u05db\u05e4\u05e8 \u05d1\u05e8\u05d0","\u05db\u05e4\u05e8 \u05d5\u05e8\u05d3\u05d9\u05dd","\u05db\u05e4\u05e8 \u05d9\u05d0\u05e1\u05d9\u05e3","\u05db\u05e4\u05e8 \u05d9\u05d5\u05e0\u05d4","\u05db\u05e4\u05e8 \u05db\u05de\u05d0","\u05db\u05e4\u05e8 \u05db\u05e0\u05d0","\u05db\u05e4\u05e8 \u05de\u05e0\u05d3\u05d0","\u05db\u05e4\u05e8 \u05e0\u05d8\u05e8","\u05db\u05e4\u05e8 \u05e1\u05d1\u05d0","\u05db\u05e4\u05e8 \u05e7\u05d0\u05e1\u05dd","\u05db\u05e4\u05e8 \u05e7\u05e8\u05e2","\u05db\u05e4\u05e8 \u05e9\u05de\u05e8\u05d9\u05d4\u05d5","\u05db\u05e4\u05e8 \u05ea\u05d1\u05d5\u05e8","\u05db\u05e8\u05de\u05d9\u05d0\u05dc","\u05dc\u05d4\u05d1\u05d9\u05dd","\u05dc\u05d5\u05d3","\u05dc\u05e7\u05d9\u05d4","\u05de\u05d1\u05e9\u05e8\u05ea \u05e6\u05d9\u05d5\u05df","\u05de\u05d2\'\u05d3 \u05d0\u05dc-\u05db\u05e8\u05d5\u05dd","\u05de\u05d2\'\u05d3\u05dc \u05e9\u05de\u05e1","\u05de\u05d2\u05d0\u05e8","\u05de\u05d2\u05d3\u05dc","\u05de\u05d2\u05d3\u05dc \u05d4\u05e2\u05de\u05e7","\u05de\u05d2\u05d3\u05dc \u05ea\u05e4\u05df","\u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df-\u05de\u05db\u05d1\u05d9\u05dd-\u05e8\u05e2\u05d5\u05ea*","\u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df \u05e2\u05d9\u05dc\u05d9\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc-\u05e7\u05e1\u05d5\u05dd","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc \u05d1\u05d8\u05d5\u05e3","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05dc\u05d5\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d0\u05e9\u05db\u05d5\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05d0\u05e8 \u05d8\u05d5\u05d1\u05d9\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05d5\u05e1\u05ea\u05df-\u05d0\u05dc-\u05de\u05e8\u05d2\'","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05e0\u05d9 \u05e9\u05de\u05e2\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d1\u05e8\u05e0\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d3\u05e8\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d5\u05dc\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05d6\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d1\u05d5\u05e2","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d9\u05dc \u05e2\u05dc\u05d9\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05dc\u05d9\u05dc \u05ea\u05d7\u05ea\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d2\u05df \u05e8\u05d5\u05d5\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d3\u05e8\u05d5\u05dd \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d6\u05d1\u05d5\u05dc\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05d0\u05d9\u05dc\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05d9\u05d1\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d1\u05dc \u05de\u05d5\u05d3\u05d9\u05e2\u05d9\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d0\u05e9\u05e7\u05dc\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d4\u05db\u05e8\u05de\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d7\u05d5\u05e3 \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05d9\u05d5\u05d0\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05dc\u05d1 \u05d4\u05e9\u05e8\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05dc\u05db\u05d9\u05e9","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d1\u05d5\u05d0\u05d5\u05ea \u05d4\u05d7\u05e8\u05de\u05d5\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d2\u05d9\u05d3\u05d5","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d8\u05d4 \u05d0\u05e9\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05d8\u05d4 \u05d9\u05d4\u05d5\u05d3\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e0\u05e9\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e2\u05dc\u05d4 \u05d9\u05d5\u05e1\u05e3","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e8\u05d5\u05dd \u05d4\u05d2\u05dc\u05d9\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e8\u05d7\u05d1\u05d9\u05dd","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05de\u05e9\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e0\u05d5\u05d5\u05d4 \u05de\u05d3\u05d1\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e0\u05d7\u05dc \u05e9\u05d5\u05e8\u05e7","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d4\u05d9\u05e8\u05d3\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d4\u05de\u05e2\u05d9\u05d9\u05e0\u05d5\u05ea","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d7\u05e4\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05de\u05e7 \u05d9\u05d6\u05e8\u05e2\u05d0\u05dc","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e2\u05e8\u05d1\u05d4 \u05ea\u05d9\u05db\u05d5\u05e0\u05d4","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e8\u05de\u05ea \u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05d3\u05d5\u05ea \u05d3\u05df","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05d3\u05d5\u05ea \u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05e2\u05e8 \u05d4\u05e0\u05d2\u05d1","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05e9\u05e4\u05d9\u05e8","\u05de\u05d5\u05e2\u05e6\u05d4 \u05d0\u05d6\u05d5\u05e8\u05d9\u05ea \u05ea\u05de\u05e8","\u05de\u05d5\u05e7\u05d9\u05d9\u05d1\u05dc\u05d4","\u05de\u05d6\u05db\u05e8\u05ea \u05d1\u05ea\u05d9\u05d4","\u05de\u05d6\u05e8\u05e2\u05d4","\u05de\u05d8\u05d5\u05dc\u05d4","\u05de\u05d9\u05ea\u05e8","\u05de\u05db\u05de\u05d5\u05e8\u05ea","\u05de\u05e1\u05e2\u05d3\u05d4","\u05de\u05e1\u05e2\u05d5\u05d3\u05d9\u05df \u05d0\u05dc-\u05e2\u05d6\u05d0\u05d6\u05de\u05d4 (\u05e9\u05d1\u05d8)","\u05de\u05e2\u05dc\u05d4 \u05d0\u05d3\u05d5\u05de\u05d9\u05dd","\u05de\u05e2\u05d9\u05dc\u05d9\u05d0","\u05de\u05e2\u05dc\u05d4 \u05e2\u05d9\u05e8\u05d5\u05df","\u05de\u05e2\u05dc\u05d5\u05ea \u05ea\u05e8\u05e9\u05d9\u05d7\u05d0","\u05de\u05e6\u05e4\u05d4 \u05e8\u05de\u05d5\u05df","\u05de\u05e8\'\u05d0\u05e8","\u05de\u05e9\u05d4\u05d3","\u05e0\u05d0\u05d5\u05ea \u05d7\u05d5\u05d1\u05d1","\u05e0\u05d1\u05d8\u05d9\u05dd","\u05e0\u05d4\u05e8\u05d9\u05d9\u05d4","\u05e0\u05d5\u05d5\u05d4 \u05d0\u05d8\u05d9\\"\u05d1","\u05e0\u05d5\u05e3 \u05d4\u05d2\u05dc\u05d9\u05dc","\u05e0\u05d7\u05e3","\u05e0\u05e1 \u05e6\u05d9\u05d5\u05e0\u05d4","\u05e0\u05e6\u05e8\u05ea","\u05e0\u05e6\u05e8\u05ea \u05e2\u05d9\u05dc\u05d9\u05ea","\u05e0\u05e9\u05e8","\u05e0\u05ea\u05d9\u05d1\u05d5\u05ea","\u05e0\u05ea\u05e0\u05d9\u05d4","\u05e1\u05d1\u05d9\u05d5\u05df","\u05e1\u05d2\'\u05d5\u05e8","\u05e1\u05d7\'\u05e0\u05d9\u05df","\u05e1\u05dc\u05e2\u05d9\u05ea","\u05e2\u05d5\u05d6\u05d9\u05d9\u05e8","\u05e2\u05d5\u05dc\u05e9","\u05e2\u05d5\u05de\u05e8","\u05e2\u05d5\u05e1\u05e4\u05d9\u05d9\u05d0","\u05e2\u05d9\u05dc\u05d1\u05d5\u05df","\u05e2\u05d9\u05dc\u05d5\u05d8","\u05e2\u05d9\u05df \u05de\u05d0\u05d4\u05dc","\u05e2\u05d9\u05df \u05e7\u05d9\u05e0\u05d9\u05d0","\u05e2\u05db\u05d5","\u05e2\u05dc\u05de\u05d5\u05df","\u05e2\u05e1\u05e4\u05d9\u05d0","\u05e2\u05e4\u05d5\u05dc\u05d4","\u05e2\u05e8\u05d0\u05d1\u05d4","\u05e2\u05e8\u05d3","\u05e2\u05e8\u05e2\u05e8\u05d4","\u05e2\u05e8\u05e2\u05e8\u05d4-\u05d1\u05e0\u05d2\u05d1","\u05e2\u05ea\u05dc\u05d9\u05ea","\u05e4\u05d5\u05e8\u05d9\u05d9\u05d3\u05d9\u05e1","\u05e4\u05e1\u05d5\u05d8\u05d4","\u05e4\u05e7\u05d9\u05e2\u05d9\u05df -\u05d1\u05d5\u05e7\u05d9\u05d9\u05e2\u05d4","\u05e4\u05e8\u05d3\u05e1 \u05d7\u05e0\u05d4-\u05db\u05e8\u05db\u05d5\u05e8","\u05e4\u05e8\u05d3\u05e1\u05d9\u05d4","\u05e4\u05ea\u05d7 \u05ea\u05e7\u05d5\u05d5\u05d4","\u05e6\u05e4\u05ea","\u05e7\u05d3\u05d9\u05de\u05d4 - \u05e6\u05d5\u05e8\u05df","\u05e7\u05d3\u05e8\u05d5\u05df","\u05e7\u05dc\u05e0\u05e1\u05d5\u05d5\u05d4","\u05e7\u05e6\u05e8\u05d9\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d0\u05d5\u05e0\u05d5","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d0\u05ea\u05d0","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d1\u05d9\u05d0\u05dc\u05d9\u05e7","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d2\u05ea","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d8\u05d1\u05e2\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d9\u05dd","\u05e7\u05e8\u05d9\u05d9\u05ea \u05d9\u05e2\u05e8\u05d9\u05dd","\u05e7\u05e8\u05d9\u05d9\u05ea \u05de\u05d5\u05e6\u05e7\u05d9\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05de\u05dc\u05d0\u05db\u05d9","\u05e7\u05e8\u05d9\u05d9\u05ea \u05e2\u05e7\u05e8\u05d5\u05df","\u05e7\u05e8\u05d9\u05d9\u05ea \u05e9\u05de\u05d5\u05e0\u05d4","\u05e7\u05e8\u05e0\u05d9 \u05e9\u05d5\u05de\u05e8\u05d5\u05df","\u05e8\'\u05d2\'\u05e8","\u05e8\u05d0\u05de\u05d4","\u05e8\u05d0\u05e9 \u05d4\u05e2\u05d9\u05df","\u05e8\u05d0\u05e9 \u05e4\u05d9\u05e0\u05d4","\u05e8\u05d0\u05e9\u05d5\u05df \u05dc\u05e6\u05d9\u05d5\u05df","\u05e8\u05d4\u05d8","\u05e8\u05d7\u05d5\u05d1\u05d5\u05ea","\u05e8\u05d9\u05d9\u05e0\u05d4","\u05e8\u05db\u05e1\u05d9\u05dd","\u05e8\u05de\u05d5\u05ea","\u05e8\u05de\u05dc\u05d4","\u05e8\u05de\u05ea \u05d2\u05df","\u05e8\u05de\u05ea \u05d4\u05e9\u05e8\u05d5\u05df","\u05e8\u05de\u05ea \u05d9\u05e9\u05d9","\u05e8\u05e2\u05e0\u05e0\u05d4","\u05e9\u05d1\u05dc\u05d9 - \u05d0\u05d5\u05dd \u05d0\u05dc-\u05d2\u05e0\u05dd","\u05e9\u05d2\u05d1-\u05e9\u05dc\u05d5\u05dd","\u05e9\u05d3\u05d4 \u05e0\u05d9\u05e6\u05df","\u05e9\u05d3\u05d5\u05ea \u05de\u05d9\u05db\u05d4","\u05e9\u05d3\u05e8\u05d5\u05ea","\u05e9\u05d4\u05dd","\u05e9\u05dc\u05d5\u05de\u05d9","\u05e9\u05e2\u05d1","\u05e9\u05e4\u05e8\u05e2\u05dd","\u05ea\u05dc \u05d0\u05d1\u05d9\u05d1 -\u05d9\u05e4\u05d5","\u05ea\u05dc \u05de\u05d5\u05e0\u05d3","\u05ea\u05dc \u05e9\u05d1\u05e2","\u05ea\u05e7\u05d5\u05e2","\u05ea\u05e8\u05d1\u05d9\u05df \u05d0-\u05e6\u05d0\u05e0\u05e2 (\u05d9\u05d9\u05e9\u05d5\u05d1)*"]')}},[[393,3,4]]]); -//# sourceMappingURL=main.57815398.chunk.js.map \ No newline at end of file diff --git a/build/static/js/main.57815398.chunk.js.map b/build/static/js/main.57815398.chunk.js.map deleted file mode 100644 index 902d811..0000000 --- a/build/static/js/main.57815398.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["stores/FilterChecker.ts","stores/ColumnFilterCheckBoxList.ts","utils/FilterUtils.ts","stores/ColumnFilterArray.ts","stores/ColumnFilterCombo.ts","utils/groupByUtils.ts","stores/GroupBy.ts","stores/GroupBy2.ts","stores/GroupBy2Val.tsx","stores/GroupMap.ts","services/AccidentService.ts","services/CityService.ts","services/DexieInjuredService.js","services/Localstorage.Service.ts","stores/FilterStore.ts","stores/UiStore.ts","services/ImageService.ts","stores/ImageStore.ts","stores/storeConfig.ts","stores/RootStore.ts","components/atoms/SmallCard2.tsx","components/atoms/Checkbox.tsx","components/organisms/ConfigModal.tsx","services/logger.js","components/atoms/ErrorBoundary.tsx","components/atoms/Loader.tsx","components/templates/TabsTemplate.tsx","components/molecules/CitySelector.tsx","components/molecules/StreetSelector.tsx","components/molecules/RoadNameSelector.tsx","components/molecules/RoadSegmentSelector.tsx","components/molecules/GroupCheckBox.tsx","components/organisms/FilterForm.tsx","components/organisms/ConfigFilterModal.tsx","assets/SvgIconFilter.tsx","components/atoms/ButtonShowFilterModal.tsx","components/organisms/Drawer.tsx","components/templates/WithSidebarTemplate.tsx","components/molecules/InfoPanel.tsx","components/templates/HomeTemplate.tsx","components/pages/HomePage.tsx","components/templates/CityTemplate.tsx","components/pages/CityPage.tsx","components/molecules/LanguageSelector.tsx","components/molecules/NavigationList.tsx","components/templates/Headr.tsx","assets/safety-logo.png","App.js","serviceWorker.js","index.js","utils/queryStringUtils.ts","hooks/myUseMemo.ts","i18n.js","components/atoms/MySelect.tsx","stores/MapStore.ts"],"names":["FilterChecker","label","valid","filters","this","checked","observable","ColumnFilter","name","dbColName","allTypesOption","isEmptyValsOnAllCheck","queryColName","arrValues","isArrValuesEmptyOnAllCheck","getFilter","vals","join","length","setBrowserQueryString","params","delIfEmpthy","delete","set","arrTypes","text","reduce","counter","currentValue","get","valsArr","split","map","Number","forEach","checker","found","some","r","includes","setQueryVals","computed","action","aType","x","index","allChecked","arrfilter","iterator","values","filterCheck","ignoreIfAll","filter","i18n","t","initVehicleTypesFull","col","push","getFilterGroupBy","filterMatch","groupName","groupName2","limit","sort","getFilterByCityPop","popMin","popMax","getfilterBounds","mapBounds","getSouth","getNorth","getWest","getEast","ColumnFilterArray","isStringValues","trim","ColumnFilterCombo","data","defaultVal","isEmpty","queryValue","toString","setValuesByQuery","setFilter","parseInt","value","ColumnFilterComboValText","val","res","foundObject","find","obj","years","cityPopSizeArr","reGroupResultIsSelfAcc","console","log","Array","_id","count","element","isSelfAccident","GroupBy","reGroupResultFunc","initGroupMapForGet","Map","initGroupByDictForPost","dictGroupBy","Severity","TypeInjured","Vehicle","Gender","Age","Year","Month","DayNight","WeekDay","RoadType","City","CityByPop","Street","Road","AccidentType","Vehicles","SpeedLimit","RoadWidth","Separator","OneLane","GroupBy2","revTrnas","key","fixStrcutTable","arr","y","engVal","grp2","xId","undefined","replace","sObject","JSON","parse","getBars","Object","entries","color","getColumns","unshift","GroupBy2Val","GroupMap","colName","defautVal","dict","URLSearchParams","location","search","groupBy","window","history","replaceState","pathname","setArrGroups","arrGroups","from","initGroup2DictForGet","sev","gen","roadt","year","dayNight","injt","acc","initGroup2DictForPost","fetchGetList","type","a","url","fetch","method","mode","cache","credentials","headers","redirect","referrerPolicy","response","ok","json","fetchGetGroupBy","fetchGetCount","fetchFilter","body","fetchAggregatFilter","fetchAggregate","CityService","getCityByNameHe","cityName","collback","then","catch","error","lang","db","Dexie","insertToDexie","injuerd","bulkPut","getFromDexie","arrFilters","toArray","shift","where","filterName","between","startYear","endYear","collection","and","orFilter","version","stores","LocalStorageService","localStorage","getItem","setItem","stringify","FilterStore","rootStore","appInitialized","useGetFetch","localStorageService","updateSpeedLimit","updateFilters","speedLimit","padDataYearsWith0","yearsList","i","objDAta","getCountFromGroupByRes","b","submintMainDataFilter","isLoading","getFilterQueryString","setFiltersText","mapStore","updateIsSetBounds","cities","roadSegment","AccidentService","updateAllInjuries","useLocalDb","cityPopSizeRange","getFilterForPost","submintGetMarkerFirstStep","updateDataMarkersLean","submitCityNameAndLocation","city","srvCity","CenterByCityCallBack","isCenterMapByCity","updateMapCenterByCity","cityResult","bounds","useBounds","injurySeverity","FilterUtils","streets","roads","injTypes","genderTypes","ageTypes","populationTypes","accidentType","vehicleType","involvedVehicle","locationAccuracy","roadTypes","roadWidth","separator","oneLane","range","min","max","setText","getfilterBySeverityAndCity","getFilterFromArray","getFilterFromNumArray","submitMainDataFilterLocalDb","getFilterIDB","submintGetMarkersBBoxIdb","getFilterBboxIDB","updateDataMarkersInBounds","getfilterCityIDB","getFilterStreetsIDB","getMultiplefilterIDB","getFilterFromArrayIDb","bbox","p1","getSouthWest","p2","getNorthEast","colFilter","filterVals","filter1","FC","setCasualtiesNames","groupByDict","mapGroupBy2","initGroup2Map","group2Dict","dataByYears","dataYearsUnfilterdInit","dataFilterdByYears","dataYearsfilterdInit","dataFilterd","dataGrpBy1Init","dataGroupby2","dataGrp2Init","isAllValsFalse","query","defVal","isMultipleCities","citisNamesHeb","isValidSeverity","isValidWhen","isValidWho","isValidWhere","isValidWhat","isValidWhatVehicle","isValidWhatRoad","filtersArrayLocalStorage","getLoaclStorage","setLocalStorage","showAllVehicleTypes","isUpdateFromUrl","formCardKey","deadChecker","sevIngChecker","casualtiesNames","isMulti","names","updateCityResult","injuriesCount","isLoadingInjuriesCount","setMarkersLoadStep","dataAllInjuries","setBounds","bboxType","BBoxType","LOCAL_BBOX","getMarkersInLocalBBox","dataMarkersLean","submitfilterdGroup","submitfilterdGroupByPop","gb2","submitfilterdGroup2","filtermatch","dataPadded","setDataFilterdByYears","setInjuriesCount","aGroupBy","fixData","logger","gb2name","step","isUse2StepsMarkers","markersLoadStep","SERVER_BBOX","submintGetMarkersBBox","submitGroupByYears","submitfilterdGroupByYears","uiStore","language","currentPage","imageStore","getImagesByPlace","currentTab","defCity","citis","getCityNameFromQuery","updateCities","UiStore","reactionChangeLang","reaction","locale","changeLanguage","initLang","slang","updateLanguage","getValFromQuery","dir","setDirection","direction","showFilterModal","initPage","defTab","tab","setCurrentTab","filterStore","setStoreByQuery","pageType","tabName","setQueryStrTab","chartType","showPercentageChart","fetchListImgByTag","tag","fetchListImgByPlace","place","uploadImg","image","file","formData","FormData","append","titlehe","texthe","tags","updateImgProps","ImageStore","tagsArr","setCurrImageVal","valName","currImage","submitImageFile","getImages","getImagesByTag","currTag","setImageList","imageList","setCurrImage","hideDescription","document","documentElement","style","setProperty","store","MapStore","StoreContext","React","createContext","useStore","useContext","Error","SmallCard2","children","header","cardHeader","className","Checkbox","group","id","onChange","useTranslation","Check","inline","memo","ConfigModal","observer","title","showModal","setShow","size","handleClose","submitChanges","variant","onClick","disabled","isValidAllFilters","show","onHide","Header","closeButton","Title","Body","maxHeight","overflowY","Footer","message","freeze","ErrorBoundary","props","state","hasError","errorInfo","Component","Loader","Spinner","animation","GroupByGraphsPanel","lazy","GroupByTablesPanel","MapAccidents","AccidentsTable","MyImageGallery","styles","marginTop","tabMap","mapCard","width","height","TabsTemplate","Tabs","mountOnEnter","activeKey","onSelect","tabActiveKey","isReadyToRenderMap","Tab","eventKey","fallback","CitySelector","isMultiple","Form","Group","controlId","Label","selected","options","multiple","StreetSelector","Control","placeholder","e","updateStreets","target","RoadNameSelector","setRoads","inputProps","roadNames","RoadSegmentSelector","updateRoadSegment","GroupCheckbox","formName","onGroupChange","feedback","fontSize","isvalid","list","fChecker","useMemos","STYLE_TOGGLE_WARNING","STYLE_TOGGLE_NORMAL","cursor","FilterForm","updateInjurySeverity","Fragment","Accordion","defaultActiveKey","CardFilterWhen","CardFilterWhatVehicle","CardFilterWhere","CardFilterWho","CardFilterWhat","CardFilterWhatRoad","CustomToggle","useState","hover","setHover","toggleHover","linkStyle","textDecoration","onButtonClick","useAccordionToggle","onMouseEnter","onMouseLeave","setStartYear","setEndYear","updateDayNight","setFormCardKey","styleToggle","Card","Collapse","MySelect","String","updateRoadType","updateLocationAccuracy","setCityPopSizeRange","display","alignItems","valProp","contentProp","event","useLocation","updateGenderType","updateAgeType","updatePopulationType","updateAccidentType","updateInjuerdType","updateVehicleType","setInvolvedVehicle","updateRoadWidth","updateSeparator","updateOneLane","ConfigFilterModal","setShowFilterModal","submitFilter","setTimeout","SvgIconFilter","xmlns","viewBox","d","fill","ButtonShowFilterModal","memoFilterIcon","Drawer","Button","margin","alert","WithSidebarTemplate","WhenTitle","WhereTitle","WhoTitle","WhatTitle","WhatVehicleTitle","InfoPanel","div","marginLeft","marginRight","marginBottom","isLoadingCountInjuries","HomeTemplate","setIsMultipleCities","setCurrentPage","setInitPage","useEffect","memoConfigModal","HomePage","CityTemplate","setIsUpdateFromUrl","CityPage","LanguageSelector","getElementById","href","classList","remove","add","NavigationList","to","position","top","zIndex","Navbar","expand","src","alt","Toggle","aria-controls","AboutPage","UpdateImagePage","MyFilters","app","App","exact","path","component","Boolean","hostname","match","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister","delBrowserQueryString","dep","item","useMemo","use","initReactI18next","init","fallbackLng","lng","debug","resources","en","translation","translationEng","he","translationHeb","interpolation","escapeValue","cssClass","cssname","DEFAULT_BOUNDS","L","latLng","QUERY_STR_NAME_LAT","QUERY_STR_NAME_LNG","QUERY_STR_NAME_MRKRCOLOR","mapRef","setMapRef","delQueryStrMapCenter","setQueryStrMapCenter","center","lat","toFixed","setQueryStrMapZoom","zoom","getCenterByQuery","sLat","sLon","parseFloat","isNaN","LatLng","doCenterByCity","markerIconTypesArr","setBrowserQueryStringByMarkerColor","markerColorType","markerColorTypesArr","getBoundsByPointsArr","lastPoint","latitude","longitude","p","latLngBounds","getBounds2","south","north","west","east","Math","setQueryStrMapCenterByBounds","current","leafletElement","getBounds","getCenter","getZoom","getMarkersInBBox","boundsMargin","setMapZoomByQuery","setMapCenterByQuery","setMarkerColorTypeByQuery","updateQuery","mapCenter","mapZoom","updateMapCenter","sZoom","setMapZoom","lon","citisArr","isSetBounds","bunds","roadSegArr","useSetBounds","heatLayerHidden","useSmallMarkers","markerIconsType","setMarkerColorType","dataMarkersInBounds","NO_BBOX"],"mappings":"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","file":"static/js/main.57815398.chunk.js","sourcesContent":["import { observable} from 'mobx';\r\n\r\nexport interface IFilterChecker {\r\n checked: boolean;\r\n label: string;\r\n filters: number[];\r\n}\r\n/**\r\n * filter that represnt a check - box in gui\r\n */\r\nexport default class FilterChecker implements IFilterChecker {\r\n @observable\r\n checked: boolean;\r\n\r\n label: string;\r\n\r\n filters: any[];\r\n\r\n constructor(label: string, valid: boolean, filters: number[]) {\r\n this.label = label;\r\n this.checked = valid;\r\n this.filters = filters;\r\n }\r\n}\r\n","import { observable, action, computed } from 'mobx';\r\nimport FilterChecker, { IFilterChecker } from './FilterChecker';\r\nimport dataYearsUnfilterdInit from '../assets/data-by-years.json';\r\nimport dataYearsfilterdInit from '../assets/data-by-years-filtred.json';\r\nimport dataGrpBy1Init from '../assets/data-by-grp1.json';\r\nimport dataGrp2Init from '../assets/data-by-grp2.json';\r\nimport i18n from '../i18n';\r\n\r\nexport interface IColumnFilter {\r\n name: string;\r\n queryColName: string;\r\n arrTypes: IFilterChecker[];\r\n //array of values to be sent as query to server\r\n arrValues: number[];\r\n isArrValuesEmptyOnAllCheck: boolean;\r\n setQueryVals: () => void;\r\n setFilter: (aType: number, checked: boolean) => void;\r\n getFilter: () => string;\r\n setBrowserQueryString: (param: URLSearchParams, delIfEmpthy?: boolean) => void;\r\n setValuesByQuery: (param: URLSearchParams) => void;\r\n // spaciel value, if checkd it will mark all options as true\r\n allTypesOption: number;\r\n isAllValsFalse: boolean;\r\n //text is updated after filter submit\r\n text: string;\r\n setText: (ignoreIfAll: boolean) => void;\r\n}\r\n/** filter group of boolaen filters that are check-box in the gui\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilter implements IColumnFilter {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n arrValues: number[];\r\n isArrValuesEmptyOnAllCheck: boolean;\r\n\r\n @observable\r\n arrTypes: IFilterChecker[];\r\n\r\n allTypesOption: number;\r\n\r\n @observable\r\n text: string;\r\n\r\n constructor(name: string, dbColName: string, allTypesOption: number = -1, isEmptyValsOnAllCheck: boolean = true) {\r\n this.name = name;\r\n this.queryColName = dbColName;\r\n this.arrTypes = [];\r\n this.arrValues = [];\r\n this.isArrValuesEmptyOnAllCheck = isEmptyValsOnAllCheck;\r\n // if this value > -1 , there is an option to set all values as true\r\n this.allTypesOption = allTypesOption;\r\n this.text = '';\r\n }\r\n\r\n /**\r\n * check if all the a values in the group are false\r\n */\r\n @computed get isAllValsFalse() {\r\n const res = this.arrTypes.reduce((counter, currentValue) => (currentValue.checked ? ++counter : counter), 0);\r\n return (res === 0);\r\n }\r\n\r\n @action\r\n setFilter = (aType: number, checked: boolean) => {\r\n // in case this filter group has no \"select all\" option - update the value\r\n if (this.allTypesOption === -1) this.arrTypes[aType].checked = checked;\r\n // in case this filter has opthion for \"select all\"\r\n else if (aType === this.allTypesOption) {\r\n this.arrTypes.forEach((x, index) => x.checked = (index === this.allTypesOption) ? checked : !checked);\r\n } else {\r\n this.arrTypes[this.allTypesOption].checked = false;\r\n this.arrTypes[aType].checked = checked;\r\n }\r\n this.setQueryVals();\r\n }\r\n\r\n /**\r\n * return sentence for query-string from Multiplefilter of booleans,\r\n * for example : &injt=4,5 \r\n * @param colFilter column filter with name and chekcd list of values\r\n */\r\n @action\r\n setQueryVals = () => {\r\n let allChecked: boolean = true;\r\n let arrfilter: number[] = [];\r\n if (this.allTypesOption > -1 && this.arrTypes[this.allTypesOption].checked) allChecked = true;\r\n else {\r\n // in case there is allTypesOption , it want be copied to arrfilter\r\n // as it is not checked\r\n const iterator = this.arrTypes.values();\r\n for (const filterCheck of iterator) {\r\n if (filterCheck.checked) {\r\n arrfilter = [...arrfilter, ...filterCheck.filters];\r\n } else {\r\n allChecked = false;\r\n }\r\n }\r\n }\r\n if (allChecked && this.isArrValuesEmptyOnAllCheck) arrfilter = [];\r\n this.arrValues = arrfilter;\r\n };\r\n\r\n /**\r\n * \r\n * @returns query string for the server\r\n */\r\n getFilter = () => {\r\n const vals = this.arrValues.join(',');\r\n let res = (this.arrValues.length == 0) ? '' : `&${this.queryColName}=${vals}`;\r\n return res;\r\n }\r\n\r\n /**\r\n * set parmas of the browser QueryString\r\n * @param params \r\n */\r\n setBrowserQueryString = (params: URLSearchParams, delIfEmpthy: boolean = true) => {\r\n if (this.arrValues.length === 0 && delIfEmpthy) {\r\n params.delete(this.queryColName);\r\n } else {\r\n const vals = this.arrValues.join(',');\r\n params.set(this.queryColName, vals);\r\n }\r\n }\r\n\r\n /**\r\n * set arrValues by url query parmas\r\n * @param params queryString from the browser\r\n */\r\n @action\r\n setValuesByQuery(params: URLSearchParams) {\r\n const vals = params.get(this.queryColName);\r\n if (vals !== null) {\r\n const valsArr = vals.split(',').map(Number);\r\n this.arrTypes.forEach(checker => {\r\n const found = checker.filters.some(r => valsArr.includes(r));\r\n checker.checked = found;\r\n });\r\n }\r\n this.setQueryVals();\r\n }\r\n\r\n @action\r\n setText = (ignoreIfAll: boolean) => {\r\n if (ignoreIfAll) {\r\n this.text = this.arrTypes.filter((x, index) => x.checked && index !== this.allTypesOption)\r\n .map(x => i18n.t(x.label)).join(', ');\r\n //in case all is cheked and no \"allTypesOption\" - text is ''\r\n if (this.allTypesOption === -1 && this.arrValues.length === 0) {\r\n this.text = '';\r\n }\r\n } else {\r\n this.text = this.arrTypes.filter(x => x.checked).map(x => i18n.t(x.label)).join(', ');\r\n }\r\n }\r\n}\r\n\r\nexport const initInjurySeverity = () => {\r\n const col: IColumnFilter = new ColumnFilter('Severity', 'sev', -1, false);\r\n col.arrTypes.push(new FilterChecker('dead', true, [1]));\r\n col.arrTypes.push(new FilterChecker('severly-injured', false, [2]));\r\n col.setQueryVals();\r\n return col;\r\n};\r\n\r\nexport const initDayNight = () => {\r\n const col: IColumnFilter = new ColumnFilter('DayNight', 'dn');\r\n col.arrTypes.push(new FilterChecker('day', true, [1]));\r\n col.arrTypes.push(new FilterChecker('night', true, [5]));\r\n return col;\r\n};\r\n\r\nexport const initMonth = () => {\r\n const col: IColumnFilter = new ColumnFilter('Month', 'mn');\r\n col.arrTypes.push(new FilterChecker('1', true, [1]));\r\n col.arrTypes.push(new FilterChecker('2', true, [2]));\r\n col.arrTypes.push(new FilterChecker('3', true, [3]));\r\n col.arrTypes.push(new FilterChecker('4', true, [4]));\r\n col.arrTypes.push(new FilterChecker('5', true, [5]));\r\n col.arrTypes.push(new FilterChecker('6', true, [6]));\r\n col.arrTypes.push(new FilterChecker('7', true, [7]));\r\n col.arrTypes.push(new FilterChecker('8', true, [8]));\r\n col.arrTypes.push(new FilterChecker('9', true, [9]));\r\n col.arrTypes.push(new FilterChecker('10', true, [10]));\r\n col.arrTypes.push(new FilterChecker('11', true, [11]));\r\n col.arrTypes.push(new FilterChecker('12', true, [12]));\r\n return col;\r\n};\r\n\r\nexport const initInjTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('TypeInjured', 'injt', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('pedestrian', false, [1]));\r\n col.arrTypes.push(new FilterChecker('cyclist', false, [6, 7]));\r\n col.arrTypes.push(new FilterChecker('other', false, [8, 9]));\r\n col.arrTypes.push(new FilterChecker('motorcycle', false, [4, 5]));\r\n col.arrTypes.push(new FilterChecker('wheels4+', false, [2, 3]));\r\n return col;\r\n};\r\n\r\nexport const initVehicleTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('VehicleType', 'vcl', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('pedestrian', false, [0]));\r\n col.arrTypes.push(new FilterChecker('mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('motorcycle', false,\r\n [8, 9, 10, 19]));\r\n col.arrTypes.push(new FilterChecker('car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('bus', false, [11, 18]));\r\n col.arrTypes.push(new FilterChecker('truck', false,\r\n [24, 25, 5, 6, 7]));\r\n col.arrTypes.push(new FilterChecker('tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('other', false, [17]));\r\n return col;\r\n};\r\n\r\nexport const initVehicleTypesFull = () => {\r\n const col: IColumnFilter = new ColumnFilter('VehicleType', 'vcl', 0);\r\n col.arrTypes.push(new FilterChecker('vclType.all', true, []));\r\n col.arrTypes.push(new FilterChecker('vclType.pedestrian', false, [0]));\r\n col.arrTypes.push(new FilterChecker('vclType.mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('vclType.bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle1', false, [8]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle2', false, [9]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle3', false, [10]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle4', false, [19]));\r\n col.arrTypes.push(new FilterChecker('vclType.car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('vclType.taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('vclType.tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('vclType.tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('vclType.minbuss', false, [18]));\r\n col.arrTypes.push(new FilterChecker('vclType.bus', false, [11]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck1', false, [24]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck2', false, [25]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck3', false, [5]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck4', false, [6]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck5', false, [7]));\r\n col.arrTypes.push(new FilterChecker('vclType.tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('vclType.train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('vclType.other', false, [17]));\r\n return col;\r\n};\r\n\r\nexport const initInvolvedVehicle = () => {\r\n const col: IColumnFilter = new ColumnFilter('Vehicles', 'vcli', 0);\r\n col.arrTypes.push(new FilterChecker('vclType.all', true, []));\r\n col.arrTypes.push(new FilterChecker('vclType.mobilityscooter', false, [22]));\r\n col.arrTypes.push(new FilterChecker('vclType.bicycle', false, [15]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-scooter', false, [21]));\r\n col.arrTypes.push(new FilterChecker('vclType.e-bike', false, [23]));\r\n col.arrTypes.push(new FilterChecker('vclType.motorcycle', false, [8]));\r\n col.arrTypes.push(new FilterChecker('vclType.car', false, [1]));\r\n col.arrTypes.push(new FilterChecker('vclType.taxi', false, [12]));\r\n col.arrTypes.push(new FilterChecker('vclType.tranzit', false, [2]));\r\n col.arrTypes.push(new FilterChecker('vclType.tender', false, [3]));\r\n col.arrTypes.push(new FilterChecker('vclType.bus', false, [11]));\r\n col.arrTypes.push(new FilterChecker('vclType.truck', false, [5]));\r\n col.arrTypes.push(new FilterChecker('vclType.tractor', false, [14]));\r\n col.arrTypes.push(new FilterChecker('vclType.train', false, [16]));\r\n col.arrTypes.push(new FilterChecker('vclType.other', false, [17]));\r\n return col;\r\n};\r\n\r\n\r\nexport const initGenderTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Gender', 'sex');\r\n col.arrTypes.push(new FilterChecker('female', true, [2]));\r\n col.arrTypes.push(new FilterChecker('male', true, [1]));\r\n return col;\r\n};\r\n\r\nexport const initAgeTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Age', 'age', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('00-04', false, [1]));\r\n col.arrTypes.push(new FilterChecker('05-09', false, [2]));\r\n col.arrTypes.push(new FilterChecker('10-14', false, [3]));\r\n col.arrTypes.push(new FilterChecker('15-19', false, [4]));\r\n col.arrTypes.push(new FilterChecker('20-29', false, [5, 6]));\r\n col.arrTypes.push(new FilterChecker('30-39', false, [7, 8]));\r\n col.arrTypes.push(new FilterChecker('40-49', false, [9, 10]));\r\n col.arrTypes.push(new FilterChecker('50-59', false, [11, 12]));\r\n col.arrTypes.push(new FilterChecker('60-69', false, [13, 14]));\r\n col.arrTypes.push(new FilterChecker('70-79', false, [15, 16]));\r\n col.arrTypes.push(new FilterChecker('80+', false, [17, 18]));\r\n col.arrTypes.push(new FilterChecker('unknown', false, [99]));\r\n return col;\r\n};\r\nexport const initPopulationTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('Population', 'pt');\r\n col.arrTypes.push(new FilterChecker('jews', true, [1]));\r\n col.arrTypes.push(new FilterChecker('arabs', true, [2]));\r\n col.arrTypes.push(new FilterChecker('immigrants', true, [4]));\r\n col.arrTypes.push(new FilterChecker('others', true, [3]));\r\n return col;\r\n};\r\n\r\nexport const initLocationAccuracy = () => {\r\n const col: IColumnFilter = new ColumnFilter('LocationAccuracy', 'lca');\r\n col.arrTypes.push(new FilterChecker('accurate_location', true, [1]));\r\n col.arrTypes.push(new FilterChecker('city_center', true, [2]));\r\n col.arrTypes.push(new FilterChecker('road_center', true, [3]));\r\n col.arrTypes.push(new FilterChecker('km_cneter', true, [4]));\r\n col.arrTypes.push(new FilterChecker('no_location', true, [9]));\r\n return col;\r\n};\r\n\r\nexport const initRoadTypes = () => {\r\n const col: IColumnFilter = new ColumnFilter('RoadType', 'rt');\r\n col.arrTypes.push(new FilterChecker('urban-junction', true, [1]));\r\n col.arrTypes.push(new FilterChecker('urban-road', true, [2]));\r\n col.arrTypes.push(new FilterChecker('non-urban-junction', true, [3]));\r\n col.arrTypes.push(new FilterChecker('non-urban-road', true, [4]));\r\n return col;\r\n};\r\nexport const initSpeedLimit = () => {\r\n const col: IColumnFilter = new ColumnFilter('SpeedLimit', 'sp', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('speed50', false, [1]));\r\n col.arrTypes.push(new FilterChecker('speed60', false, [2]));\r\n col.arrTypes.push(new FilterChecker('speed70', false, [3]));\r\n col.arrTypes.push(new FilterChecker('speed80', false, [4]));\r\n col.arrTypes.push(new FilterChecker('speed90', false, [5]));\r\n col.arrTypes.push(new FilterChecker('speed100', false, [6]));\r\n col.arrTypes.push(new FilterChecker('speed110', false, [7]));\r\n col.arrTypes.push(new FilterChecker('speed120', false, [8]));\r\n col.arrTypes.push(new FilterChecker('speed-unknown', false, [0]));\r\n return col;\r\n};\r\nexport const initRoadWidth = () => {\r\n const col: IColumnFilter = new ColumnFilter('RoadWidth', 'rw', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('road-width-5', false, [1]));\r\n col.arrTypes.push(new FilterChecker('road-width-7', false, [2]));\r\n col.arrTypes.push(new FilterChecker('road-width-10', false, [3]));\r\n col.arrTypes.push(new FilterChecker('road-width-14', false, [4]));\r\n col.arrTypes.push(new FilterChecker('road-width-14+', false, [5]));\r\n col.arrTypes.push(new FilterChecker('unknown', false, [0]));\r\n return col;\r\n};\r\nexport const initSeparator = () => {\r\n const col: IColumnFilter = new ColumnFilter('Separator', 'ml', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('separator-fence', false, [2]));\r\n col.arrTypes.push(new FilterChecker('separator-built', false, [3]));\r\n col.arrTypes.push(new FilterChecker('separator-not-built', false, [4]));\r\n col.arrTypes.push(new FilterChecker('separator-paint', false, [1]));\r\n col.arrTypes.push(new FilterChecker('separator-ohter', false, [5]));\r\n // col.arrTypes.push(new FilterChecker('separator-not-relevant', false, [-1]));\r\n return col;\r\n};\r\nexport const initOneLane = () => {\r\n const col: IColumnFilter = new ColumnFilter('OneLane', 'ol', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('onelane-oneway', false, [1]));\r\n col.arrTypes.push(new FilterChecker('onelane-twoway-line', false, [2]));\r\n col.arrTypes.push(new FilterChecker('onelane-twoway-noline', false, [3]));\r\n col.arrTypes.push(new FilterChecker('onelane-unknown', false, [9]));\r\n // col.arrTypes.push(new FilterChecker('onelane-not-relevant', false, [-1]));\r\n return col;\r\n};\r\nexport const initAccidentType = () => {\r\n const col: IColumnFilter = new ColumnFilter('AccidentType', 'acc', 0);\r\n col.arrTypes.push(new FilterChecker('all', true, []));\r\n col.arrTypes.push(new FilterChecker('accType.ped', false, [1]));\r\n col.arrTypes.push(new FilterChecker('accType.front-side', false, [2]));\r\n col.arrTypes.push(new FilterChecker('accType.front-front', false, [5]));\r\n col.arrTypes.push(new FilterChecker('accType.front-rear', false, [3]));\r\n col.arrTypes.push(new FilterChecker('accType.side-side', false, [4]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle1', false, [6]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle2', false, [7]));\r\n col.arrTypes.push(new FilterChecker('accType.obstacle3', false, [8]));\r\n col.arrTypes.push(new FilterChecker('accType.offroad', false, [9]));\r\n col.arrTypes.push(new FilterChecker('accType.turning-over', false, [10]));\r\n col.arrTypes.push(new FilterChecker('accType.slip', false, [11]));\r\n col.arrTypes.push(new FilterChecker('accType.passenger', false, [12]));\r\n col.arrTypes.push(new FilterChecker('accType.falloff', false, [13]));\r\n col.arrTypes.push(new FilterChecker('accType.rear-front', false, [17]));\r\n col.arrTypes.push(new FilterChecker('accType.rear-side', false, [18]));\r\n col.arrTypes.push(new FilterChecker('accType.animal', false, [19]));\r\n col.arrTypes.push(new FilterChecker('accType.cargo', false, [20]));\r\n col.arrTypes.push(new FilterChecker('accType.other', false, [15]));\r\n return col;\r\n\r\n};\r\n\r\nexport const initDataYreasUnfilterd = () => dataYearsUnfilterdInit;\r\n\r\nexport const initDataYreasfilterd = () => dataYearsfilterdInit;\r\n\r\nexport const initDataGrpBy1 = () => dataGrpBy1Init;\r\n\r\nexport const initDataGrpBy2 = () => dataGrp2Init;","\r\nexport const getFilterGroupBy =\r\n (filterMatch: string,\r\n groupName: string,\r\n popMin = -1,\r\n popMax = -1,\r\n groupName2: string = '',\r\n limit: number= 0,\r\n sort: number =0 ) => {\r\n let filter = filterMatch;\r\n filter += `&gb=${groupName}`;\r\n if (groupName2 !== '') {\r\n filter +=`&gb2=${groupName2}`\r\n }\r\n if (sort !== 0)\r\n filter +=`&sort=${sort}`\r\n if (limit !== 0)\r\n filter +=`&lim=${limit}`\r\n return filter;\r\n };\r\n\r\n// get filter by city population \r\nexport const getFilterByCityPop = (popMin: number, popMax: number) => {\r\n let filter = '';\r\n if (popMin >= 0 && popMax > popMin) {\r\n //&p1=200000&p2=500000\r\n filter += `&p1=${popMin}&p2=${popMax}`;\r\n }\r\n return filter;\r\n};\r\n\r\n/**\r\n * fiter by accidents per 100,000 city population\r\n * @param filterMatch \r\n * @param popMin \r\n * @param popMax \r\n * @param sort \r\n * @param limit \r\n */\r\nexport const getFilterGroupByPop = (filterMatch: string, popMin = 200000, popMax = 100000, sort: number, limit: number) => {\r\n let filter = `${'['\r\n + '{\"$match\": '}${filterMatch}}`;\r\n filter += ',{\"$lookup\":{'\r\n + ' \"from\": \"cities\", \"localField\": \"accident_yishuv_name\",'\r\n + ' \"foreignField\": \"name_he\",\"as\": \"city\"'\r\n + '}}';\r\n if (popMin >= 0 && popMax > 0) {\r\n filter += `,{ \"$match\": { \"city.population\": { \"$gte\" : ${popMin} , \"$lte\" : ${popMax}}}}`;\r\n }\r\n filter += ',{\"$group\": {'\r\n + '\"_id\": \"$accident_yishuv_name\",\"t_count\" : { \"$sum\" : 1 },\"t_population\" : { \"$first\" : \"$city.population\" }'\r\n + '}}';\r\n filter += ',{ \"$unwind\" : \"$t_population\"}';\r\n filter += ',{ \"$project\" : { \"count\" :'\r\n + '{ \"$multiply\" : [100000, { \"$divide\" : [\"$t_count\", \"$t_population\"] } ]}'\r\n + '}}';\r\n if (limit === 0) filter += `,{\"$sort\": {\"count\": ${sort}}}`;\r\n else {\r\n filter += `${`,{\"$sort\": {\"count\": ${sort}}}`\r\n + ',{\"$limit\": '}${limit}}`;\r\n }\r\n filter += ']';\r\n return filter;\r\n};\r\n\r\nexport const getfilterBounds = (mapBounds: L.LatLngBounds) => {\r\n let filter = `&lat=${mapBounds.getSouth()},${mapBounds.getNorth()}`;\r\n filter += `&lon=${mapBounds.getWest()},${mapBounds.getEast()}`;\r\n return filter;\r\n}\r\n// don't use this - for post filter\r\nexport const getFilterStreets = (streets : string[]) => {\r\n let filter: string = '';\r\n return filter;\r\n}\r\n// don't use this - for post filter\r\nexport const getfilterCity = (cities : string[]) => {\r\n let filter: string = '';\r\n return filter;\r\n}","import { observable, action } from 'mobx';\r\n// import i18n from '../i18n';\r\n\r\nexport interface IColumnFilterArray {\r\n name: string;\r\n queryColName: string;\r\n //array of values to be sent as query to server\r\n arrValues: string[];\r\n isStringValues: boolean;\r\n setBrowserQueryString: (param: URLSearchParams) => void;\r\n setFilter: (values: string[]) => void;\r\n getFilter: () => string;\r\n //text is updated ofter filter submit\r\n text: string;\r\n setText: () => void;\r\n}\r\n/** filter group of boolaen filters\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilterArray implements IColumnFilterArray {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n @observable\r\n arrValues: string[];\r\n\r\n @observable\r\n text: string;\r\n\r\n isStringValues: boolean;\r\n\r\n constructor(name: string, queryColName: string, isStringValues: boolean) {\r\n this.name = name;\r\n this.queryColName = queryColName;\r\n this.arrValues = [];\r\n this.isStringValues = isStringValues;\r\n this.text = '';\r\n }\r\n\r\n @action\r\n setFilter = (values: string[]) => {\r\n this.arrValues = values;\r\n }\r\n\r\n setBrowserQueryString = (params: URLSearchParams) => {\r\n if (this.arrValues.length > 0 && this.arrValues[0] !== '') {\r\n let vals = '';\r\n if (this.isStringValues) {\r\n vals += this.arrValues.map((x: string) => `${x.trim()}`).join(',');\r\n } else {\r\n vals += this.arrValues.map((x: string) => x).join(',');\r\n }\r\n params.set(this.queryColName, vals);\r\n } else {\r\n params.delete(this.queryColName);\r\n }\r\n }\r\n\r\n getFilter = () => {\r\n let filter: string = '';\r\n if (this.arrValues.length > 0 && this.arrValues[0] !== '') {\r\n filter += `&${this.queryColName}=`;\r\n if (this.isStringValues) {\r\n filter += this.arrValues.map((x: string) => `\"${x.trim()}\"`).join(',');\r\n } else {\r\n filter += this.arrValues.map((x: string) => x).join(',');\r\n }\r\n\r\n }\r\n return filter;\r\n }\r\n\r\n @action\r\n setText = () => {\r\n this.text = this.arrValues.join(', ');\r\n }\r\n}","import { observable, action } from 'mobx';\r\nimport i18n from '../i18n';\r\n\r\nexport interface IColumnFilterCombo {\r\n name: string;\r\n queryColName: string;\r\n //data for combo\r\n arrTypes: any[];\r\n //value to be sent as query to server\r\n queryValue: string | number;\r\n // spaciel value, if selected no filter is needed \r\n allTypesOption: number;\r\n isEmpty: () => boolean;\r\n setBrowserQueryString: (param: URLSearchParams, delIfEmpthy?: boolean) => void;\r\n setValuesByQuery: (param: URLSearchParams) => void;\r\n setFilter: (value: string | number) => void;\r\n getFilter: () => string;\r\n //text is updated ofter filter submit\r\n text: string;\r\n setText: () => void;\r\n}\r\n/** filter group of boolaen filters\r\n* each group represnt one column in the database that can get\r\n* several fixd values\r\n*/\r\nexport class ColumnFilterCombo implements IColumnFilterCombo {\r\n name: string;\r\n\r\n queryColName: string;\r\n\r\n arrTypes: any[];\r\n @observable\r\n queryValue: string | number;\r\n\r\n @observable\r\n text: string;\r\n\r\n allTypesOption: number;\r\n\r\n constructor(name: string,\r\n queryColName: string,\r\n allTypesOption: number = -1,\r\n data: any[],\r\n defaultVal: string | number) {\r\n this.name = name;\r\n this.queryColName = queryColName;\r\n this.arrTypes = data;\r\n this.queryValue = defaultVal;\r\n this.allTypesOption = allTypesOption;\r\n this.text = '';\r\n }\r\n\r\n @action\r\n setFilter = (value: string | number) => {\r\n this.queryValue = value;\r\n }\r\n\r\n isEmpty = () => {\r\n return (this.allTypesOption >= 0 && this.queryValue === this.arrTypes[this.allTypesOption]);\r\n }\r\n\r\n setBrowserQueryString = (params: URLSearchParams, delIfEmpthy: boolean = true) => {\r\n if (!this.isEmpty()) {\r\n let vals = '';\r\n if (typeof (this.queryValue) === 'string') {\r\n vals += this.queryValue;\r\n } else {\r\n vals += this.queryValue.toString();\r\n }\r\n params.set(this.queryColName, vals);\r\n } else if (delIfEmpthy) {\r\n params.delete(this.queryColName);\r\n }\r\n }\r\n setValuesByQuery = (params: URLSearchParams) => {\r\n const vals = params.get(this.queryColName);\r\n if (vals !== null) {\r\n if (typeof (this.queryValue) === 'string') {\r\n this.setFilter(vals);\r\n } else {\r\n this.setFilter(parseInt(vals));\r\n }\r\n }\r\n }\r\n\r\n getFilter = () => {\r\n let filter: string = '';\r\n if (!this.isEmpty()) {\r\n filter += `&${this.queryColName}=`;\r\n if (typeof (this.queryValue) === 'string') {\r\n filter += this.queryValue;\r\n } else {\r\n filter += this.queryValue.toString();\r\n }\r\n }\r\n return filter;\r\n }\r\n\r\n @action\r\n setText = () => {\r\n if (typeof (this.queryValue) === 'string') {\r\n this.text = this.queryValue;\r\n } else {\r\n this.text = this.queryValue.toString();\r\n }\r\n }\r\n}\r\n\r\nexport class ColumnFilterComboValText extends ColumnFilterCombo {\r\n isEmpty = () => {\r\n return (this.allTypesOption >= 0 && this.queryValue === this.arrTypes[this.allTypesOption].val);\r\n }\r\n @action\r\n setText = () => {\r\n let res = '';\r\n if (!this.isEmpty()) {\r\n const foundObject = this.arrTypes.find((obj: any) => { return obj.val === this.queryValue });\r\n if (foundObject) {\r\n res = `${i18n.t(foundObject.text)}`;\r\n }\r\n this.text = res;\r\n }\r\n }\r\n}\r\n\r\nconst years: string[] = ['2015', '2016', '2017', '2018', '2019','2020'];\r\nconst CITY_POP_SIZE_ALL = '{\"min\":-1,\"max\":-1}';\r\nconst cityPopSizeArr = [\r\n { val: '{\"min\":-1,\"max\":-1}', text: 'all' },\r\n { val: '{\"min\":200000,\"max\":1000000}', text: '200K-1000K' },\r\n { val: '{\"min\":100000,\"max\":200000}', text: '100K-200K' },\r\n { val: '{\"min\":50000,\"max\":100000}', text: '50K-100K' },\r\n { val: '{\"min\":20000,\"max\":50000}', text: '20K-50K' },\r\n { val: '{\"min\":10000,\"max\":20000}', text: '10K-20K' },\r\n { val: '{\"min\":0,\"max\":10000}', text: '0-10K' },\r\n];\r\n\r\nexport const initStartYear = () => {\r\n const col: ColumnFilterCombo = new ColumnFilterCombo('FromYear', 'sy', -1, years, 2016);\r\n return col;\r\n};\r\n\r\nexport const initEndYear = () => {\r\n const col: ColumnFilterCombo = new ColumnFilterCombo('ToYear', 'ey', -1, years, 2020);\r\n return col;\r\n};\r\n\r\nexport const initCityPopSize = () => {\r\n const col: ColumnFilterComboValText = new ColumnFilterComboValText('city_size', 'p1', 0, cityPopSizeArr, CITY_POP_SIZE_ALL);\r\n return col;\r\n};\r\n","import Footer from \"../components/templates/Footer\";\r\n\r\nexport const reGroupResultIsSelfAcc = (data: any[]) => {\r\n console.log('reGroupResultIsSelfAcc',data)\r\n let res = new Array();\r\n res.push({ _id: 'תאונה עצמית', count: 0 });\r\n res.push({ _id: 'תאונה לא עצמית', count: 0 });\r\n data.forEach(element => {\r\n if (isSelfAccident(element._id)) {\r\n res[0].count += element.count;\r\n }else{\r\n res[1].count += element.count;\r\n }\r\n });\r\n return res;\r\n}\r\nexport const isSelfAccident= ( val :string) => {\r\n let res = false;\r\n switch (val) {\r\n case 'עצמית':\r\n case 'החלקה':\r\n case 'התהפכות':\r\n case 'התנגשות עם עצם דומם':\r\n case 'התנגשות עם רכב חונה':\r\n case 'ירידה מהכביש או עלייה למדרכה':\r\n case 'פגיעה בנוסע בתוך כלי הרכב':\r\n case 'נפילה מרכב נע':\r\n res = true;\r\n break;\r\n default:\r\n res = false;\r\n }\r\n return res;\r\n}","import { observable } from 'mobx';\r\nimport {reGroupResultIsSelfAcc} from '../utils/groupByUtils';\r\n\r\nexport interface IGroupBy {\r\n text: string;\r\n value: string;\r\n limit: number;\r\n sort: number;\r\n reGroupResultFunc? : any;\r\n}\r\n\r\nexport default class GroupBy implements IGroupBy {\r\n @observable\r\n text: string;\r\n\r\n value: string;\r\n\r\n limit: number;\r\n\r\n sort: number;\r\n\r\n reGroupResultFunc : any|null;\r\n\r\n // text - headleine for GUI, value - name of value for filter\r\n constructor(text: string, value: string, limit: number = 0, sort:number = 0, reGroupResultFunc?:any) {\r\n this.text = text;\r\n this.value = value;\r\n this.limit = limit;\r\n this.sort = sort;\r\n if(reGroupResultFunc) this.reGroupResultFunc = reGroupResultFunc;\r\n }\r\n\r\n}\r\n//init a group-by dictionary \r\nexport const initGroupMap = (useGetFetch: boolean) => {\r\n if (useGetFetch) return initGroupMapForGet();\r\n else return initGroupByDictForPost();\r\n}\r\n\r\nconst initGroupMapForGet = () => {\r\n const map = new Map();\r\n map.set('sev', new GroupBy('Severity', 'sev'));\r\n map.set('injt', new GroupBy('TypeInjured', 'injt'));\r\n map.set('vcl', new GroupBy('Vehicle', 'vcl'));\r\n map.set('sex', new GroupBy('Gender', 'sex'));\r\n map.set('age', new GroupBy('Age', 'age'));\r\n map.set('pt', new GroupBy('Population', 'pt'));\r\n map.set('year', new GroupBy('Year', 'year'));\r\n map.set('mn', new GroupBy('Month', 'mn'));\r\n map.set('dn', new GroupBy('DayNight', 'dn'));\r\n map.set('wd', new GroupBy('WeekDay', 'wd'));\r\n map.set('rt', new GroupBy('RoadType', 'rt'));\r\n map.set('lca', new GroupBy('LocationAccuracy', 'lca'))\r\n map.set('city', new GroupBy('City', 'city', 15, -1));\r\n map.set('cpop', new GroupBy('CityByPop', 'cpop'));\r\n map.set('st', new GroupBy('Street', 'st', 15, -1));\r\n map.set('rd', new GroupBy('Road', 'rd', 10, -1));\r\n map.set('acc', new GroupBy('AccidentType', 'acc'));\r\n map.set('selfacc', new GroupBy('SelfOrNotAcc', 'selfacc', 0, 0, reGroupResultIsSelfAcc));\r\n map.set('vcli', new GroupBy('Vehicles', 'vcli'));\r\n map.set('sp', new GroupBy('SpeedLimit', 'sp'));\r\n map.set('rw', new GroupBy('RoadWidth', 'rw'));\r\n map.set('ml', new GroupBy('Separator', 'ml'));\r\n map.set('ol', new GroupBy('OneLane', 'ol'));\r\n return map;\r\n};\r\n\r\nconst initGroupByDictForPost = () => {\r\n const dictGroupBy: any = {};\r\n dictGroupBy.Severity = new GroupBy('Severity', 'injury_severity_hebrew');\r\n dictGroupBy.TypeInjured = new GroupBy('TypeInjured', 'injured_type_hebrew');\r\n dictGroupBy.Vehicle = new GroupBy('Vehicle', 'vehicle_vehicle_type_hebrew');\r\n dictGroupBy.Gender = new GroupBy('Gender', 'sex_hebrew');\r\n dictGroupBy.Age = new GroupBy('Age', 'age_group_hebrew');\r\n dictGroupBy.Year = new GroupBy('Year', 'accident_year');\r\n dictGroupBy.Month = new GroupBy('Month', 'accident_month');\r\n dictGroupBy.DayNight = new GroupBy('DayNight', 'day_night_hebrew');\r\n dictGroupBy.WeekDay = new GroupBy('WeekDay', 'day_in_week_hebrew');\r\n dictGroupBy.RoadType = new GroupBy('RoadType', 'road_type_hebrew');\r\n dictGroupBy.City = new GroupBy('City', 'accident_yishuv_name', 10);\r\n dictGroupBy.CityByPop = new GroupBy('CityByPop', 'accident_yishuv_name');\r\n dictGroupBy.Street = new GroupBy('Street', 'street1_hebrew', 10);\r\n dictGroupBy.Road = new GroupBy('Road', 'road1', 10);\r\n dictGroupBy.AccidentType = new GroupBy('AccidentType', 'accident_type_hebrew');\r\n dictGroupBy.Vehicles = new GroupBy('Vehicles', 'vehicles');\r\n dictGroupBy.SpeedLimit = new GroupBy('SpeedLimit', 'speed_limit_hebrew');\r\n dictGroupBy.RoadWidth = new GroupBy('RoadWidth', 'road_width_hebrew');\r\n dictGroupBy.Separator = new GroupBy('Separator', 'multi_lane_hebrew');\r\n dictGroupBy.OneLane = new GroupBy('OneLane', 'one_lane_hebrew');\r\n return dictGroupBy;\r\n};\r\n","import { observable } from 'mobx';\r\n \r\nexport interface IGroupBy2 {\r\n text: string;\r\n name: string;\r\n vals: any;\r\n}\r\n\r\nexport default class GroupBy2 implements IGroupBy2 {\r\n @observable\r\n text: string;\r\n\r\n name: string;\r\n\r\n vals: any;\r\n\r\n constructor(text: string, name: string) {\r\n this.text = text;\r\n this.name = name;\r\n this.vals = {};\r\n }\r\n\r\n revTrnas = (key: string) => {\r\n if (key === '') return '';\r\n const res = this.vals[key].name;\r\n return res;\r\n }\r\n\r\n // input sample: {count : [{grp2: \"זכר\", count: 3}, {grp2: \"נקבה\", count: 2} ]}\r\n // output sample: {_id: \"2015\", male: 3, female: 2}\r\n fixStrcutTable = (data: any[]) => {\r\n const res = data.map((x) => {\r\n const arr = x.count.map((y: any) => {\r\n const engVal = this.revTrnas(y.grp2);\r\n return (`\"${engVal}\":${y.count}`);\r\n }).join(',');\r\n // eslint-disable-next-line no-underscore-dangle\r\n let xId = x._id;\r\n if (xId !== null && xId !== undefined && typeof (xId) === 'string') xId = xId.replace('\"', '\\\\\"');\r\n let sObject = `{\"_id\":\"${xId}\",${arr}}`;\r\n sObject = JSON.parse(sObject);\r\n return (sObject);\r\n });\r\n return res;\r\n }\r\n\r\n getBars = () => {\r\n // [{key:\"male\",color:\"#8884d8\"},{key:\"female\",color:\"#82ca9d\"}]\r\n const res = Object.entries(this.vals).map(([key, x]: any[]) => ({ key: x.name, color: x.color }));\r\n return res;\r\n }\r\n\r\n getColumns = () => {\r\n const res = Object.entries(this.vals).map(([key, x]: any[]) => (x.name));\r\n res.unshift('_id');\r\n return res;\r\n }\r\n}\r\n","export default class GroupBy2Val {\r\n name: string;\r\n \r\n color: string;\r\n\r\n constructor(name: string, color: string) {\r\n this.name = name;\r\n this.color = color;\r\n }\r\n}\r\n","import { observable, action } from 'mobx';\r\nimport GroupBy from './GroupBy';\r\nimport GroupBy2 from './GroupBy2';\r\nimport GroupBy2Val from './GroupBy2Val';\r\n\r\nexport default class GroupMap {\r\n dict: Map;\r\n queryColName: string;\r\n\r\n @observable\r\n groupBy: GroupBy2|GroupBy;\r\n\r\n constructor(map: Map, colName: string, defautVal: string) {\r\n this.dict = map;\r\n this.queryColName = colName;\r\n this.groupBy = this.dict.get(defautVal);\r\n this.setArrGroups();\r\n }\r\n\r\n @action\r\n setFilter = (key: string) => {\r\n this.groupBy = this.dict.get(key);\r\n }\r\n\r\n @observable\r\n arrGroups: any[] = [];\r\n\r\n @action\r\n setArrGroups = () => {\r\n this.arrGroups = Array.from(this.dict, ([key, item]) => ({ value: key, text: item.text }));\r\n }\r\n\r\n setBrowserQueryString = () => {\r\n const params = new URLSearchParams(location.search);\r\n if (this.groupBy instanceof GroupBy){\r\n params.set(this.queryColName, (this.groupBy as GroupBy).value);\r\n } else if (this.groupBy instanceof GroupBy2) {\r\n params.set(this.queryColName, (this.groupBy as GroupBy2).name);\r\n }\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n }\r\n\r\n @action\r\n setValuesByQuery = (params: URLSearchParams) => {\r\n const val = params.get(this.queryColName);\r\n if (val !== null) {\r\n this.setFilter(val);\r\n }\r\n }\r\n}\r\n\r\nexport const initGroup2Map = (useGetFetch: boolean) => {\r\n if (useGetFetch) return initGroup2DictForGet();\r\n else return initGroup2DictForPost();\r\n };\r\n\r\n /**\r\n * init a map of GroupBy2 objects, \r\n * each GroupBy2 object has values, to be used in charts, \r\n * keys are axpected values from server maped to lang values \r\n * @returns \r\n */\r\nconst initGroup2DictForGet = () => {\r\n const dict = new Map()\r\n const sev = new GroupBy2('Severity', 'sev');\r\n sev.vals['הרוג'] = new GroupBy2Val('dead', '#8884D8');\r\n sev.vals['פצוע קשה'] = new GroupBy2Val('severly-injured', '#82CA9D');\r\n dict.set(sev.name, sev);\r\n\r\n const gen = new GroupBy2('Gender', 'sex');\r\n gen.vals['זכר'] = new GroupBy2Val('male', '#8884D8');\r\n gen.vals['נקבה'] = new GroupBy2Val('female', '#82CA9D');\r\n dict.set(gen.name, gen);\r\n\r\n const roadt = new GroupBy2('RoadType', 'rt');\r\n roadt.vals['עירונית בצומת'] = new GroupBy2Val('urban-junction', '#559E54');\r\n roadt.vals['עירונית לא בצומת'] = new GroupBy2Val('urban-road', '#305A30');\r\n roadt.vals['לא-עירונית בצומת'] = new GroupBy2Val('non-urban-junction', '#1258DC');\r\n roadt.vals['לא-עירונית לא בצומת'] = new GroupBy2Val('non-urban-road', '#0A337F');\r\n dict.set(roadt.name, roadt);\r\n\r\n const year = new GroupBy2('Year', 'year');\r\n year.vals[2015] = new GroupBy2Val('2015', '#82CA9D');\r\n year.vals[2016] = new GroupBy2Val('2016', '#559E54');\r\n year.vals[2017] = new GroupBy2Val('2017', '#559E54');\r\n year.vals[2018] = new GroupBy2Val('2018', '#305A30');\r\n year.vals[2019] = new GroupBy2Val('2019', '#305A30');\r\n year.vals[2020] = new GroupBy2Val('2020', '#1258DC');\r\n dict.set(year.name, year);\r\n\r\n const dayNight = new GroupBy2('DayNight', 'dn');\r\n dayNight.vals['יום'] = new GroupBy2Val('day', '#82CA9D');\r\n dayNight.vals['לילה'] = new GroupBy2Val('night', '#559E54');\r\n dict.set(dayNight.name, dayNight);\r\n\r\n\r\n const injt = new GroupBy2('TypeInjured', 'injt');\r\n injt.vals['הולך רגל'] = new GroupBy2Val('pedestrian', '#82CA9D');\r\n injt.vals['נהג - אופניים'] = new GroupBy2Val('cyclist-d', '#559E54');\r\n injt.vals['נוסע - אופניים (לא נהג)'] = new GroupBy2Val('cyclist-p', '#559E54');\r\n injt.vals['נהג - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-d', '#305A30');\r\n injt.vals['נוסע - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-p', '#305A30');\r\n injt.vals['נהג - אופנוע'] = new GroupBy2Val('motorcycle-d', '#1258DC');\r\n injt.vals['נוסע - אופנוע (לא נהג)'] = new GroupBy2Val('motorcycle-p', '#1258DC');\r\n injt.vals['נהג - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-d', '#0A337F');\r\n injt.vals['נוסע - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-p', '#0A337F');\r\n dict.set(injt.name, injt);\r\n\r\n const acc= new GroupBy2('AccidentType', 'acc');\r\n acc.vals['פגיעה בהולך רגל'] = new GroupBy2Val('accType.ped', '#e3eaa7');\r\n acc.vals['התנגשות חזית בצד'] = new GroupBy2Val('accType.front-side', '#03045E');\r\n acc.vals['התנגשות חזית בחזית'] = new GroupBy2Val('accType.front-front', '#4673FA');\r\n acc.vals['התנגשות חזית באחור'] = new GroupBy2Val('accType.front-rear', '#00b4d8');\r\n acc.vals['התנגשות צד בצד'] = new GroupBy2Val('accType.side-side', '#90e0ef');\r\n acc.vals['התנגשות עם עצם דומם'] = new GroupBy2Val('accType.obstacle3', '#ef6351');\r\n acc.vals['התנגשות עם רכב חונה'] = new GroupBy2Val('accType.obstacle2', '#f38375');\r\n acc.vals['התנגשות עם רכב שנעצר ללא חניה'] = new GroupBy2Val('accType.obstacle1', '#f7a399');\r\n acc.vals['ירידה מהכביש או עלייה למדרכה'] = new GroupBy2Val('accType.offroad', '#fbc3bc');\r\n acc.vals['התהפכות'] = new GroupBy2Val('accType.turning-over', '#FA6E2D');\r\n acc.vals['החלקה'] = new GroupBy2Val('accType.slip', '#BD5422');\r\n acc.vals['אחר'] = new GroupBy2Val('accType.other', '#a53860');\r\n acc.vals['פגיעה בנוסע בתוך כלי הרכב'] = new GroupBy2Val('accType.passenger', '#31572c');\r\n acc.vals['נפילה מרכב נע'] = new GroupBy2Val('accType.falloff', '#4f772d');\r\n acc.vals['התנגשות אחור בחזית'] = new GroupBy2Val('accType.rear-front', '#CAF0F8');\r\n acc.vals['התנגשות אחור אל צד'] = new GroupBy2Val('accType.rear-side', '#CAF0F8');\r\n acc.vals['התנגשות עם בעל חיים'] = new GroupBy2Val('accType.animal', '#ecf39e');\r\n acc.vals['פגיעה ממטען של רכב'] = new GroupBy2Val('accType.cargo', '#0A337F');\r\n dict.set(acc.name, acc);\r\n\r\n return dict;\r\n}\r\n\r\nconst initGroup2DictForPost = () => {\r\n\r\n const dict = {} as any;\r\n dict.Severity = new GroupBy2('Severity', 'injury_severity_hebrew');\r\n dict.Severity.vals['הרוג'] = new GroupBy2Val('dead', '#8884D8');\r\n dict.Severity.vals['פצוע קשה'] = new GroupBy2Val('severly-injured', '#82CA9D');\r\n\r\n dict.Gender = new GroupBy2('Gender', 'sex_hebrew');\r\n dict.Gender.vals['זכר'] = new GroupBy2Val('male', '#8884D8');\r\n dict.Gender.vals['נקבה'] = new GroupBy2Val('female', '#82CA9D');\r\n\r\n dict.RoadType = new GroupBy2('RoadType', 'road_type_hebrew');\r\n dict.RoadType.vals['עירונית בצומת'] = new GroupBy2Val('urban-junction', '#559E54');\r\n dict.RoadType.vals['עירונית לא בצומת'] = new GroupBy2Val('urban-road', '#305A30');\r\n dict.RoadType.vals['לא-עירונית בצומת'] = new GroupBy2Val('non-urban-junction', '#1258DC');\r\n dict.RoadType.vals['לא-עירונית לא בצומת'] = new GroupBy2Val('non-urban-road', '#0A337F');\r\n\r\n dict.Year = new GroupBy2('Year', 'accident_year');\r\n dict.Year.vals[2015] = new GroupBy2Val('2015', '#82CA9D');\r\n dict.Year.vals[2016] = new GroupBy2Val('2016', '#559E54');\r\n dict.Year.vals[2017] = new GroupBy2Val('2017', '#559E54');\r\n dict.Year.vals[2018] = new GroupBy2Val('2018', '#305A30');\r\n dict.Year.vals[2019] = new GroupBy2Val('2019', '#305A30');\r\n\r\n dict.TypeInjured = new GroupBy2('TypeInjured', 'injured_type_hebrew');\r\n dict.TypeInjured.vals['הולך רגל'] = new GroupBy2Val('pedestrian', '#82CA9D');\r\n dict.TypeInjured.vals['נהג - אופניים'] = new GroupBy2Val('cyclist-d', '#559E54');\r\n dict.TypeInjured.vals['נוסע - אופניים (לא נהג)'] = new GroupBy2Val('cyclist-p', '#559E54');\r\n dict.TypeInjured.vals['נהג - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-d', '#305A30');\r\n dict.TypeInjured.vals['נוסע - רכב לא ידוע'] = new GroupBy2Val('inj-unknown-p', '#305A30');\r\n dict.TypeInjured.vals['נהג - אופנוע'] = new GroupBy2Val('motorcycle-d', '#1258DC');\r\n dict.TypeInjured.vals['נוסע - אופנוע (לא נהג)'] = new GroupBy2Val('motorcycle-p', '#1258DC');\r\n dict.TypeInjured.vals['נהג - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-d', '#0A337F');\r\n dict.TypeInjured.vals['נוסע - רכב בעל 4 גלגלים ויותר'] = new GroupBy2Val('wheels4+-p', '#0A337F');\r\n\r\n return dict;\r\n}","class AccidentService {\r\n public fetchGetList = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n \r\n public fetchGetGroupBy = async (filter: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/groupby/';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n \r\n public fetchGetCount = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n let url = '/api/v1/accident/get';\r\n url += filter;\r\n // console.log(url);\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n };\r\n\r\n public fetchFilter = async (filter: string, type: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = `/api/v1/accident/${type}`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\npublic fetchAggregatFilter = async (filter: string, type: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = (type === 'main') ? '/api/v1/accident/aggmain' : '/api/v1/accident/agglatlon';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\npublic fetchAggregate = async (filter: string): Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = '/api/v1/accident/agg';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: filter,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n}\r\nexport default new AccidentService();\r\n\r\n","export default class CityService {\r\n getCityByNameHe = (cityName: string, collback: (res: any[]) => void) => {\r\n // \"http://localhost:5000/api/v1/city?name_he=חיפה\"\r\n const url = `/api/v1/city?name_he=${cityName}`;\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n })\r\n .then(\r\n response => {\r\n return response.json();}\r\n )\r\n .then(data => {\r\n collback(data);\r\n })\r\n .catch((error) => {\r\n console.log('srv.getCityByNameHe',error)\r\n });\r\n ;\r\n };\r\n\r\n getCitiesNames(lang: string, collback: (res: any[]) => void) {\r\n // \"http://localhost:5000/api/v1/city?lang=he\"\r\n const url = `/api/v1/city?lang=${lang}`;\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n collback(data);\r\n });\r\n }\r\n}\r\n","import Dexie from 'dexie';\r\n\r\nconst db = new Dexie('saftyData');\r\ndb.version(1).stores({\r\n injuerd: 'id++,_id, accident_id, accident_year, accident_timestamp, sex_hebrew, accident_yishuv_name ,road_type_hebrew',\r\n});\r\n\r\nexport async function insertToDexie(data) {\r\n // logger.log(\"insertToDexie\")\r\n // logger.log(data)\r\n await db.injuerd.bulkPut(data);\r\n // testInsertDexie()\r\n}\r\n\r\nexport async function getFromDexie(arrFilters) {\r\n let data;\r\n if (arrFilters.length === 0) data = await db.injuerd.toArray();\r\n else {\r\n const years = arrFilters.shift();\r\n let collection = await db.injuerd.where(years.filterName).between(years.startYear, years.endYear, true, true);\r\n arrFilters.forEach((element) => {\r\n collection = collection.and(((x) => {\r\n if (element.values.length === 1) return x[element.filterName] === element.values[0];\r\n\r\n let orFilter = false;\r\n element.values.forEach((val) => orFilter = orFilter || x[element.filterName] === val);\r\n return orFilter;\r\n }));\r\n });\r\n data = await collection.toArray();\r\n }\r\n return data;\r\n}\r\n\r\n\r\n// var db1 = new Dexie('hellodb');\r\n// db1.version(1).stores({\r\n// tasks: '++id,date,description,done'\r\n// });\r\n\r\n\r\n// export async function testInsertDexie() {\r\n// var id = await db1.tasks.put({date: Date.now(), description: 'Test Dexie', done: 0});\r\n// logger.log(\"Got id \" + id);\r\n// // Now lets add a bunch of tasks\r\n// await db1.tasks.bulkPut([\r\n// {date: Date.now(), description: 'Test Dexie bulkPut()', done: 1},\r\n// {date: Date.now(), description: 'Finish testing Dexie bulkPut()', done: 1}\r\n// ]);\r\n// }\r\n\r\n\r\nexport default db;\r\n","export interface FilterLocalStorage {\r\n url: string\r\n description: string\r\n}\r\n\r\nexport class LocalStorageService {\r\n\r\n getLoaclStorage(key: string) {\r\n let data = localStorage.getItem(key)\r\n return data ? JSON.parse(data) : []\r\n }\r\n\r\n setLocalStorage(key: string, data: T[]) {\r\n localStorage.setItem(key, JSON.stringify(data))\r\n }\r\n\r\n}","import {\r\n observable, action, computed,\r\n} from 'mobx';\r\nimport { IColumnFilter } from './ColumnFilterCheckBoxList';\r\nimport * as FC from './ColumnFilterCheckBoxList';\r\nimport * as FilterUtils from '../utils/FilterUtils';\r\nimport { ColumnFilterArray, IColumnFilterArray } from './ColumnFilterArray';\r\nimport { ColumnFilterCombo, initStartYear, initEndYear, initCityPopSize } from './ColumnFilterCombo';\r\nimport { IFilterChecker } from './FilterChecker';\r\nimport GroupBy, { initGroupMap } from './GroupBy';\r\nimport GroupBy2 from './GroupBy2';\r\nimport GroupMap, { initGroup2Map } from './GroupMap';\r\nimport RootStore from './RootStore';\r\nimport AccidentService from '../services/AccidentService';\r\nimport CityService from '../services/CityService';\r\nimport { insertToDexie, getFromDexie } from '../services/DexieInjuredService';\r\nimport logger from '../services/logger';\r\nimport { BBoxType } from './MapStore';\r\nimport Casualty from './Casualty';\r\nimport { FilterLocalStorage, LocalStorageService } from '../services/Localstorage.Service';\r\nimport citisNamesHeb from '../assets/cities_names_heb.json';\r\n// import autorun from \"mobx\"\r\n\r\n\r\nexport default class FilterStore {\r\n appInitialized = false\r\n\r\n useGetFetch = true;\r\n\r\n localStorageService: LocalStorageService\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n this.injurySeverity = FC.initInjurySeverity();\r\n this.setCasualtiesNames(this.injurySeverity);\r\n // when\r\n this.startYear = initStartYear();\r\n this.endYear = initEndYear();\r\n this.dayNight = FC.initDayNight();\r\n // where\r\n this.locationAccuracy = FC.initLocationAccuracy();\r\n this.roadTypes = FC.initRoadTypes();\r\n this.roads = new ColumnFilterArray('Road', 'rd', false);\r\n this.roadSegment = new ColumnFilterArray('RoadSegment', 'rds', true);\r\n this.cities = new ColumnFilterArray('City', 'city', true);\r\n this.streets = new ColumnFilterArray('Street', 'st', true);\r\n this.cityPopSizeRange = initCityPopSize();\r\n // who\r\n this.genderTypes = FC.initGenderTypes();\r\n this.ageTypes = FC.initAgeTypes();\r\n this.populationTypes = FC.initPopulationTypes();\r\n // What\r\n this.accidentType = FC.initAccidentType();\r\n // what vehicle\r\n this.injTypes = FC.initInjTypes();\r\n this.vehicleType = FC.initVehicleTypesFull();\r\n this.involvedVehicle = FC.initInvolvedVehicle();\r\n // What Road\r\n this.speedLimit = FC.initSpeedLimit();\r\n this.roadWidth = FC.initRoadWidth();\r\n this.separator = FC.initSeparator();\r\n this.oneLane = FC.initOneLane();\r\n //init Group-by dictionary\r\n const map: Map = initGroupMap(this.useGetFetch);\r\n this.groupByDict = new GroupMap(map, 'gb', 'injt');\r\n const mapGroupBy2 = initGroup2Map(this.useGetFetch);\r\n this.group2Dict = new GroupMap(mapGroupBy2, 'gb2', 'sex');\r\n\r\n // init data (on home page)\r\n this.dataByYears = FC.initDataYreasUnfilterd();\r\n this.dataFilterdByYears = FC.initDataYreasfilterd();\r\n this.dataFilterd = FC.initDataGrpBy1();\r\n this.dataGroupby2 = FC.initDataGrpBy2();\r\n this.appInitialized = false;\r\n this.localStorageService = new LocalStorageService();\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // Config Filter\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n filtersArrayLocalStorage: FilterLocalStorage[] = []\r\n\r\n @action\r\n setCurrentFiltersArrayLocalStorage = () => {\r\n this.filtersArrayLocalStorage = this.localStorageService.getLoaclStorage('my-filters')\r\n }\r\n @action\r\n updateFilterArrayLocalStorage = (data: FilterLocalStorage) => {\r\n this.filtersArrayLocalStorage = this.localStorageService.getLoaclStorage('my-filters')\r\n this.filtersArrayLocalStorage.push(data)\r\n this.localStorageService.setLocalStorage('my-filters', this.filtersArrayLocalStorage)\r\n }\r\n\r\n @observable\r\n showAllVehicleTypes: boolean = false;\r\n\r\n @action\r\n updateShowAllVehicleTypes = (val: boolean) => {\r\n this.showAllVehicleTypes = val;\r\n if (this.showAllVehicleTypes) this.vehicleType = FC.initVehicleTypesFull();\r\n else this.vehicleType = FC.initVehicleTypes();\r\n }\r\n\r\n @observable isUpdateFromUrl: boolean = true;\r\n\r\n @action setIsUpdateFromUrl = (value: boolean) => {\r\n this.isUpdateFromUrl = value;\r\n }\r\n\r\n @observable formCardKey: number = 0;\r\n @action setFormCardKey = (value: number) => {\r\n this.formCardKey = value;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // Severity\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n injurySeverity: IColumnFilter\r\n\r\n @action\r\n updateInjurySeverity = (aType: number, val: boolean) => {\r\n this.updateFilters(this.injurySeverity, aType, val);\r\n }\r\n\r\n @computed get isValidSeverity() {\r\n const res = !this.injurySeverity.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n @observable\r\n casualtiesNames: string = 'casualties';\r\n\r\n @action\r\n setCasualtiesNames = (injurySeverity: IColumnFilter) => {\r\n let res = 'casualties';\r\n const deadChecker: IFilterChecker = injurySeverity.arrTypes[0];\r\n const sevIngChecker: IFilterChecker = injurySeverity.arrTypes[1];\r\n if (deadChecker.checked && !sevIngChecker.checked) res = 'killed';\r\n else if (!deadChecker.checked && sevIngChecker.checked) res = 'severely-injured';\r\n this.casualtiesNames = res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // where\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n isMultipleCities: boolean = false;\r\n\r\n @action\r\n setIsMultipleCities = (isMulti: boolean) => {\r\n this.isMultipleCities = isMulti;\r\n }\r\n\r\n\r\n @observable\r\n cities: ColumnFilterArray;\r\n\r\n @action\r\n updateCities = (names: string[], updateCityResult: boolean) => {\r\n this.cities.setFilter(names);\r\n if (this.cities.arrValues.length === 0) {\r\n this.streets.arrValues = [];\r\n } else if (updateCityResult) {\r\n [this.cityResult] = this.cities.arrValues;\r\n }\r\n }\r\n\r\n // get city name by url query parmas\r\n getCityNameFromQuery(query: URLSearchParams, defVal: string | undefined) {\r\n let res = (defVal) ? [defVal] : [];\r\n const name = query.get('city');\r\n let found = false;\r\n if (name !== null) {\r\n const arr = name.split(',');\r\n if (arr.length > 1 && this.isMultipleCities) {\r\n res = arr;\r\n } else {\r\n found = citisNamesHeb.includes(name);\r\n if (found) {\r\n res = [citisNamesHeb.find((element) => element === name!)!];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n @observable\r\n cityResult: string = '';\r\n\r\n @observable\r\n streets: ColumnFilterArray;\r\n\r\n @action\r\n updateStreets = (names: string) => {\r\n this.streets.setFilter(names.split(','));\r\n }\r\n\r\n @observable\r\n roads: ColumnFilterArray;\r\n\r\n @action\r\n setRoads = (names: string[]) => {\r\n this.roads.setFilter(names);\r\n }\r\n\r\n @observable\r\n cityPopSizeRange: ColumnFilterCombo;\r\n\r\n @action\r\n setCityPopSizeRange = (range: string) => {\r\n this.cityPopSizeRange.setFilter(range);\r\n }\r\n\r\n\r\n @observable\r\n roadSegment: ColumnFilterArray;\r\n\r\n @action\r\n updateRoadSegment = (names: string) => {\r\n this.roadSegment.setFilter(names.split(','));\r\n }\r\n\r\n @observable\r\n roadTypes: IColumnFilter;\r\n\r\n @action\r\n updateRoadType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.roadTypes, aType, val);\r\n }\r\n\r\n @observable\r\n locationAccuracy: IColumnFilter;\r\n\r\n @action\r\n updateLocationAccuracy = (aType: number, val: boolean) => {\r\n this.updateFilters(this.locationAccuracy, aType, val);\r\n }\r\n\r\n @computed get isValidWhere() {\r\n const res = !this.roadTypes.isAllValsFalse && !this.locationAccuracy.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // when\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n startYear: ColumnFilterCombo;\r\n\r\n @action\r\n setStartYear = (year: string) => {\r\n this.startYear.setFilter(parseInt(year));\r\n }\r\n\r\n @observable\r\n endYear: ColumnFilterCombo;\r\n\r\n @action\r\n setEndYear = (year: string) => {\r\n this.endYear.setFilter(parseInt(year));\r\n }\r\n\r\n @observable\r\n dayNight: IColumnFilter;\r\n\r\n @action\r\n updateDayNight = (aType: number, val: boolean) => {\r\n this.updateFilters(this.dayNight, aType, val);\r\n }\r\n\r\n @computed get isValidWhen() {\r\n const res = !this.dayNight.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // who\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n genderTypes: IColumnFilter\r\n\r\n @action\r\n updateGenderType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.genderTypes, aType, val);\r\n }\r\n\r\n @observable\r\n ageTypes: IColumnFilter;\r\n\r\n @action\r\n updateAgeType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.ageTypes, aType, val);\r\n }\r\n\r\n @observable\r\n populationTypes: IColumnFilter;\r\n\r\n @action\r\n updatePopulationType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.populationTypes, aType, val);\r\n }\r\n\r\n @computed get isValidWho() {\r\n const res = !this.genderTypes.isAllValsFalse\r\n && !this.ageTypes.isAllValsFalse && !this.populationTypes.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n @observable\r\n accidentType: IColumnFilter;\r\n\r\n @action\r\n updateAccidentType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.accidentType, aType, val);\r\n }\r\n\r\n @computed get isValidWhat() {\r\n const res = !this.accidentType.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What Vehicle \r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * injuerd type - for example pedestrian bycicle, car driver etc,\r\n */\r\n @observable\r\n injTypes: IColumnFilter;\r\n\r\n @action\r\n updateInjuerdType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.injTypes, aType, val);\r\n }\r\n\r\n // vehicle Type of the killed / injured \r\n @observable\r\n vehicleType: IColumnFilter;\r\n\r\n @action\r\n updateVehicleType = (aType: number, val: boolean) => {\r\n this.updateFilters(this.vehicleType, aType, val);\r\n }\r\n\r\n // vehicle that were in the accident\r\n @observable\r\n involvedVehicle: IColumnFilter;\r\n\r\n @action\r\n setInvolvedVehicle = (aType: number, val: boolean) => {\r\n this.updateFilters(this.involvedVehicle, aType, val);\r\n }\r\n\r\n @computed get isValidWhatVehicle() {\r\n const res = !this.injTypes.isAllValsFalse && !this.vehicleType.isAllValsFalse && !this.involvedVehicle.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // What Road\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n @observable\r\n speedLimit: IColumnFilter;\r\n\r\n updateSpeedLimit = (aType: number, val: boolean) => {\r\n this.updateFilters(this.speedLimit, aType, val);\r\n }\r\n\r\n @observable\r\n roadWidth: IColumnFilter;\r\n\r\n @action\r\n updateRoadWidth = (aType: number, val: boolean) => {\r\n this.updateFilters(this.roadWidth, aType, val);\r\n }\r\n\r\n @observable\r\n separator: IColumnFilter;\r\n\r\n @action\r\n updateSeparator = (aType: number, val: boolean) => {\r\n this.updateFilters(this.separator, aType, val);\r\n }\r\n\r\n @observable\r\n oneLane: IColumnFilter;\r\n\r\n @action\r\n updateOneLane = (aType: number, val: boolean) => {\r\n this.updateFilters(this.oneLane, aType, val);\r\n }\r\n\r\n @computed get isValidWhatRoad() {\r\n const res = !this.speedLimit.isAllValsFalse && !this.roadWidth.isAllValsFalse\r\n && !this.separator.isAllValsFalse && !this.oneLane.isAllValsFalse;\r\n return res;\r\n }\r\n\r\n // ////////////////////////////////////////////////////////////////////////////////////////////\r\n // data\r\n // ////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n injuriesCount: number = 0;\r\n\r\n @action\r\n setInjuriesCount = (val: number) => {\r\n this.injuriesCount = val;\r\n this.isLoadingInjuriesCount = false;\r\n }\r\n\r\n @observable\r\n isLoadingInjuriesCount: boolean = false;\r\n\r\n @observable\r\n dataAllInjuries: Casualty[] = [];\r\n\r\n @action\r\n updateAllInjuries = (data: Casualty[]) => {\r\n // looger.log(\"updateAllInjuries \",data.length)\r\n this.setMarkersLoadStep(2);\r\n this.dataAllInjuries = data;\r\n this.rootStore.mapStore.setBounds(data, this.cities.arrValues);\r\n if (this.rootStore.mapStore.bboxType === BBoxType.LOCAL_BBOX) {\r\n this.rootStore.mapStore.getMarkersInLocalBBox(0.1);\r\n }\r\n }\r\n\r\n @observable\r\n dataMarkersLean: Casualty[] = []\r\n\r\n @action\r\n updateDataMarkersLean = (data: Casualty[]) => {\r\n // logger.log(\"updateDataMarkersLean \",data.length)\r\n this.setMarkersLoadStep(1);\r\n this.dataMarkersLean = data;\r\n }\r\n\r\n // casualties groupd by yeras, filterd only by injurySeverity\r\n @observable\r\n dataByYears: any[] = []\r\n\r\n // casualties groupd by yeras, filterd on main filter\r\n @observable\r\n dataFilterdByYears: any[] = []\r\n\r\n @action\r\n setDataFilterdByYears = (data: any[]) => {\r\n this.dataFilterdByYears = data;\r\n }\r\n\r\n // casualties groupd by some group, filterd on main filter\r\n @observable\r\n dataFilterd: any[] = []\r\n\r\n // casualties groupd by 2 groups, filterd on main filter\r\n @observable\r\n dataGroupby2: any[] = []\r\n\r\n @observable\r\n isLoading: boolean = false;\r\n\r\n @computed get isValidAllFilters() {\r\n const res = this.isValidSeverity && this.isValidWhen && this.isValidWho\r\n && this.isValidWhere && this.isValidWhat && this.isValidWhatVehicle && this.isValidWhatRoad;\r\n return res;\r\n }\r\n\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // group by\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // @observable\r\n // groupBy: GroupBy;\r\n\r\n @action\r\n updateGroupby = (key: string) => {\r\n this.groupByDict.setFilter(key);\r\n this.groupByDict.setBrowserQueryString();\r\n if (!this.useGetFetch && this.groupByDict.groupBy.text === 'CityByPop') this.submitfilterdGroupByPop();\r\n else this.submitfilterdGroup(this.groupByDict.groupBy as GroupBy);\r\n if (this.groupByDict.groupBy.text !== 'CityByPop') {\r\n const gb2 = (this.group2Dict.groupBy as GroupBy2).name\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, gb2);\r\n }\r\n }\r\n\r\n /**\r\n * Dictionary with key-value list of the group-by \r\n */\r\n @observable\r\n groupByDict: GroupMap;\r\n\r\n @action\r\n submitGroupByYears = () => {\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getfilterBySeverityAndCity();\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'year');\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.dataByYears = dataPadded;\r\n }\r\n });\r\n }\r\n else {\r\n const filtermatch = this.getfilterBySeverityAndCity();\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'accident_year');\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.dataByYears = dataPadded;\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n /**\r\n * convert parital array of years and count to full array\r\n * if year is missing, add year and count = 0\r\n * @param data array of years and counts, some of the years might be missing\r\n */\r\n padDataYearsWith0 = (data: any) => {\r\n const yearsList = [];\r\n for (let i = Number(this.startYear.queryValue); i <= Number(this.endYear.queryValue); i += 1) {\r\n yearsList.push(i);\r\n }\r\n const data2 = yearsList.map((year) => {\r\n const objDAta = data.find((x: any) => x._id === year);\r\n const val = (objDAta) ? objDAta.count : 0;\r\n return { _id: year, count: val };\r\n });\r\n return data2;\r\n }\r\n\r\n getCountFromGroupByRes = (data: any[]) => {\r\n const res = data.reduce((b: number, x: any) => b + x.count, 0);\r\n return res;\r\n }\r\n\r\n @action\r\n submitfilterdGroupByYears = () => {\r\n this.isLoadingInjuriesCount = true;\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'year', range.min, range.max);\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.setDataFilterdByYears(dataPadded);\r\n const count = this.getCountFromGroupByRes(data);\r\n this.setInjuriesCount(count);\r\n }\r\n });\r\n } else {\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, 'accident_year', range.min, range.max);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n const dataPadded = this.padDataYearsWith0(data);\r\n this.setDataFilterdByYears(dataPadded);\r\n const count = this.getCountFromGroupByRes(data);\r\n this.setInjuriesCount(count);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n @action\r\n submitfilterdGroup = (aGroupBy: GroupBy) => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n if (this.useGetFetch) {\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, '', aGroupBy.limit, aGroupBy.sort);\r\n // logger.log(filter);\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any | undefined) => {\r\n if(aGroupBy.reGroupResultFunc) {\r\n data = aGroupBy.reGroupResultFunc(data);\r\n }\r\n if (data !== undefined) this.dataFilterd = data;\r\n });\r\n } else {\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, '', aGroupBy.limit);\r\n // logger.log(filter);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) this.dataFilterd = data;\r\n });\r\n }\r\n\r\n }\r\n\r\n \r\n /**\r\n * deprecated function\r\n */\r\n @action\r\n submitfilterdGroupByPop = () => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupByPop(filtermatch, range.min, range.max, -1, 15);\r\n // logger.log(filter);\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined) {\r\n this.dataFilterd = data;\r\n }\r\n });\r\n }\r\n\r\n @action\r\n submitfilterdGroup2 = (aGroupBy: GroupBy, groupName2: string) => {\r\n if (this.useGetFetch) {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterQueryString(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, groupName2, aGroupBy.limit);\r\n // logger.log(filter)\r\n AccidentService.fetchGetGroupBy(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined && data.length > 0) {\r\n try {\r\n const fixData = (this.group2Dict.groupBy as GroupBy2).fixStrcutTable(data);\r\n this.dataGroupby2 = fixData;\r\n } catch (error) {\r\n logger.log(error);\r\n this.dataGroupby2 = [];\r\n }\r\n } else {\r\n this.dataGroupby2 = [];\r\n }\r\n });\r\n } else {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filtermatch = this.getFilterForPost(null);\r\n const filter = FilterUtils.getFilterGroupBy(filtermatch, aGroupBy.value, range.min, range.max, groupName2, aGroupBy.limit);\r\n // logger.log(filter)\r\n AccidentService.fetchAggregate(filter)\r\n .then((data: any[] | undefined) => {\r\n if (data !== undefined && data.length > 0) {\r\n try {\r\n const fixData = (this.group2Dict.groupBy as GroupBy2).fixStrcutTable(data);\r\n this.dataGroupby2 = fixData;\r\n } catch (error) {\r\n logger.log(error);\r\n this.dataGroupby2 = [];\r\n }\r\n } else {\r\n this.dataGroupby2 = [];\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n // @observable\r\n // groupBy2: GroupBy2;\r\n\r\n @action\r\n updateGroupBy2 = (key: string) => {\r\n this.group2Dict.setFilter(key);\r\n this.group2Dict.setBrowserQueryString();\r\n const gb2name = (this.group2Dict.groupBy as GroupBy2).name\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, gb2name);\r\n }\r\n\r\n @observable\r\n group2Dict: GroupMap;\r\n\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n // filters actions\r\n // //////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n isUse2StepsMarkers: boolean = false;\r\n\r\n @observable\r\n markersLoadStep: number = 1;\r\n\r\n @action\r\n setMarkersLoadStep = (step: number) => {\r\n if (this.isUse2StepsMarkers) this.markersLoadStep = step;\r\n }\r\n\r\n @action\r\n submitFilter = () => {\r\n // this.setMarkersLoadStep(0);\r\n if (this.useLocalDb === 2) {\r\n this.submitMainDataFilterLocalDb();\r\n } else {\r\n if (this.rootStore.mapStore.bboxType === BBoxType.SERVER_BBOX) {\r\n this.rootStore.mapStore.submintGetMarkersBBox();\r\n }\r\n if (this.isUse2StepsMarkers) this.submintGetMarkerFirstStep();\r\n this.submintMainDataFilter();\r\n }\r\n this.submitCityNameAndLocation();\r\n this.submitGroupByYears();\r\n this.submitfilterdGroupByYears();\r\n // console.log((this.groupByDict.groupBy as GroupBy).text);\r\n if (!this.useGetFetch && this.groupByDict.groupBy.text === 'CityByPop') this.submitfilterdGroupByPop();\r\n else this.submitfilterdGroup(this.groupByDict.groupBy as GroupBy);\r\n this.submitfilterdGroup2(this.groupByDict.groupBy as GroupBy, (this.group2Dict.groupBy as GroupBy2).name);\r\n this.setCasualtiesNames(this.injurySeverity);\r\n const lang = this.rootStore.uiStore.language;\r\n if (this.rootStore.uiStore.currentPage === 'city') this.rootStore.imageStore.getImagesByPlace(this.cityResult, lang);\r\n }\r\n\r\n submintMainDataFilter = () => {\r\n this.isLoading = true;\r\n if (this.useGetFetch) {\r\n const filter = this.getFilterQueryString(null);\r\n this.setFiltersText(true);\r\n this.setBrowserQueryString();\r\n // logger.log(filter);\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n AccidentService.fetchGetList(filter, 'main')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n // write Data to local db\r\n if (this.useLocalDb === 1) insertToDexie(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n } else {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filter = this.getFilterForPost(null);\r\n // logger.log(filter);\r\n // const filter = FiterUtils.getFilterByCityPop(filterMatch, range.min, range.max);\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n AccidentService.fetchAggregatFilter(filter, 'main')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n // write Data to local db\r\n if (this.useLocalDb === 1) insertToDexie(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n submintGetMarkerFirstStep = () => {\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n const filter = this.getFilterForPost(null);\r\n // const filter = FiterUtils.getFilterByCityPop(filterMatch, range.min, range.max);\r\n AccidentService.fetchAggregatFilter(filter, 'latlon')\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateDataMarkersLean(data);\r\n }\r\n });\r\n }\r\n\r\n submitCityNameAndLocation = () => {\r\n if (this.cities.arrValues.length >= 1) {\r\n const city = this.cities.arrValues[0];\r\n const srvCity = new CityService();\r\n //this.rootStore.mapStore.delQueryStrMapCenter();\r\n var noop = function () { }; // do nothing.\r\n const CenterByCityCallBack = (this.rootStore.mapStore.isCenterMapByCity()) ?\r\n this.rootStore.mapStore.updateMapCenterByCity :\r\n noop;\r\n srvCity.getCityByNameHe(city, CenterByCityCallBack);\r\n const index = 0;\r\n this.cityResult = this.cities.arrValues[index];\r\n } else this.cityResult = '';\r\n }\r\n /**\r\n * get filter query string for the server request. \r\n * @param bounds gis bound (rect) to filter\r\n * @param useBounds if true will use gis bound to filter reqest\r\n * @returns query string , for example ?sy=2017&sev=1&city=\"תל אביב -יפו\",\"חיפה\"\r\n */\r\n getFilterQueryString = (bounds: any, useBounds: boolean = false) => {\r\n //the oreder of the fileds is importnet for indexing in server\r\n let filter = '?';\r\n filter += this.startYear.getFilter();\r\n filter += this.endYear.getFilter();\r\n filter += this.injurySeverity.getFilter();\r\n filter += this.cities.getFilter();\r\n if (useBounds && bounds != null) filter += FilterUtils.getfilterBounds(bounds);\r\n filter += this.dayNight.getFilter();\r\n filter += this.streets.getFilter();\r\n filter += this.roads.getFilter();\r\n filter += this.roadSegment.getFilter();\r\n filter += this.injTypes.getFilter();\r\n filter += this.genderTypes.getFilter();\r\n filter += this.ageTypes.getFilter();\r\n filter += this.populationTypes.getFilter();\r\n filter += this.accidentType.getFilter();\r\n filter += this.vehicleType.getFilter();\r\n filter += this.involvedVehicle.getFilter();\r\n filter += this.locationAccuracy.getFilter();\r\n filter += this.roadTypes.getFilter();\r\n filter += this.speedLimit.getFilter();\r\n filter += this.roadWidth.getFilter();\r\n filter += this.separator.getFilter();\r\n filter += this.oneLane.getFilter();\r\n const range = JSON.parse(this.cityPopSizeRange.queryValue.toString());\r\n filter += FilterUtils.getFilterByCityPop(range.min, range.max)\r\n return filter;\r\n }\r\n\r\n\r\n /**\r\n * set filters text - used in info-panel to show current filter\r\n * @param ignoreIfAll - if true and if all option is cheked return blank\r\n */\r\n setFiltersText = (ignoreIfAll: boolean) => {\r\n this.startYear.setText();\r\n this.endYear.setText();\r\n this.injTypes.setText(ignoreIfAll);\r\n this.dayNight.setText(ignoreIfAll);\r\n this.genderTypes.setText(ignoreIfAll);\r\n this.ageTypes.setText(ignoreIfAll);\r\n this.populationTypes.setText(ignoreIfAll);\r\n this.locationAccuracy.setText(ignoreIfAll);\r\n this.roadTypes.setText(ignoreIfAll);\r\n this.cities.setText();\r\n this.roads.setText();\r\n this.cityPopSizeRange.setText();\r\n this.accidentType.setText(ignoreIfAll);\r\n this.vehicleType.setText(ignoreIfAll);\r\n this.involvedVehicle.setText(ignoreIfAll);\r\n }\r\n\r\n /**\r\n * set the QueryString of the browser by current filter\r\n */\r\n @action\r\n setBrowserQueryString = () => {\r\n const params = new URLSearchParams(location.search);\r\n params.set('tab', this.rootStore.uiStore.currentTab);\r\n this.startYear.setBrowserQueryString(params, false);\r\n this.endYear.setBrowserQueryString(params, false);\r\n this.injurySeverity.setBrowserQueryString(params, false);\r\n this.roadTypes.setBrowserQueryString(params);\r\n this.injTypes.setBrowserQueryString(params);\r\n this.genderTypes.setBrowserQueryString(params);\r\n this.ageTypes.setBrowserQueryString(params);\r\n this.populationTypes.setBrowserQueryString(params);\r\n this.cities.setBrowserQueryString(params);\r\n this.roads.setBrowserQueryString(params);\r\n this.locationAccuracy.setBrowserQueryString(params);\r\n this.accidentType.setBrowserQueryString(params);\r\n this.vehicleType.setBrowserQueryString(params);\r\n this.involvedVehicle.setBrowserQueryString(params);\r\n this.speedLimit.setBrowserQueryString(params);\r\n this.roadWidth.setBrowserQueryString(params);\r\n this.separator.setBrowserQueryString(params);\r\n this.oneLane.setBrowserQueryString(params);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n\r\n this.groupByDict.setBrowserQueryString();\r\n }\r\n\r\n /**\r\n * udpate the store (and gui) using given qurey from the browser (on load time)\r\n * @param defTab default tab to dispaly\r\n * @param defCity default city to choose. (can be null)\r\n */\r\n @action\r\n setStoreByQuery = (params: URLSearchParams, defCity?: string) => {\r\n this.startYear.setValuesByQuery(params);\r\n this.endYear.setValuesByQuery(params);\r\n this.injurySeverity.setValuesByQuery(params);\r\n this.dayNight.setValuesByQuery(params);\r\n const citis = this.getCityNameFromQuery(params, defCity);\r\n if (citis) this.updateCities(citis, true);\r\n this.locationAccuracy.setValuesByQuery(params);\r\n this.roadTypes.setValuesByQuery(params);\r\n this.injTypes.setValuesByQuery(params);\r\n this.genderTypes.setValuesByQuery(params);\r\n this.ageTypes.setValuesByQuery(params);\r\n this.populationTypes.setValuesByQuery(params);\r\n this.accidentType.setValuesByQuery(params);\r\n this.vehicleType.setValuesByQuery(params);\r\n this.involvedVehicle.setValuesByQuery(params);\r\n this.speedLimit.setValuesByQuery(params);\r\n this.roadWidth.setValuesByQuery(params);\r\n this.separator.setValuesByQuery(params);\r\n this.oneLane.setValuesByQuery(params);\r\n //update groupby\r\n this.groupByDict.setValuesByQuery(params);\r\n this.group2Dict.setValuesByQuery(params);\r\n\r\n }\r\n\r\n\r\n\r\n // old code - backup for post req\r\n getFilterForPost = (bounds: any, useBounds: boolean = false) => {\r\n let filter = '{\"$and\" : [';\r\n filter += `{\"accident_year\": { \"$gte\" : ${this.startYear},\"$lte\": ${this.endYear}}}`;\r\n // filter += FiterUtils.getMultiplefilter(this.injurySeverity);\r\n // filter += FiterUtils.getfilterCity(this.cities);\r\n if (useBounds && bounds != null) filter += FilterUtils.getfilterBounds(bounds);\r\n //filter += FiterUtils.getMultiplefilter(this.dayNight);\r\n // filter += FiterUtils.getFilterStreets(this.streets);\r\n // filter += this.getFilterFromNumArray(this.roads, 'road1');\r\n // filter += this.getFilterFromArray(this.roadSegment, 'road_segment_name');\r\n // filter += FiterUtils.getMultiplefilter(this.injTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.genderTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.ageTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.populationTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.accidentType);\r\n // filter += FiterUtils.getMultiplefilter(this.vehicleType);\r\n // filter += FiterUtils.getMultiplefilter(this.roadTypes);\r\n // filter += FiterUtils.getMultiplefilter(this.speedLimit);\r\n // filter += FiterUtils.getMultiplefilter(this.roadWidth);\r\n // filter += FiterUtils.getMultiplefilter(this.separator);\r\n // filter += FiterUtils.getMultiplefilter(this.oneLane);\r\n filter += ']}';\r\n return filter;\r\n }\r\n\r\n @action\r\n updateFilters = (colFilter: IColumnFilter, aType: number, val: boolean) => {\r\n colFilter.setFilter(aType, val);\r\n if (colFilter.allTypesOption === -1) colFilter.arrTypes[aType].checked = val;\r\n else if (aType === colFilter.allTypesOption) {\r\n colFilter.arrTypes\r\n .forEach((x, index) => x.checked = (index === colFilter.allTypesOption) ? val : !val);\r\n } else {\r\n colFilter.arrTypes[colFilter.allTypesOption].checked = false;\r\n colFilter.arrTypes[aType].checked = val;\r\n }\r\n }\r\n\r\n getfilterBySeverityAndCity = () => {\r\n let filter = '?';\r\n filter += this.startYear.getFilter();\r\n filter += this.injurySeverity.getFilter();\r\n filter += this.cities.getFilter();\r\n // filter += FiterUtils.getFilterFromArray('city', this.cities.arrValues);\r\n return filter;\r\n }\r\n\r\n getFilterFromArray = (arr: string[], filterName: string) => {\r\n let filter: string = '';\r\n if (arr.length > 0 && arr[0] !== '') {\r\n filter += ',{\"$or\": [';\r\n filter += arr.map((x: string) => `{\"${filterName}\" : \"${x.trim()}\"}`).join(',');\r\n filter += ']}';\r\n }\r\n return filter;\r\n }\r\n getFilterFromNumArray = (arr: string[], filterName: string) => {\r\n let filter: string = '';\r\n if (arr.length > 0) {\r\n filter += ',{\"$or\": [';\r\n filter += arr.map((x: string) => `{\"${filterName}\" : ${parseInt(x, 10)}}`).join(',');\r\n filter += ']}';\r\n }\r\n return filter;\r\n }\r\n\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n // local db filters - idb using Dexie.js\r\n // ///////////////////////////////////////////////////////////////////////////////////////////////\r\n @observable\r\n useLocalDb = 0;\r\n\r\n submitMainDataFilterLocalDb = () => {\r\n this.isLoading = true;\r\n const arrFilters = this.getFilterIDB();\r\n this.rootStore.mapStore.updateIsSetBounds(this.cities.arrValues, this.roadSegment.arrValues);\r\n // logger.log(arrFilters);\r\n getFromDexie(arrFilters)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.updateAllInjuries(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n submintGetMarkersBBoxIdb = (mapBounds: L.LatLngBounds) => {\r\n const arrFilters = this.getFilterBboxIDB(mapBounds);\r\n getFromDexie(arrFilters)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.rootStore.mapStore.updateDataMarkersInBounds(data);\r\n }\r\n });\r\n }\r\n\r\n getFilterIDB = () => {\r\n const arrFilters: any[] = [];\r\n const years = { filterName: 'accident_year', startYear: this.startYear.queryValue.toString(), endYear: this.endYear.queryValue.toString() };\r\n arrFilters.push(years);\r\n this.getfilterCityIDB(arrFilters);\r\n this.getFilterStreetsIDB(arrFilters);\r\n this.getMultiplefilterIDB(arrFilters, this.dayNight);\r\n this.getFilterFromArrayIDb(arrFilters, 'road_segment_name', this.roadSegment.arrValues);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.injTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.genderTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.ageTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.populationTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.accidentType);\r\n this.getMultiplefilterIDB(arrFilters, this.vehicleType);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.speedLimit);\r\n this.getMultiplefilterIDB(arrFilters, this.roadWidth);\r\n this.getMultiplefilterIDB(arrFilters, this.separator);\r\n this.getMultiplefilterIDB(arrFilters, this.oneLane);\r\n return arrFilters;\r\n }\r\n\r\n getFilterBboxIDB = (bounds: L.LatLngBounds) => {\r\n const arrFilters: any[] = [];\r\n const bbox = { filterName: 'bbox', p1: bounds.getSouthWest, p2: bounds.getNorthEast };\r\n arrFilters.push(bbox);\r\n const years = { filterName: 'accident_year', startYear: this.startYear.queryValue.toString(), endYear: this.endYear.queryValue.toString() };\r\n arrFilters.push(years);\r\n this.getfilterCityIDB(arrFilters);\r\n this.getFilterStreetsIDB(arrFilters);\r\n this.getMultiplefilterIDB(arrFilters, this.dayNight);\r\n this.getFilterFromArrayIDb(arrFilters, 'road_segment_name', this.roadSegment.arrValues);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.injTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.genderTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.ageTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.populationTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.accidentType);\r\n this.getMultiplefilterIDB(arrFilters, this.vehicleType);\r\n this.getMultiplefilterIDB(arrFilters, this.roadTypes);\r\n this.getMultiplefilterIDB(arrFilters, this.speedLimit);\r\n this.getMultiplefilterIDB(arrFilters, this.roadWidth);\r\n this.getMultiplefilterIDB(arrFilters, this.separator);\r\n this.getMultiplefilterIDB(arrFilters, this.oneLane);\r\n return arrFilters;\r\n }\r\n\r\n getMultiplefilterIDB = (arrFilters: any[], colFilter: IColumnFilter) => {\r\n if (colFilter.allTypesOption > -1 && colFilter.arrTypes[colFilter.allTypesOption].checked) {\r\n return;\r\n }\r\n let allChecked: boolean = true;\r\n let arrfilter: number[] = [];\r\n const iterator = colFilter.arrTypes.values();\r\n for (const filterCheck of iterator) {\r\n if (filterCheck.checked) {\r\n arrfilter = [...arrfilter, ...filterCheck.filters];\r\n } else {\r\n allChecked = false;\r\n }\r\n }\r\n if (!allChecked) {\r\n const filterVals = arrfilter.map((x: number) => {\r\n if (x === -1) return null;\r\n return x;\r\n });\r\n const filter = { filterName: colFilter.queryColName, values: filterVals };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n\r\n getfilterCityIDB = (arrFilters: any[]) => {\r\n if (this.cities.arrValues.length > 0) {\r\n const filter = { filterName: 'accident_yishuv_name', values: this.cities.arrValues };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n\r\n getFilterStreetsIDB = (arrFilters: any[]) => {\r\n if (this.streets.arrValues.length > 0 && this.streets.arrValues[0] !== '') {\r\n const filter1 = { filterName: 'street1_hebrew', values: this.streets.arrValues.map((x: string) => x.trim()) };\r\n arrFilters.push(filter1);\r\n // const filter2 = { filterName: \"street2_hebrew\", values: this.streets.map((x: string) => {x.trim()}) }\r\n // arrFilters.push(filter2)\r\n }\r\n }\r\n\r\n getFilterFromArrayIDb = (arrFilters: any[], filterName: string, arr: string[]) => {\r\n if (arr.length > 0 && arr[0] !== '') {\r\n const filter = { filterName, values: arr.map((x: string) => x.trim()) };\r\n arrFilters.push(filter);\r\n }\r\n }\r\n}\r\n\r\n// autorun(() =>{\r\n// logger.log(store.todos[0])\r\n// logger.log(store.filter)\r\n// })\r\n\r\n// export default store\r\n","import { observable, action, reaction } from 'mobx';\r\nimport i18n from '../i18n';\r\nimport RootStore from './RootStore';\r\nimport { setBrowserQueryString } from '../utils/queryStringUtils';\r\nimport logger from '../services/logger';\r\n// import autorun from \"mobx\"\r\n\r\nexport default class UiStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n this.initLang();\r\n this.appInitialized = false;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n // ////////////////////////////////////////////\r\n @observable\r\n language: string = 'he'\r\n\r\n @action\r\n updateLanguage = (lang: string) => {\r\n this.language = lang;\r\n localStorage.setItem('lang', JSON.stringify(lang));\r\n const dir = (lang === 'en') ? 'ltr' : 'rtl';\r\n this.setDirection(dir);\r\n }\r\n\r\n @observable\r\n direction: string = 'rtl';\r\n\r\n @action\r\n setDirection = (val: string) => {\r\n this.direction = val;\r\n }\r\n\r\n reactionChangeLang = reaction(\r\n () => this.language,\r\n (locale) => {\r\n i18n.changeLanguage(locale);\r\n },\r\n )\r\n\r\n initLang = () => {\r\n try {\r\n const slang = localStorage.getItem('lang');\r\n if (slang !== null) {\r\n const lang = JSON.parse(slang);\r\n this.updateLanguage(lang);\r\n }\r\n } catch (error) {\r\n logger.log(error);\r\n }\r\n }\r\n\r\n @observable\r\n showFilterModal: boolean = false;\r\n\r\n @action\r\n setShowFilterModal = (val: boolean) => {\r\n this.showFilterModal = val;\r\n }\r\n\r\n @observable\r\n initPage: boolean = false;\r\n @action\r\n setInitPage = (val: boolean) => {\r\n this.initPage = val;\r\n }\r\n\r\n /**\r\n * udpate the store (and gui) using given qurey from the browser (on load time)\r\n * @param defTab default tab to dispaly\r\n * @param defCity default city to choose. (can be null)\r\n */\r\n @action\r\n setStoreByQuery = (defTab: string, defCity?: string) => {\r\n const params = new URLSearchParams(window.location.search);\r\n //set tab\r\n const tab = this.getValFromQuery(params, 'tab', defTab);\r\n if (tab) this.setCurrentTab(tab);\r\n //set other stores\r\n this.rootStore.filterStore.setStoreByQuery(params, defCity);\r\n this.rootStore.mapStore.setStoreByQuery(params);\r\n }\r\n\r\n // get name by url query parmas\r\n getValFromQuery= (query: URLSearchParams, name: string, defVal?: string) => {\r\n const val = query.get(name);\r\n const res = (val !== null) ? val : defVal;\r\n return res;\r\n }\r\n\r\n /**\r\n * current page\r\n */\r\n @observable\r\n currentPage: string = 'home';\r\n\r\n @action\r\n setCurrentPage = (pageType: string) => {\r\n this.currentPage = pageType;\r\n }\r\n\r\n @observable\r\n currentTab: string = 'charts';\r\n\r\n @action\r\n setCurrentTab = (tabName: string) => {\r\n this.currentTab = tabName;\r\n this.setQueryStrTab();\r\n }\r\n\r\n @action\r\n setQueryStrTab = () => {\r\n setBrowserQueryString('tab', this.currentTab);\r\n }\r\n\r\n\r\n @observable\r\n searchParams: string = '';\r\n\r\n // @action\r\n // setSearchParams = () => {\r\n // let res = '';\r\n // if (this.currentPage === 'home') {\r\n // res += `?tab=${this.currentTab}`;\r\n // } else {\r\n // res += `?name=${this.rootStore.filterStore.cityResult}`;\r\n // res += `&tab=${this.currentTab}`;\r\n // }\r\n // // if (!this.rootStore.filterStore.injTypes.isAllValsFalse()) {\r\n // // }\r\n // this.searchParams = res;\r\n // }\r\n\r\n @observable\r\n chartType: string = 'BarChart';\r\n\r\n @observable\r\n chartTypeList: string[] = ['BarChart', 'PieChart', 'HorizontalBar'];\r\n\r\n @action\r\n updateChartType = (val: string) => {\r\n this.chartType = val;\r\n }\r\n\r\n @observable\r\n showPercentageChart: boolean = false\r\n\r\n @action\r\n updateShowPercentageChart = (val: boolean) => {\r\n this.showPercentageChart = val;\r\n }\r\n}\r\n","import IimageEntity from '../stores/ImageEntity';\r\n\r\nexport const fetchListImgByTag = async (tag: string, lang: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = (lang === '') ? `/api/v1/img/tags/${tag}` : `/api/v1/img/tags/${lang}/${tag}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\nexport const fetchListImgByPlace = async (place: string, lang: string):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = `/api/v1/img/place/${lang}/${place}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const uploadImg = async (image: IimageEntity):\r\n Promise | undefined> => {\r\n if (image.file === undefined) return [];\r\n const formData = new FormData();\r\n formData.append('titlehe', image.titlehe);\r\n formData.append('texthe', image.texthe);\r\n formData.append('image', image.file);\r\n formData.append('tags', image.tags);\r\n formData.append('place', image.place);\r\n if (image.index !== undefined) formData.append('index', image.index?.toString());\r\n const url = '/api/v1/img/';\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors',\r\n body: formData,\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const updateImgProps = async (image: IimageEntity):\r\n Promise | undefined> => {\r\n // Default options are marked with *\r\n const url = '/api/v1/img/props';\r\n const response = await fetch(url, {\r\n method: 'PUT',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n body: JSON.stringify(image),\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport const fetchImg = async (fileName: string):\r\n Promise => {\r\n // Default options are marked with *\r\n const url = `/api/v1/img/${fileName}`;\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *client\r\n });\r\n if (!response.ok) {\r\n return [];\r\n }\r\n return response; // parses JSON response into native JavaScript objects\r\n};\r\n\r\nexport default fetchImg;\r\n","import { observable, action } from 'mobx';\r\nimport RootStore from './RootStore';\r\nimport {\r\n fetchListImgByTag, fetchListImgByPlace, updateImgProps, uploadImg,\r\n} from '../services/ImageService';\r\nimport IimageEntity from './ImageEntity';\r\n\r\nexport default class ImageStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n @observable\r\n imageList: IimageEntity[] = [];\r\n\r\n @action\r\n setImageList = (data: IimageEntity[]) => {\r\n this.imageList = data;\r\n if (this.imageList.length > 0) this.setCurrImage(this.imageList[0]);\r\n }\r\n\r\n @observable\r\n isLoading: boolean = false;\r\n\r\n @observable\r\n currTag: string = 'כללי';\r\n\r\n @action\r\n setCurrTag = (tag: string) => {\r\n this.currTag = tag;\r\n const lang = this.rootStore.uiStore.language;\r\n this.getImagesByTag(tag, lang);\r\n }\r\n tagsArr = [\r\n { val: \"כללי\", text: 'general' },\r\n { val: \"הולכי רגל\", text: 'pedestrian' },\r\n { val: \"רוכבי אופניים\", text: 'cyclist' },\r\n { val: \"רוכבי אופנוע\", text: 'motorcycle' },\r\n { val: \"מכוניות\", text: 'car' },\r\n { val: \"אוטובוסים\", text: 'bus' },\r\n { val: \"ילדים\", text: 'kids' },\r\n ];\r\n\r\n @observable\r\n currImage: IimageEntity| null = null;\r\n\r\n @action\r\n setCurrImage = (image: IimageEntity) => {\r\n this.currImage = image;\r\n }\r\n\r\n @observable\r\n hideDescription = false;\r\n\r\n @action\r\n toggleHideDescription = () => {\r\n this.hideDescription = !this.hideDescription;\r\n if (this.hideDescription) {\r\n document.documentElement.style.setProperty('--image-gallery-description-visable', 'none');\r\n } else document.documentElement.style.setProperty('--image-gallery-description-visable', 'inherit');\r\n }\r\n\r\n setCurrImageVal= (valName: T, val: K) => {\r\n if (this.currImage !== null) this.currImage[valName] = val;\r\n }\r\n\r\n submitImageFile = () => {\r\n if (this.currImage !== null) {\r\n if (this.currImage._id === 0 && this.currImage.file !== undefined) {\r\n uploadImg(this.currImage);\r\n } else updateImgProps(this.currImage);\r\n }\r\n };\r\n\r\n getImages = (type :string) => {\r\n const lang = this.rootStore.uiStore.language;\r\n if (type === 'city') {\r\n const city = this.rootStore.filterStore.cityResult;\r\n this.getImagesByPlace(city, lang);\r\n } else {\r\n this.getImagesByTag(this.currTag, lang);\r\n }\r\n }\r\n\r\n getImagesByTag = (tag :string, lang: string) => {\r\n this.isLoading = true;\r\n fetchListImgByTag(tag, lang)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.setImageList(data);\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getImagesByPlace = (place :string, lang: string) => {\r\n // this.isLoading = true;\r\n fetchListImgByPlace(place, lang)\r\n .then((data: any[] | undefined) => {\r\n if (data !== null && data !== undefined) {\r\n this.setImageList(data);\r\n }\r\n // this.isLoading = false;\r\n });\r\n }\r\n}\r\n","// https://mobx-react.js.org/recipes-context\r\nimport React from 'react'\r\nimport RootStore from './RootStore';\r\n\r\nexport const store = new RootStore();\r\nexport const StoreContext = React.createContext(store);\r\nexport const useStore = (): RootStore => {\r\n const store = React.useContext(StoreContext);\r\n if (!store) {\r\n // this is especially useful in TypeScript so you don't need to be checking for null all the time\r\n throw new Error('You have forgot to use StoreProvider, shame on you.')\r\n }\r\n return store\r\n};\r\n\r\n/* // see: https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables\r\nif(process.env.NODE_ENV !== 'production') {\r\n // @ts-ignore\r\n window['store'] = store;\r\n} */","import FilterStore from './FilterStore';\r\nimport UiStore from './UiStore';\r\nimport MapStore from './MapStore';\r\nimport ImageStore from './ImageStore'\r\n\r\nexport default class RootStore {\r\n appInitialized = false;\r\n\r\n constructor() {\r\n this.uiStore = new UiStore(this);\r\n this.mapStore = new MapStore(this);\r\n this.filterStore = new FilterStore(this);\r\n this.imageStore = new ImageStore(this);\r\n }\r\n\r\n uiStore: UiStore;\r\n\r\n mapStore: MapStore;\r\n\r\n filterStore: FilterStore;\r\n\r\n imageStore: ImageStore;\r\n}\r\n","import React, { PropsWithChildren } from 'react'\r\n\r\ninterface SmallCard2Props extends PropsWithChildren {\r\n header?: string,\r\n style?: any,\r\n}\r\n\r\nconst SmallCard2: React.FC = ({ children, header, style }) => {\r\n const cardHeader = header ? <>
{header}

: null;\r\n return (\r\n \r\n {cardHeader}\r\n {children}\r\n \r\n )\r\n}\r\nexport default SmallCard2","\r\nimport React, { ChangeEvent, memo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Form from 'react-bootstrap/Form';\r\n\r\ninterface IProps {\r\n label: string,\r\n group: string,\r\n id: number,\r\n checked: boolean,\r\n onChange: (e: ChangeEvent) => any\r\n}\r\nconst Checkbox: React.FC = ({\r\n group, label, id, checked, onChange,\r\n}) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n );\r\n};\r\nexport default memo(Checkbox);\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from 'react-bootstrap/Button';\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { observer } from 'mobx-react';\r\n\r\ninterface IProps {\r\n title: string;\r\n showModal: boolean;\r\n setShow: (show: boolean) => void;\r\n children: any;\r\n size?: \"sm\" | \"lg\" | \"xl\" | undefined;\r\n action?: (val?: any) => void;\r\n}\r\n\r\n\r\nconst ConfigModal: React.FC = observer(({\r\n title, showModal, setShow, children, size, action\r\n}: IProps) => {\r\n\r\n const { t } = useTranslation();\r\n const handleClose = () => setShow(false);\r\n const { filterStore } = useStore();\r\n\r\n const submitChanges = action ?\r\n \r\n {filterStore.isLoading ? t('Loading') : t('Submit')}\r\n \r\n : null\r\n\r\n return (\r\n \r\n \r\n {t(title)}\r\n \r\n \r\n {children}\r\n \r\n \r\n {submitChanges}\r\n \r\n \r\n \r\n );\r\n});\r\nexport default React.memo(ConfigModal);\r\n","/**\r\n * singlton logger class\r\n */\r\nclass Logger {\r\n log(message) {\r\n console.log(message);\r\n }\r\n\r\n error(message) {\r\n console.error(message);\r\n }\r\n}\r\nconst logger = new Logger();\r\nObject.freeze(logger);\r\nexport default logger;\r\n","import React from 'react';\r\nimport logger from '../../services/logger';\r\n\r\ninterface IProps {\r\n}\r\ninterface IState {\r\n hasError: boolean;\r\n}\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props:IProps) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error:any) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error:any, errorInfo:any) {\r\n // You can also log the error to an error reporting service\r\n // logErrorToMyService(error: TypeError, errorInfo);\r\n logger.error(error);\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return

Something went wrong.

;\r\n }\r\n return this.props.children;\r\n }\r\n}\r\nexport default ErrorBoundary;\r\n","import React from 'react'\r\nimport Spinner from 'react-bootstrap/Spinner'\r\nimport '../../styles/loader.css'\r\nconst Loader: React.FC = () =>
\r\n\r\nexport default Loader\r\n","import React, { FunctionComponent, lazy, Suspense, } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Tabs from 'react-bootstrap/Tabs';\r\nimport Tab from 'react-bootstrap/Tab';\r\nimport ErrorBoundary from '../atoms/ErrorBoundary';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport Loader from '../atoms/Loader';\r\nimport SmallCard2 from '../atoms/SmallCard2';\r\n\r\ninterface IProps {\r\n type: string;\r\n}\r\n\r\nconst GroupByGraphsPanel = lazy(() => import('../organisms/GroupByGraphsPanel'));\r\nconst GroupByTablesPanel = lazy(() => import('../organisms/GroupByTablesPanel'));\r\nconst MapAccidents = lazy(() => import('../organisms/MapAccidents'));\r\nconst AccidentsTable = lazy(() => import('../organisms/AccidentsTable'));\r\nconst MyImageGallery = lazy(() => import('../organisms/MyImageGallery'));\r\n\r\nconst styles = {\r\n tab: { marginTop: '0.5rem' },\r\n tabMap: { marginTop: '0.1rem' },\r\n mapCard: { width: '150px', height: '35px' }\r\n};\r\n\r\nexport const TabsTemplate: FunctionComponent = observer(({ type }) => {\r\n const { t } = useTranslation();\r\n const { mapStore, uiStore } = useStore();\r\n // const [activeKey] = useState(uiStore.);\r\n // defaultActiveKey={uiStore.currentTab}\r\n return (\r\n {\r\n if (tabActiveKey === 'map') {\r\n // map is renderd only when tab is shown to prevent leaflet bug\r\n mapStore.isReadyToRenderMap = true;\r\n } else mapStore.isReadyToRenderMap = false;\r\n uiStore.setCurrentTab(tabActiveKey);\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 \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\nexport default TabsTemplate;\r\n","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\n// @ts-ignore\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport citisNamesHeb from '../../assets/cities_names_heb.json';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\n\r\nconst CitySelector: React.FC = observer(({ isMultiple = false }) => {\r\n const { filterStore } = useStore();\r\n const { cities, updateCities} = filterStore;\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('City')}:\r\n \r\n {\r\n updateCities(selected, true);\r\n }}\r\n options={citisNamesHeb}\r\n multiple={isMultiple}\r\n selected={cities.arrValues}\r\n />\r\n \r\n );\r\n});\r\nexport default CitySelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {}\r\nconst StreetSelector: React.FC = observer(() => {\r\n const { filterStore } = useStore();\r\n const { streets, cities } = filterStore;\r\n const { t } = useTranslation();\r\n if (cities.arrValues.length > 0) {\r\n return (\r\n \r\n \r\n {t('Street')}\r\n:\r\n \r\n ) => { filterStore.updateStreets(e.target.value); }} \r\n />\r\n \r\n\r\n );\r\n }\r\n return null;\r\n});\r\nexport default StreetSelector;\r\n","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\n// @ts-ignore\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport roadNames from '../../assets/road_names.json';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\n\r\nconst RoadNameSelector: React.FC = observer(({ isMultiple = true }) => {\r\n const { filterStore } = useStore();\r\n const {roads, setRoads} = filterStore;\r\n const {arrValues} = roads;\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('Road')}:\r\n \r\n {\r\n setRoads(selected);\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n }}\r\n options={roadNames}\r\n multiple={isMultiple}\r\n selected={arrValues}\r\n />\r\n \r\n );\r\n});\r\nexport default RoadNameSelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {\r\n isMultiple?: boolean\r\n}\r\nconst RoadSegmentSelector: React.FC = observer(({ isMultiple = false }) => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { cities, roadSegment, updateRoadSegment } = filterStore;\r\n if (cities.arrValues.length === 0) {\r\n return (\r\n \r\n \r\n {t('RoadSegment')}\r\n :\r\n \r\n ) => { updateRoadSegment(e.target.value); }}\r\n />\r\n \r\n\r\n );\r\n }\r\n return null;\r\n});\r\nexport default RoadSegmentSelector;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport Checkbox from '../atoms/Checkbox';\r\nimport { IColumnFilter } from '../../stores/ColumnFilterCheckBoxList';\r\nimport { useMemos } from \"../../hooks/myUseMemo\";\r\n\r\ninterface IProps {\r\n formName: string,\r\n colFilter: IColumnFilter,\r\n onChange: (aType: number, val: boolean) => void\r\n}\r\n\r\n/**\r\n * group of check boxs, that represnat single filter\r\n * each filter can get several boolean paramters - for exampe car and bycle\r\n * each of this paramters is repreansted as a number, and get a true/false value\r\n * in some cases there is a \"select all\" option.\r\n */\r\nconst GroupCheckbox: React.FC = observer(({ formName, colFilter, onChange }) => {\r\n const styleFeedback = {\r\n marginTop: '.25rem',\r\n fontSize: '80%',\r\n color: '#dc3545',\r\n };\r\n const { t } = useTranslation();\r\n const { isAllValsFalse, name, arrTypes } = colFilter;\r\n const onGroupChange = (aType: number, checked: boolean) => {\r\n // checkValid(checked)\r\n onChange(aType, checked);\r\n };\r\n const feedback = (\r\n
\r\n {' '}\r\n {t('check_one_checkbox')}\r\n
\r\n );\r\n const isvalid = (isAllValsFalse) ? feedback : null;\r\n const list = arrTypes.map((fChecker, index) => {\r\n return useMemos([fChecker.checked], ) => {\r\n onGroupChange(index, e.target.checked);\r\n }}\r\n />);\r\n });\r\n return (\r\n
\r\n \r\n \r\n {t(name)}:\r\n \r\n {list}\r\n {isvalid}\r\n \r\n
\r\n );\r\n});\r\nexport default GroupCheckbox;\r\n","import React, { ChangeEvent, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\n// import Button from 'react-bootstrap/Button';\r\nimport Form from 'react-bootstrap/Form';\r\nimport Col from 'react-bootstrap/Col';\r\nimport Accordion from 'react-bootstrap/Accordion';\r\nimport { useAccordionToggle } from 'react-bootstrap/AccordionToggle';\r\nimport Card from 'react-bootstrap/Card';\r\n// @ts-ignore\r\nimport CitySelector from '../molecules/CitySelector';\r\nimport StreetSelector from '../molecules/StreetSelector';\r\nimport RoadNameSelector from '../molecules/RoadNameSelector';\r\nimport RoadSegmentSelector from '../molecules/RoadSegmentSelector';\r\nimport GroupCheckbox from '../molecules/GroupCheckBox';\r\nimport Select from '../atoms/Select';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { useQuery, useInjTypeByQuery } from '../../hooks/queryHooks';\r\nimport MySelect from '../atoms/MySelect';\r\nimport '../../styles/accordion.css'\r\n\r\ninterface IProps {\r\n}\r\nconst STYLE_TOGGLE_WARNING = {\r\n // color: '#dc3545',\r\n // cursor: 'pointer',\r\n // paddingRight: '15px',\r\n // paddingLeft: '15px',\r\n};\r\nconst STYLE_TOGGLE_NORMAL = {\r\n color: '#007bff',\r\n cursor: 'pointer',\r\n // paddingRight: '15px',\r\n // paddingLeft: '15px',\r\n};\r\n\r\nconst FilterForm: React.FC = observer(({ }) => {\r\n const { filterStore } = useStore();\r\n const { injurySeverity, updateInjurySeverity, formCardKey } = filterStore;\r\n // console.log(injurySeverity)\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\nfunction CustomToggle({ children, style, eventKey, onClick }: any) {\r\n const [hover, setHover] = useState(false);\r\n const toggleHover = () => setHover(!hover);\r\n const linkStyle = (hover) ? { textDecoration: 'underline' } : { textDecoration: 'none' };\r\n const onButtonClick = useAccordionToggle(eventKey, () => onClick(eventKey));\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nconst CardFilterWhen: React.FC = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const {\r\n isValidWhen, startYear, setStartYear, endYear, setEndYear,\r\n dayNight, updateDayNight,\r\n setFormCardKey,\r\n } = filterStore;\r\n const styleToggle = isValidWhen ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n return (\r\n \r\n \r\n \r\n {t('When')}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ) => { setStartYear(e.target.value); }}\r\n />\r\n ) => { setEndYear(e.target.value); }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nconst CardFilterWhere = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const {\r\n isValidWhere, roadTypes, updateRoadType,\r\n locationAccuracy, updateLocationAccuracy,\r\n isMultipleCities,\r\n cityPopSizeRange, setCityPopSizeRange,\r\n setFormCardKey,\r\n } = filterStore;\r\n const styleToggle = isValidWhere ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('Where')}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ) => setCityPopSizeRange(event.target.value)}\r\n />\r\n \r\n
\r\n \r\n
\r\n );\r\n});\r\nconst CardFilterWho = observer(() => {\r\n const { t } = useTranslation();\r\n const location = useLocation();\r\n const { filterStore } = useStore();\r\n const { isValidWho, genderTypes, updateGenderType, } = filterStore;\r\n const { ageTypes, updateAgeType, populationTypes, updatePopulationType, setFormCardKey } = filterStore;\r\n\r\n // useEffect(() => {\r\n // const query = useQuery(location);\r\n // const injType = useInjTypeByQuery(query);\r\n // if (injType) {\r\n // updateInjuerdType(injType, true);\r\n // }\r\n // }, []);\r\n\r\n const styleToggle = isValidWho ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('Who')}\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\nconst CardFilterWhat = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { isValidWhat, accidentType, updateAccidentType, setFormCardKey } = filterStore;\r\n const styleToggle = isValidWhat ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('What')}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n});\r\n\r\nconst CardFilterWhatVehicle = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { injTypes,\r\n updateInjuerdType,\r\n vehicleType,\r\n updateVehicleType,\r\n involvedVehicle,\r\n setInvolvedVehicle,\r\n isValidWhatVehicle,\r\n setFormCardKey\r\n } = filterStore;\r\n const styleToggle = isValidWhatVehicle ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('WhatVehicle')}\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\nconst CardFilterWhatRoad = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { isValidWhatRoad } = filterStore;\r\n const { speedLimit, updateSpeedLimit, roadWidth, updateRoadWidth, } = filterStore;\r\n const { separator, updateSeparator, oneLane, updateOneLane, setFormCardKey } = filterStore;\r\n const styleToggle = isValidWhatRoad ? STYLE_TOGGLE_NORMAL : STYLE_TOGGLE_WARNING;\r\n\r\n return (\r\n \r\n \r\n \r\n {t('WhatRoad')}\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\nexport default FilterForm;\r\n","import React from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport FilterForm from '../organisms/FilterForm';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigModal from \"../organisms/ConfigModal\";\r\n\r\ninterface IProps {\r\n }\r\nconst ConfigFilterModal: React.FC = observer(() => {\r\n const { filterStore, uiStore } = useStore();\r\n const { showFilterModal, setShowFilterModal } = uiStore;\r\n return (\r\n {\r\n filterStore.submitFilter();\r\n setTimeout(() => {\r\n setShowFilterModal(!showFilterModal)\r\n }, 1000);\r\n }}\r\n size=\"lg\"\r\n title={'Filters'}\r\n setShow={setShowFilterModal}\r\n showModal={showFilterModal}>\r\n \r\n \r\n );\r\n});\r\nexport default ConfigFilterModal;\r\n","import React from \"react\"\r\n\r\nfunction SvgIconFilter(props: React.SVGProps) {\r\n const color = (props.color) ? props.color : 'blue';\r\n const height = (props.height) ? props.height : 24;\r\n const width = (props.width) ? props.width : 24;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(SvgIconFilter);","import React from 'react';\r\n// import { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { useStore } from '../../stores/storeConfig';\r\n// import IconWithImage from '../atoms/IconWithImage';\r\n// import imgSrc from '../../assets/filter.png';\r\nimport { useMemos } from '../../hooks/myUseMemo';\r\nimport SvgIconFilter from '../../assets/SvgIconFilter';\r\nimport '../../styles/filter-btn.css'\r\n\r\ninterface IProps { }\r\nconst ButtonShowFilterModal: React.FC = observer(() => {\r\n // const { t } = useTranslation();\r\n const { uiStore } = useStore();\r\n const { showFilterModal, setShowFilterModal } = uiStore;\r\n const memoFilterIcon = useMemos([],\r\n );\r\n // const filterIcon = \r\n\r\n return (\r\n <>\r\n setShowFilterModal(!showFilterModal)}>\r\n {memoFilterIcon}\r\n \r\n \r\n );\r\n});\r\nexport default ButtonShowFilterModal;\r\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next';\r\nimport FilterForm from './FilterForm'\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport { observer } from 'mobx-react';\r\nimport { Button } from 'react-bootstrap';\r\nimport '../../styles/sidebar.css'\r\n\r\nconst Drawer: React.FC = observer((props) => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n\r\n // console.log(filterStore)\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n filterStore.submitFilter()}\r\n disabled={filterStore.isLoading || !filterStore.isValidAllFilters}\r\n >\r\n {filterStore.isLoading ? t('Loading') : t('Submit')}\r\n \r\n alert('action in filter store to collect filters')}\r\n disabled={filterStore.isLoading || !filterStore.isValidAllFilters}\r\n >\r\n {t('Save')} {t('Filter')}\r\n \r\n
\r\n )\r\n {/* */ }\r\n})\r\n\r\n\r\nexport default Drawer","import React, { PropsWithChildren } from 'react'\r\nimport Drawer from '../organisms/Drawer'\r\nimport '../../styles/grid-with-drawer.css'\r\n\r\ninterface Props extends PropsWithChildren { }\r\n\r\nconst WithSidebarTemplate: React.FC = ({ children }) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default WithSidebarTemplate","\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport { useStore } from '../../stores/storeConfig';\r\n\r\ninterface IProps {\r\n}\r\n\r\nconst WhenTitle: React.FC<{}> = observer(() => {\r\n const { filterStore } = useStore();\r\n const { dayNight } = filterStore;\r\n let res = (dayNight.text !== '') ? `, ${dayNight.text}` : '';\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhereTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { cities, cityPopSizeRange, roads, roadTypes, locationAccuracy } = filterStore;\r\n let res = t('Israel');\r\n if (cities.text !== '') {\r\n res = `${cities.text}`; // maybe use t('several-cities');\r\n } else if (cityPopSizeRange.text !== '') {\r\n res = `${t('city_size')} ${cityPopSizeRange.text}`;\r\n } else if (roads.text !== '') {\r\n res = `${t(roads.name)} ${roads.text}`;\r\n //res = (roads.length === 1) ? `${t('Road')} ${roads[0]}` : t('several-roads');\r\n }\r\n else if (roadTypes.text !== '') {\r\n res = `${roadTypes.text}`;\r\n }\r\n if (locationAccuracy.text != '') res += `, ${locationAccuracy.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhoTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { genderTypes, ageTypes, populationTypes } = filterStore;\r\n let res = (genderTypes.text != '') ? `, ${genderTypes.text}` : '';\r\n if (populationTypes.text != '') res += `, ${populationTypes.text}`;\r\n if (ageTypes.text != '') res += `, ${t('Age')}: ${ageTypes.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhatTitle: React.FC<{}> = observer(() => {\r\n const { filterStore } = useStore();\r\n const { accidentType } = filterStore;\r\n let res = (accidentType.text !== '') ? `, ${accidentType.text}` : '';\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst WhatVehicleTitle: React.FC<{}> = observer(() => {\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { injTypes, vehicleType , involvedVehicle} = filterStore;\r\n let res = (injTypes.text !== '') ? `, ${injTypes.text}` : '';\r\n if (vehicleType.text !== '') res += `, ${t('VehicleType')}: ${vehicleType.text}`;\r\n if (involvedVehicle.text != '') res += `, ${t('Vehicles')}: ${involvedVehicle.text}`;\r\n return (\r\n {res}\r\n )\r\n});\r\n\r\nconst InfoPanel: React.FC = observer(({ }) => {\r\n const styles = {\r\n div: {\r\n marginTop: '0.8rem',\r\n marginLeft: '1rem',\r\n marginRight: '1rem',\r\n marginBottom: '0.1rem'\r\n }\r\n }\r\n const { t } = useTranslation();\r\n const { filterStore } = useStore();\r\n const { casualtiesNames, isLoadingInjuriesCount: isLoadingCountInjuries, injuriesCount } = filterStore;\r\n if (isLoadingCountInjuries) return
{t('Loading')}
\r\n if (injuriesCount > 0) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {', '}\r\n {t('Found')}\r\n {' '}\r\n {injuriesCount}\r\n {' '}\r\n {t(casualtiesNames)}\r\n {' '}\r\n
\r\n );\r\n }\r\n return (\r\n
{t('NoResultsFound')}
\r\n );\r\n});\r\nexport default InfoPanel;\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\n// import FilterPanel from '../organisms/FilterPanel';\r\nimport TabsTemplate from './TabsTemplate';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigFilterModal from '../organisms/ConfigFilterModal';\r\nimport ButtonShowFilterModal from '../atoms/ButtonShowFilterModal';\r\nimport { useMemos } from \"../../hooks/myUseMemo\";\r\n// import CasualtiesSumLabel from '../atoms/CasualtiesSumLabel';\r\n// import FilterForm from \"../organisms/FilterForm\";\r\nimport WithSidebarTemplate from './WithSidebarTemplate';\r\nimport InfoPanel from '../molecules/InfoPanel';\r\n\r\ninterface IProps { }\r\nconst HomeTemplate: React.FC = observer(() => {\r\n const { t } = useTranslation();\r\n const { mapStore, filterStore, uiStore } = useStore();\r\n const { setIsMultipleCities, updateCities, submitFilter } = filterStore;\r\n const { setCurrentPage, setStoreByQuery, showFilterModal , setInitPage} = uiStore;\r\n\r\n useEffect(() => {\r\n setCurrentPage('home');\r\n // const query = useQuery(location);\r\n // const tab = useTabFromQuery(query, 'charts');\r\n // setCurrentTab(tab);\r\n setIsMultipleCities(true);\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n mapStore.isReadyToRenderMap = false;\r\n\r\n useEffect(() => {\r\n // mapStore.initBounds();\r\n setInitPage(true);\r\n updateCities([], false);\r\n setStoreByQuery('charts');\r\n submitFilter();\r\n setInitPage(false)\r\n }, [submitFilter, updateCities]);\r\n\r\n\r\n const memoConfigModal = useMemos([showFilterModal], )\r\n\r\n return (\r\n \r\n {/*
*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n {showFilterModal && memoConfigModal}\r\n \r\n
\r\n \r\n )\r\n})\r\n\r\nexport default HomeTemplate\r\n","import React from 'react';\r\nimport HomeTemplate from '../templates/HomeTemplate';\r\n\r\ninterface IProps { }\r\n\r\nconst HomePage: React.FC = () => (\r\n \r\n);\r\nexport default HomePage;\r\n","import React, { useEffect } from 'react';\r\n// import { useTranslation } from 'react-i18next';\r\nimport { observer } from 'mobx-react';\r\nimport { TabsTemplate } from './TabsTemplate';\r\n// import FilterPanel from '../organisms/FilterPanel';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport ConfigFilterModal from '../organisms/ConfigFilterModal';\r\nimport ButtonShowFilterModal from '../atoms/ButtonShowFilterModal';\r\nimport { useMemos } from '../../hooks/myUseMemo';\r\nimport InfoPanel from '../molecules/InfoPanel';\r\nimport WithSidebarTemplate from './WithSidebarTemplate';\r\n\r\ninterface IProps { }\r\nconst CityTemplate: React.FC = observer(() => {\r\n // const { t } = useTranslation();\r\n const { filterStore, uiStore } = useStore();\r\n const { cityResult, isUpdateFromUrl, setIsUpdateFromUrl } = filterStore;\r\n const { setCurrentPage, setStoreByQuery, showFilterModal, setInitPage} = uiStore;\r\n\r\n useEffect(() => {\r\n setCurrentPage('city');\r\n filterStore.isMultipleCities = false;\r\n if (cityResult !== '') {\r\n filterStore.submitFilter();\r\n }\r\n return () => setIsUpdateFromUrl(true); // unmount\r\n }, []);\r\n // useEffect(() => {\r\n // if (cityResult !== '') {\r\n // history.push({\r\n // pathname: '/city',\r\n // search: `?name=${cityResult}&tab=${currentTab}`,\r\n // });\r\n // filterStore.submitFilter();\r\n // }\r\n // }, [cityResult, currentTab]);\r\n useEffect(() => {\r\n setInitPage(true);\r\n if (cityResult === '' && isUpdateFromUrl) {\r\n setIsUpdateFromUrl(false);\r\n setStoreByQuery('map','תל אביב -יפו');\r\n filterStore.submitFilter();\r\n }\r\n setInitPage(false);\r\n }, []);\r\n // useEffect(() => {\r\n // if (cityResult !== '') {\r\n // filterStore.submitFilter();\r\n // }\r\n // }, [cityResult]);\r\n\r\n const memoConfigModal = useMemos([showFilterModal], )\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {showFilterModal && memoConfigModal}\r\n \r\n {/*
*/}\r\n {/*
\r\n */}\r\n \r\n
\r\n );\r\n});\r\nexport default CityTemplate;\r\n","import React from 'react';\r\nimport CityTemplate from '../templates/CityTemplate';\r\n\r\ninterface IProps { }\r\n\r\nconst CityPage: React.FC = () => (\r\n \r\n);\r\n\r\nexport default CityPage;\r\n","import React, { ChangeEvent } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { useStore } from '../../stores/storeConfig';\r\nimport Form from 'react-bootstrap/Form'\r\nimport MySelect from '../atoms/MySelect';\r\n\r\nconst LanguageSelector = observer(() => {\r\n const { uiStore } = useStore();\r\n const style: any = document.getElementById('style-direction');\r\n if (style !== null) {\r\n if (uiStore.direction === 'rtl') {\r\n style.href = './bootstrap.rtl.min.css';\r\n // changeLanguage('he')\r\n document.body.classList.remove('dir-ltr');\r\n document.body.classList.add('dir-rtl');\r\n } else {\r\n style.href = './bootstrap.min.css';\r\n // changeLanguage('en')\r\n document.body.classList.remove('dir-rtl');\r\n document.body.classList.add('dir-ltr');\r\n }\r\n }\r\n return (\r\n \r\n\r\n ) => {\r\n uiStore.updateLanguage(e.target.value)\r\n }}\r\n // label={labelText}\r\n data={[{ value: 'he', text: 'Hebrew' }, { value: 'en', text: 'English' }]}\r\n valProp=\"value\"\r\n contentProp=\"text\"\r\n value={uiStore.language}\r\n />\r\n {/*
\r\n \r\n ) => {\r\n uiStore.updateLanguage(e.target.value)\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
*/}\r\n {/* {\r\n uiStore.updateLanguage(e.target.value)\r\n }}>\r\n \r\n \r\n */}\r\n
\r\n );\r\n});\r\nexport default LanguageSelector;","import React from 'react'\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nconst NavigationList: React.FC = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {t('Home')}\r\n \r\n \r\n {t('Cities')}\r\n \r\n \r\n {t('About')}\r\n \r\n \r\n {t('My-Filters')}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NavigationList\r\n","import React from 'react';\r\nimport LanguageSelector from '../molecules/LanguageSelector';\r\nimport logo from '../../assets/safety-logo.png';\r\nimport NavigationList from '../molecules/NavigationList';\r\nimport Navbar from 'react-bootstrap/Navbar'\r\nimport '../../styles/tabs.css'\r\n\r\n\r\ninterface IProps {\r\n title: string\r\n}\r\n\r\nconst styles = {\r\n header: {\r\n marginBottom: '1rem',\r\n position: 'fixed' as 'fixed',\r\n top: '0px',\r\n width: '100%',\r\n zIndex: 5000,\r\n }\r\n};\r\n\r\nexport const Header: React.FC = ({ title }) => {\r\n\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\nexport default Header;\r\n","export default \"data:image/png;base64,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\"","import React, { lazy, Suspense } from 'react';\r\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\r\nimport Card from 'react-bootstrap/Card';\r\nimport HomePage from './components/pages/HomePage';\r\nimport CityPage from './components/pages/CityPage';\r\nimport Header from './components/templates/Headr';\r\nimport Footer from './components/templates/Footer';\r\nimport Loader from './components/atoms/Loader';\r\nimport './i18n';\r\nimport './App.css';\r\nimport Drawer from './components/organisms/Drawer';\r\n// import MyFilters from './components/pages/MyFilters';\r\n// import { useTranslate } from './hooks/transelate'\r\n\r\nconst AboutPage = lazy(() => import('./components/pages/AboutPage'));\r\nconst UpdateImagePage = lazy(() => import('./components/pages/UpdateImagePage'));\r\nconst MyFilters = lazy(() => import('./components/pages/MyFilters'))\r\n\r\n\r\nconst styles = {\r\n app: {\r\n marginTop: '44px',\r\n }\r\n};\r\n\r\nfunction App() {\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\r\n\r\nexport default App;\r\n","// 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.0/8 are 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\nexport function register(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(process.env.PUBLIC_URL, window.location.href);\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, 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, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\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\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.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"," /**\r\n* set the QueryString of the browser by name and vlaue\r\n*/\r\nexport const setBrowserQueryString = (name: string, val: string) => {\r\n const params = new URLSearchParams(location.search);\r\n params.set(name, val);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n}\r\nexport const delBrowserQueryString = (name: string,) => {\r\n const params = new URLSearchParams(location.search);\r\n params.delete(name);\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n}","import { useMemo } from \"react\";\r\n\r\nexport function useMemos(dep: any[], item: any) {\r\n return useMemo(() => {\r\n return item\r\n }, dep)\r\n}","import i18n from 'i18next';\r\n// import LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport translationEng from './lng/en/translation.json';\r\nimport translationHeb from './lng/he/translation.json';\r\n\r\ni18n\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n // .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: 'he',\r\n lng: 'he',\r\n debug: true,\r\n // hardcoding translations for the sake of simplicity,\r\n // id more complex - get it from backend.\r\n // i18next has a small plugin that makes it easy.\r\n // learn more: https://github.com/i18next/i18next-xhr-backend\r\n resources: {\r\n en: {\r\n translation: translationEng,\r\n },\r\n he: {\r\n translation: translationHeb,\r\n },\r\n },\r\n interpolation: {\r\n escapeValue: false, // not needed for React as it escapes by default\r\n },\r\n });\r\nexport default i18n;\r\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next';\r\nimport '../../styles/my-select.css'\r\ninterface Props {\r\n data: any[]\r\n onChange: (event: React.ChangeEvent) => void,\r\n valProp?: string\r\n contentProp?: string\r\n value?: string\r\n label?: string\r\n style?: any\r\n cssClass?: string\r\n}\r\n\r\nconst MySelect: React.FC = ({ style, label, onChange, data, valProp, contentProp, value, cssClass='' }) => {\r\n const { t } = useTranslation();\r\n const cssname= \"form-select form-select-sm \" + cssClass;\r\n return (\r\n
\r\n {label && }\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default MySelect\r\n","import { observable, action } from 'mobx';\r\nimport { Map } from 'react-leaflet';\r\nimport L from 'leaflet';\r\nimport logger from '../services/logger';\r\nimport RootStore from './RootStore';\r\nimport { setBrowserQueryString, delBrowserQueryString } from '../utils/queryStringUtils';\r\n// import autorun from \"mobx\"\r\n\r\n\r\n\r\n/**\r\n * bbox type - how to fetch data for map \r\n * NO_BBOX - when filter change, get all the points from server\r\n * SERVER_BBOX - on every zoom / movment of the map get only relevent DEFAULT_BOUNDS\r\n * LOCAL_BBOX - on zoom/ movment of map get relevent markers from memory (dataAllInjuries)\r\n */\r\nexport enum BBoxType {\r\n NO_BBOX,\r\n SERVER_BBOX,\r\n LOCAL_BBOX\r\n}\r\n// const INIT_BOUNDS = [L.latLng(32.032, 34.739), L.latLng(32.115, 34.949)];\r\nconst DEFAULT_BOUNDS = [\r\n L.latLng(29.50, 34.22), // most possible south-west point\r\n L.latLng(33.271, 35.946), // most possible north-east point\r\n];\r\nconst QUERY_STR_NAME_LAT = 'lat';\r\nconst QUERY_STR_NAME_LNG = 'lng';\r\nconst QUERY_STR_NAME_MRKRCOLOR = 'mkclr';\r\n\r\nexport default class MapStore {\r\n appInitialized = false\r\n\r\n constructor(rootStore: RootStore) {\r\n // init app data\r\n this.rootStore = rootStore;\r\n }\r\n\r\n rootStore: RootStore;\r\n\r\n mapRef: React.RefObject> | null = null;\r\n\r\n setMapRef = (mapRef: React.RefObject>) => {\r\n this.mapRef = mapRef;\r\n }\r\n @action\r\n onMapLoad = () => {\r\n console.log('onMapLoad');\r\n const params = new URLSearchParams(window.location.search);\r\n this.setMapZoomByQuery(params);\r\n }\r\n\r\n /////////// set / get from quey string\r\n @action\r\n setStoreByQuery = (params: URLSearchParams) => {\r\n this.setMapCenterByQuery(params);\r\n this.setMapZoomByQuery(params);\r\n this.setMarkerColorTypeByQuery(params);\r\n }\r\n\r\n delQueryStrMapCenter = () => {\r\n delBrowserQueryString(QUERY_STR_NAME_LAT);\r\n delBrowserQueryString(QUERY_STR_NAME_LNG)\r\n }\r\n\r\n setQueryStrMapCenter = (center: L.LatLng) => {\r\n setBrowserQueryString(QUERY_STR_NAME_LAT, center.lat.toFixed(5));\r\n setBrowserQueryString(QUERY_STR_NAME_LNG, center.lng.toFixed(5));\r\n }\r\n setQueryStrMapZoom = (zoom: number) => {\r\n setBrowserQueryString('z', zoom.toString());\r\n }\r\n\r\n @observable\r\n isReadyToRenderMap = false;\r\n\r\n @observable\r\n bboxType: BBoxType = BBoxType.LOCAL_BBOX;\r\n\r\n @observable\r\n mapCenter: L.LatLng = new L.LatLng(32.08, 34.83)\r\n\r\n @action\r\n updateMapCenter = (center: L.LatLng, updateQuery: boolean = true) => {\r\n this.mapCenter = center;\r\n if (updateQuery) {\r\n this.setQueryStrMapCenter(center);\r\n }\r\n }\r\n\r\n @observable\r\n mapZoom: number = 13;\r\n\r\n @action\r\n setMapZoom = (value: number) => {\r\n this.mapZoom = value;\r\n };\r\n\r\n\r\n @action\r\n setMapCenterByQuery = (params: URLSearchParams) => {\r\n const center = this.getCenterByQuery(params);\r\n if (center) {\r\n this.updateMapCenter(center, false);\r\n }\r\n }\r\n getCenterByQuery = (params: URLSearchParams) => {\r\n let center = null\r\n const sLat = params.get(QUERY_STR_NAME_LAT);\r\n const sLon = params.get(QUERY_STR_NAME_LNG);\r\n if (sLat && sLon) {\r\n const lat = Number.parseFloat(sLat);\r\n const lng = Number.parseFloat(sLon)\r\n if (!Number.isNaN(lat) && !Number.isNaN(lng)) {\r\n center = new L.LatLng(lat, lng);\r\n }\r\n }\r\n return center;\r\n }\r\n @action\r\n setMapZoomByQuery = (params: URLSearchParams) => {\r\n const sZoom = params.get('z');\r\n if (sZoom) {\r\n const zoom = Number.parseInt(sZoom);\r\n if (!Number.isNaN(zoom)) {\r\n this.setMapZoom(zoom);\r\n }\r\n }\r\n }\r\n // if this is init-page and query string has center- don't center by city location\r\n isCenterMapByCity = () => {\r\n let doCenterByCity = true;\r\n if (this.rootStore.uiStore.initPage) {\r\n const params = new URLSearchParams(window.location.search);\r\n const center = this.getCenterByQuery(params);\r\n if (center) {\r\n doCenterByCity = false;\r\n }\r\n }\r\n return doCenterByCity;\r\n }\r\n\r\n @action\r\n updateMapCenterByCity = (res: any[]) => {\r\n if (res !== null && res.length > 0) {\r\n const city = res[0];\r\n if (city.lat && city.lon) {\r\n this.updateMapCenter(new L.LatLng(city.lat, city.lon));\r\n this.setMapZoom(13);\r\n }\r\n }\r\n }\r\n\r\n @observable\r\n useSetBounds = true;\r\n\r\n // @observable\r\n // mapBounds: L.LatLngBounds = L.latLngBounds(INIT_BOUNDS);\r\n // @action\r\n // updateBounds = (bounds: L.LatLngBounds) => {\r\n // //logger.log(\"updateBounds\",bounds)\r\n // try {\r\n // this.mapBounds = (bounds);\r\n // } catch (error) {\r\n // logger.error(error)\r\n // }\r\n // }\r\n // @action\r\n // initBounds = () => {\r\n // this.updateBounds(L.latLngBounds(INIT_BOUNDS))\r\n // }\r\n @action\r\n setBounds = (data: any[], citisArr: string[]) => {\r\n if (this.isSetBounds) {\r\n const bunds = this.getBoundsByPointsArr(data);\r\n if (citisArr.length > 0 && citisArr[0] !== '') {\r\n // //this.mapBounds = bunds;\r\n // if (bunds.contains(this.mapCenter))\r\n // this.mapBounds = bunds;\r\n // else\r\n // logger.log(\"worng bounds: \", bunds, this.mapCenter)\r\n } else {\r\n this.updateMapCenter(bunds.getCenter());\r\n // this.mapBounds = bunds;\r\n }\r\n this.isSetBounds = false;\r\n }\r\n }\r\n\r\n @observable\r\n isSetBounds = false;\r\n\r\n @action\r\n updateIsSetBounds = (citisArr: string[], roadSegArr: any[]) => {\r\n if (this.useSetBounds) {\r\n if (citisArr.length > 0 && citisArr[0] !== '') this.isSetBounds = true;\r\n else if (roadSegArr.length > 0 && roadSegArr[0] !== '') this.isSetBounds = true;\r\n }\r\n }\r\n\r\n @observable\r\n heatLayerHidden = true;\r\n\r\n @action\r\n toggleHeatLayer = () => {\r\n this.heatLayerHidden = !this.heatLayerHidden;\r\n }\r\n\r\n\r\n ////////// markers /////////////////\r\n @observable\r\n useSmallMarkers = false;\r\n\r\n @action\r\n toggleUseSmallMarkers = () => {\r\n this.useSmallMarkers = !this.useSmallMarkers;\r\n }\r\n\r\n @observable\r\n markerIconsType = \"Vehicle\";\r\n\r\n @action\r\n setMarkerIconsType = (value: string) => {\r\n this.markerIconsType = value;\r\n }\r\n markerIconTypesArr = [\r\n { val: \"general\", text: 'general' },\r\n { val: \"Vehicle\", text: 'Vehicle' },\r\n ];\r\n\r\n @observable\r\n markerColorType = \"Severity\";\r\n\r\n @action\r\n setMarkerColorType = (value: string) => {\r\n this.markerColorType = value;\r\n setBrowserQueryString(QUERY_STR_NAME_MRKRCOLOR, value);\r\n }\r\n @action\r\n setMarkerColorTypeByQuery = (params: URLSearchParams) => {\r\n const val = params.get(QUERY_STR_NAME_MRKRCOLOR);\r\n if (val !== null) {\r\n this.setMarkerColorType(val);\r\n }\r\n }\r\n setBrowserQueryStringByMarkerColor = (params: URLSearchParams) => {\r\n params.set(QUERY_STR_NAME_MRKRCOLOR, (this.markerColorType));\r\n window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`);\r\n }\r\n\r\n markerColorTypesArr = [\r\n { val: \"Severity\", text: 'Severity' },\r\n { val: \"Vehicle\", text: 'Vehicle' },\r\n { val: 'AccidentType', text: 'AccidentType' },\r\n { val: 'SelfOrNotAcc', text: 'SelfOrNotAcc' },\r\n { val: \"DayNight\", text: 'DayNight' },\r\n { val: \"Gender\", text: 'Gender' },\r\n { val: 'RoadType', text: 'RoadType' }\r\n ];\r\n\r\n ////// bounds //////////////////////\r\n getBoundsByPointsArr = (data: any[]) => {\r\n // logger.log(\"setBounds!\")\r\n let arr: L.LatLng[] = [];\r\n let lastPoint: L.LatLng = L.latLng(0, 0);\r\n data.forEach((x) => {\r\n if (x.latitude !== null && x.longitude !== null) {\r\n const p = new L.LatLng(x.latitude, x.longitude);\r\n if ((lastPoint.lat === 0 && lastPoint.lng === 0)\r\n || x.latitude !== lastPoint.lat\r\n || x.longitude !== lastPoint.lng) {\r\n arr.push(p);\r\n // prevent insertion of duplicate same point\r\n lastPoint = p;\r\n }\r\n }\r\n });\r\n // bounds for single point\r\n if (arr.length === 1) {\r\n arr.length = 0; // clean tha array\r\n arr.push(L.latLng(lastPoint.lat + 0.01, lastPoint.lng + 0.01));\r\n arr.push(L.latLng(lastPoint.lat - 0.01, lastPoint.lng - 0.01));\r\n }\r\n // in case no lat/lon info\r\n if (arr.length < 2) arr = DEFAULT_BOUNDS;\r\n const bounds = L.latLngBounds(arr);\r\n return bounds;\r\n }\r\n\r\n getBounds2 = (data: any[]) => {\r\n if (data.length === 0) return L.latLngBounds(DEFAULT_BOUNDS);\r\n const bounds = {\r\n south: 200, north: -200, west: 200, east: -200,\r\n };\r\n data.forEach((x) => {\r\n if (x.latitude !== null && x.longitude !== null) {\r\n bounds.south = Math.min(x.latitude, bounds.south);\r\n bounds.north = Math.max(x.latitude, bounds.north);\r\n bounds.west = Math.min(x.longitude, bounds.west);\r\n bounds.east = Math.max(x.longitude, bounds.east);\r\n }\r\n });\r\n // bounds for single point\r\n if (bounds.south === bounds.north) {\r\n bounds.south -= 0.01;\r\n bounds.north += 0.01;\r\n bounds.west -= 0.01;\r\n bounds.east += 0.01;\r\n }\r\n const b = L.latLngBounds([bounds.south, bounds.west], [bounds.east, bounds.north]);\r\n return b;\r\n }\r\n\r\n @observable\r\n dataMarkersInBounds: any[] = []\r\n\r\n @action\r\n updateDataMarkersInBounds = (data: any[]) => {\r\n this.dataMarkersInBounds = data;\r\n }\r\n @action\r\n updateMapBounds = () => {\r\n try {\r\n //get markers\r\n if (this.bboxType !== BBoxType.NO_BBOX) this.getMarkersInBBox();\r\n //update query string by map\r\n this.setQueryStrMapCenterByBounds()\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n };\r\n setQueryStrMapCenterByBounds = () => {\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n if (mapBounds) {\r\n const center = mapBounds.getCenter()\r\n this.setQueryStrMapCenter(center);\r\n this.setQueryStrMapZoom(this.mapRef.current.leafletElement.getZoom());\r\n }\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n }\r\n /* \r\n setMapZoom =(zoom: number) =>{\r\n console.log('mapRef',this.mapRef)\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n this.mapRef.current.leafletElement.setZoom(zoom);\r\n const zoom2 = this.mapRef.current.leafletElement.getZoom();\r\n console.log('zoom2', zoom2)\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n } */\r\n\r\n getMarkersInBBox = () => {\r\n if (this.bboxType === BBoxType.LOCAL_BBOX) {\r\n this.getMarkersInLocalBBox(0.02);\r\n } else if (this.bboxType === BBoxType.SERVER_BBOX) {\r\n this.submintGetMarkersBBox();\r\n }\r\n }\r\n\r\n getMarkersInLocalBBox = (boundsMargin: number) => {\r\n if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n try {\r\n const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n const west = mapBounds.getWest() - boundsMargin;\r\n const east = mapBounds.getEast() + boundsMargin;\r\n const south = mapBounds.getSouth() - boundsMargin;\r\n const north = mapBounds.getNorth() + boundsMargin;\r\n const data = this.rootStore.filterStore.dataAllInjuries\r\n .filter((x) => x.latitude >= south\r\n && x.latitude <= north && x.longitude >= west && x.longitude <= east);\r\n // const zoom = this.mapRef.current.leafletElement.getZoom();\r\n // console.log(zoom, east -west ,data.length); \r\n this.updateDataMarkersInBounds(data);\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n }\r\n\r\n submintGetMarkersBBox = () => {\r\n // if (this.mapRef === undefined || this.mapRef === null || this.mapRef.current === null) return;\r\n // const mapBounds = this.mapRef.current.leafletElement.getBounds();\r\n // const filter = this.rootStore.filterStore.getFilterForPost(mapBounds, true);\r\n // fetchFilter(filter, 'latlon')\r\n // .then((data: any[] | undefined) => {\r\n // if (data !== null && data !== undefined) {\r\n // this.updateDataMarkersInBounds(data);\r\n // }\r\n // });\r\n }\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d9019ee..568fc10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2147,9 +2147,9 @@ "dev": true }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "http-errors": {