1(this["webpackJsonppolice-data-website"]=this["webpackJsonppolice-data-website"]||[]).push([[22],{110:function(e,t,a){"use strict";var n=a(1);const c={root:null,rootMargin:"0px 0px 0px 0px",threshold:0};t.a=e=>{const[t,a]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{if(e.current){new IntersectionObserver(((t,n)=>{t.forEach((t=>{t.isIntersecting&&(a(!0),n.unobserve(e.current))}))}),c).observe(e.current)}}),[e]),t}},138:function(e,t,a){"use strict";var n=a(104),c=a(112),i=a(21);t.a=()=>{let[e,{width:t}]=Object(c.a)();const a=window.innerWidth;t=t||(a>=769?528:a),a<769&&(t-=30);return Object(i.jsx)("div",{ref:e,className:"TableLoader",children:Object(i.jsx)(n.a,{viewBox:"0 0 ".concat(t," ").concat(900),height:900,width:t,speed:2,animate:!1,children:[...Array(20).keys()].map((e=>Object(i.jsx)("rect",{x:"0",y:45*e,rx:"3",ry:"3",width:t,height:40},e)))})})}},256:function(e,t,a){"use strict";a.r(t);var n=a(138),c=a(14),i=a(97),s=a(110),l=a(94),r=a(1),o=a(108),d=a(128);var j=function(e,t,a){const[n,c]=Object(r.useState)(a);for(var i=arguments.length,s=new Array(i>3?i-3:0),j=3;j<i;j++)s[j-3]=arguments[j];const{data:b,isValidating:h,error:O,...m}=Object(d.a)(e,t,n,...s);return Object(o.a)((()=>{c(Object(l.a)(n,(e=>{e.initialData=b})))}),[b]),{...m,isValidating:h,error:O,data:b}},b=a(23),h=a(87),O=a.n(h),m=a(61),p=a(54),u=a(223),x=a(99),g=a(4),v=a(178),f=a(222),D=a(253),S=a(21);const y=Object(r.lazy)((()=>Object(b.m)((()=>a.e(8).then(a.bind(null,91)))))),w=Object(r.lazy)((()=>Object(b.m)((()=>a.e(42).then(a.bind(null,231)))))),C=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(1),a.e(9)]).then(a.bind(null,179)))))),U=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(1),a.e(3),a.e(5),a.e(44)]).then(a.bind(null,200)))))),T=Object(r.lazy)((()=>Object(b.m)((()=>a.e(38).then(a.bind(null,139)))))),k=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(2),a.e(4),a.e(28)]).then(a.bind(null,140)))))),z=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(3),a.e(7)]).then(a.bind(null,186)))))),H=Object(r.lazy)((()=>Object(b.m)((()=>a.e(29).then(a.bind(null,129)))))),P=Object(r.lazy)((()=>Object(b.m)((()=>a.e(10).then(a.bind(null,201)))))),N=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(1),a.e(3),a.e(17)]).then(a.bind(null,251)))))),E=Object(r.lazy)((()=>Object(b.m)((()=>Promise.all([a.e(1),a.e(30)]).then(a.bind(null,157))))));t.default=function(){var e,t;const[a,l]=Object(r.useState)({stateCode:"US",departmentName:null}),[o,d]=Object(v.a)("anchor",null),[h,M]=Object(v.a)("expandTable",!1),[A,F]=Object(f.a)("mapStatistic","uof"),[R,I]=Object(v.a)("mapView",c.n.DISTRICTS),[V]=Object(r.useState)(""),Y=Object(g.h)(),[B,L]=Object(f.a)("isCompleteData",!1),[J,q]=Object(r.useState)(!1);Object(r.useEffect)((()=>(q(!0),()=>{q(!1)})),[q]),Object(r.useEffect)((()=>(J&&(Object(i.b)("completeDataMap",(e=>L(e.detail))),Object(i.b)("completeDataTable",(e=>L(e.detail)))),()=>{Object(i.c)("completeDataMap"),Object(i.c)("completeDataTable")})),[L,J]);const{data:W}=j("".concat(c.a,"/timeseries.min.json"),b.b,{revalidateOnMount:!0}),{data:G}=j("".concat(c.a,"/data").concat(V?"-".concat(V):"",".min.json"),b.b,{revalidateOnMount:!0}),K=Object(r.useRef)(),Q=Object(s.a)(K),{width:X}=Object(D.a)(),Z=""!==V&&V<c.c,$=""===V||V>Object(m.a)(Object(p.a)(Object(b.l)(c.e),c.z),{representation:"date"}),_=Object(r.useMemo)((()=>{var e,t;const a=[null===G||void 0===G||null===(e=G.US)||void 0===e||null===(t=e.m)||void 0===t?void 0:t.date].filter((e=>e));return a.length>0?Object(m.a)(Object(u.a)(a.map((e=>Object(b.l)(e)))),{representation:"date"}):null}),[G]),ee=Object(r.useMemo)((()=>Object.entries(G||{}).reduce(((e,t)=>{var a;let[n,i]=t;return e[n]=!!(null!==i&&void 0!==i&&i.departments&&null!==(a=i.departments)&&void 0!==a&&a[c.C]&&c.q.every((e=>Object(b.i)(i,"total",e,{isCompleteData:B})===Object(b.i)(i.departments[c.C],"total",e,{isCompleteData:B})))),e}),{})),[G,B]),te=(null===a||void 0===a?void 0:a.stateCode)&&(null===a||void 0===a?void 0:a.departmentName)&&a.departmentName!==c.C&&ee[a.stateCode],ae=Object(b.j)({...null===G||void 0===G?void 0:G.US,dates:null===W||void 0===W||null===(e=W.US)||void 0===e?void 0:e.dates});return Object(S.jsxs)(S.Fragment,{children:[Object(S.jsxs)(x.a,{children:[Object(S.jsx)("title",{children:"Police Use of Force Data & Statistics | PoliceData.org"}),Object(S.jsx)("meta",{name:"title",content:"Police Use of Force Data & Statistics | PoliceData.org"}),Object(S.jsx)("meta",{name:"description",content:"Explore the largest U.S. police use of force database, with data on shootings, tasers and other force by state and agency. By the Police Data Archive."})]}),Object(S.jsxs)("div",{className:"Home",children:[Object(S.jsxs)("div",{className:O()("home-left",{expanded:h}),children:[Object(S.jsx)("h1",{className:"fadeInUp",style:{textAlign:"left",marginTop:20,padding:"0 20px"},children:"The Police Data Archive tracked over one million cases of police use of force across more than 3,000 jurisdictions, encompassing 64% of the U.S."}),Object(S.jsxs)("div",{style:{position:"relative",marginTop:"1rem",marginBottom:"1rem"},children:[G&&Object(S.jsxs)(r.Suspense,{fallback:Object(S.jsx)("div",{style:{height:"50rem"}}),children:[!h&&Object(S.jsx)(T,{mapStatistic:A,setMapStatistic:F,isCompleteData:B}),Object(S.jsx)(C,{data:G.US})]}),Object(S.jsxs)(S.Fragment,{children:[!W&&Object(S.jsx)("div",{style:{height:"123px"}}),W&&Object(S.jsx)(r.Suspense,{fallback:Object(S.jsx)("div",{style:{height:"123px"}}),children:Object(S.jsx)(k,{timeseries:null===(t=W.US)||void 0===t?void 0:t.dates,date:V,isCompleteData:B})})]})]}
1),G&&Object(S.jsxs)("h4",{className:"fadeInUp",style:{textAlign:"left",padding:"0 20px"},children:["Totals reflect all agencies reporting data for one or more years from ",ae.startYear,"-",ae.endYear,". Filter below to show only agencies that reported data for the complete"," ",ae.startYear,"-",ae.endYear," period."]}),G&&Object(S.jsx)(z,{data:G.US,stateCode:"US",isCompleteData:B}),Object(S.jsxs)("div",{className:"header",children:[Object(S.jsx)("div",{style:{minHeight:"30px"}}),Object(S.jsx)(r.Suspense,{fallback:Object(S.jsx)("div",{}),children:Object(S.jsx)(H,{container:"page"})}),Object(S.jsx)(S.Fragment,{children:!W&&Object(S.jsx)("div",{style:{minHeight:"61px"}})})]}),G&&Object(S.jsx)(r.Suspense,{fallback:Object(S.jsx)(n.a,{}),children:Object(S.jsx)(N,{data:G,regionHighlighted:a,setRegionHighlighted:l,expandTable:h,setExpandTable:M,hideDepartmentData:Z,hideDepartmentTestData:$,lastDataDate:_,noDepartmentDataStates:ee})})]}),Object(S.jsx)("div",{className:O()("home-right",{expanded:h}),ref:K,style:{minHeight:"4rem"},children:(Q||Y.hash)&&Object(S.jsxs)(S.Fragment,{children:[G&&Object(S.jsx)("div",{className:O()("map-container",{expanded:h,stickied:"mapexplorer"===o||h&&X>=769}),children:Object(S.jsxs)(r.Suspense,{fallback:Object(S.jsx)("div",{style:{height:"50rem"}}),children:[Object(S.jsx)(P,{data:G.US,stateCode:"US"}),Object(S.jsx)(U,{stateCode:"US",data:G,mapStatistic:A,setMapStatistic:F,mapView:R,setMapView:I,regionHighlighted:a,setRegionHighlighted:l,anchor:o,setAnchor:d,expandTable:h,lastDataDate:_,hideDepartmentData:Z,hideDepartmentTestData:$,noRegionHighlightedDepartmentData:te})]})}),W&&Object(S.jsx)(r.Suspense,{fallback:Object(S.jsx)("div",{style:{height:"50rem"}}),children:Object(S.jsx)(E,{stateCode:"US",timeseries:W,date:V,regionHighlighted:a,setRegionHighlighted:l,anchor:o,setAnchor:d,expandTable:h,noRegionHighlightedDepartmentData:te})})]})})]}),Q&&Object(S.jsxs)(r.Suspense,{fallback:Object(S.jsx)("div",{}),children:[Object(S.jsx)(w,{}),Object(S.jsx)(y,{})]})]})}},97:function(e,t,a){"use strict";function n(e,t){document.addEventListener(e,t)}function c(e,t){document.removeEventListener(e,t)}function i(e,t){const a=new CustomEvent(e,{detail:t});document.dispatchEvent(a)}a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return c}))}}]); 2//# sourceMappingURL=22.e14b4f2c.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.