(this["webpackJsonpefi-infrastructure-assessment-frontend"]=this["webpackJsonpefi-infrastructure-assessment-frontend"]||[]).push([[0],{349:function(e,t,a){e.exports=a(565)},350:function(e,t,a){0},365:function(e,t,a){},472:function(e,t,a){},541:function(e,t,a){},562:function(e,t,a){},563:function(e,t,a){},564:function(e,t,a){},565:function(e,t,a){"use strict";a.r(t);a(350);var n=a(305),r="https://efi-api-6oo57ylm2q-ue.a.run.app",l="efi-infrastructure-assessment.us.auth0.com",c="IY8Ogwef6p4S7MoaxVWmK0wMaW585kMX",u="pk.eyJ1IjoiZGF2aWQtZWZpIiwiYSI6ImNrY3l4amFpazBlY3gyeG1laXZhOHVndHIifQ.vK7VUuUTudfhX3fKkFQUSg",o="efi-infrastructure-assessment",i="AIzaSyC2KbQalnvl9xeuJ_-ayCPxyQlff0cR5po",d=new(a.n(n).a),s=o&&i;s?d.start({projectId:o,key:i}):console.warn("WARNING: error reporting is not configured");var f=a(306);window.URL||(window.URL=function e(){Object(f.a)(this,e)}),window.URL.createObjectURL||(window.URL.createObjectURL=function(){return""});var p=a(0),m=a(307),b=(a(364),a(23)),E=a(575);a(365);var g=function(){return p.default.createElement("footer",{className:"efi efi-footer"},p.default.createElement(E.a,{textAlign:"center"},"Copyright \xa9 Eye For Infrastructure 2020"))},h=a(21),v=a(588),y=a(585),O=a(205),j=Boolean(window.crypto);function x(e){return j?p.default.createElement(O.a,e):e.children}function k(){return j?O.b.apply(void 0,arguments):{isLoading:!0,isAuthenticated:!1,loginWithRedirect:function(){return null},getAccessTokenSilently:function(){return""}}}var S=a(19),w=a(17);function F(e,t){var a=Object(p.useState)(),n=Object(w.a)(a,2),r=n[0],l=n[1],c=Object(p.useState)(!1),u=Object(w.a)(c,2),o=u[0],i=u[1],d=Object(p.useState)(!1),s=Object(w.a)(d,2),f=s[0],m=s[1],b=Object(p.useState)(!1),E=Object(w.a)(b,2),g=E[0],h=E[1],v=Object(p.useState)(t),y=Object(w.a)(v,2),O=y[0],j=y[1];return{load:Object(p.useCallback)((function(){m(!0),h();for(var t=arguments.length,a=new Array(t),n=0;n2&&void 0!==arguments[2]?arguments[2]:{},n=a.includeToken,r=void 0===n||n,l=k(),c=l.isAuthenticated,u=l.getAccessTokenSilently,o=l.user,i=F((function(){for(var t=arguments.length,a=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return $.post("report",Object(S.a)(Object(S.a)({},e),{},{inputFiles:(e.inputFiles||[]).map((function(e){return{name:e.name}}))}),{params:{includeInputUploadPolicies:!0},headers:t}).then(function(){var a=Object(Z.a)(Y.a.mark((function a(n){return Y.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,a.next=3,Promise.all(n.data.inputFiles.map((function(t,a){return ee(t.uploadPolicy,e.inputFiles[a])})));case 3:return a.next=5,$.put("report",{id:n.data.id,status:"in-progress"},{headers:t});case 5:a.next=12;break;case 7:return a.prev=7,a.t0=a.catch(0),a.next=11,$.put("report",{id:n.data.id,status:"failed"},{headers:t});case 11:throw a.t0;case 12:case"end":return a.stop()}}),a,null,[[0,7]])})));return function(e){return a.apply(this,arguments)}}()).catch(te)},re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.cityId,a=arguments.length>1?arguments[1]:void 0;return $.get("reports",{params:{cityId:t},headers:a}).then((function(e){return e.data})).catch(te)},le=function(e,t){var a=e.id;return $.get("report",{params:{id:a,includeOutputDownloadUrls:!0},headers:t}).then((function(e){return e.data})).catch(te)},ce=function(e,t){var a=e.id;return $.get("report/outputImage",{params:{id:a,includeDownloadUrl:!0},headers:t}).then((function(e){return e.data})).catch(te)},ue=a(130),oe=a(86);function ie(e){var t,a,n,r=e.loading,l=e.report,c=(l.id,l.status),u=e.labelProps;return"failed"===c?t="red":"done"===c&&(t="green"),V[c]?a=V[c]:r&&(a="ellipsis horizontal"),n=Q[c]?Q[c]:r?"Loading":c,p.default.createElement(ue.a,Object.assign({color:t,padded:!0},u),a?p.default.createElement(oe.a,{name:a,size:"large"}):null,n)}ie.defaultProps={report:{},labelProps:{}};var de=ie;function se(e){var t=e.reports,a=Object(h.g)();return t.error?p.default.createElement(E.a,{text:!0},p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error loading reports"),p.default.createElement("p",null,(t.error.error||t.error).toString())),p.default.createElement(H.a,{hidden:!0})):p.default.createElement(q.a,{loading:!t.loaded||t.loading,className:"efi efi-no-space-around",basic:!0},p.default.createElement(B.a,{columns:3,textAlign:"center",selectable:!0},p.default.createElement(B.a.Header,null,p.default.createElement(B.a.Row,null,p.default.createElement(B.a.HeaderCell,null,"Updated"),p.default.createElement(B.a.HeaderCell,null,"Title"),p.default.createElement(B.a.HeaderCell,null,"Status"))),p.default.createElement(B.a.Body,null,t.data.map((function(e,n){return p.default.createElement(B.a.Row,{className:"efi efi-cursor-pointer",role:"button",error:"failed"===e.status,positive:"done"===e.status,onClick:function(){return!t.loading&&t.loaded&&a.push(function(e){var t=e.id;return"".concat(N,"/").concat(t)}({id:e.id}))}},p.default.createElement(B.a.Cell,null,e.updatedAt&&new Date(e.updatedAt).toLocaleString()),p.default.createElement(B.a.Cell,null,e.title),p.default.createElement(B.a.Cell,null,p.default.createElement(de,{loading:!t.loaded||t.loading,report:e,labelProps:{as:b.b}})))})))))}se.defaultProps={reports:{}};var fe=function(){var e=Object(h.g)(),t=P(),a=C(re,[{},{},{},{},{}]);return Object(p.useEffect)((function(){if(t.loaded&&!a.loading){var n=t.data.cityId;if(!a.loaded||n!==a.lastArgs[0].cityId)return a.load({cityId:n}).then((function(t){var a=t.data;t.error;a.length||e.push(A)}))}}),[t,e,a]),p.default.createElement(E.a,null,p.default.createElement(E.a,{text:!0},p.default.createElement(D.a,{as:"h1",textAlign:"center"},"Reports")),p.default.createElement(H.a,{hidden:!0,section:!0}),p.default.createElement(se,{reports:a}),p.default.createElement(H.a,{hidden:!0}),p.default.createElement(q.a,{textAlign:"center",basic:!0},p.default.createElement(W.a,{as:b.b,to:A,positive:!0,centered:!0},"Request a New Report")))},pe=a(337),me=a(581),be=a(591),Ee=a(131);function ge(e){var t=e.files,a=e.groupProps,n=e.fileProps;return t&&t.length?p.default.createElement(q.a.Group,a,t.map((function(e){var t=e.name||e;return p.default.createElement(q.a,Object.assign({},n,{key:t}),p.default.createElement(oe.a,{name:"file",size:"large"})," ",t)}))):null}function he(e){var t=e.buttonProps,a=e.inputProps,n=(e.files,Object(p.useRef)(null));return p.default.createElement(p.default.Fragment,null,p.default.createElement(W.a,Object.assign({type:"button",size:"medium",onClick:function(){n.current&&n.current.click()}},t)),p.default.createElement("input",Object.assign({type:"file",ref:n,hidden:!0},a)))}ge.defaultProps={files:[],groupProps:{},fileProps:{}},he.defaultProps={buttonProps:{},inputProps:{}},he.Files=ge;var ve=he;function ye(e){var t=e.error;return t?p.default.createElement(p.default.Fragment,null,p.default.createElement(H.a,{hidden:!0}),p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error submitting the report"),p.default.createElement("p",null,(t.error||t).toString()))):null}function Oe(e){var t=e.setSubmitted,a=P(),n=C(ne),r=C((function(e,t){return function(e,t){var a=e.title,n=e.cityId;return $.get("reports",{params:{title:a,cityId:n},headers:t}).then((function(e){return 0===e.data.length})).catch(te)}({title:e,cityId:a.data.cityId},t)})),l=Object(p.useMemo)((function(){return e=r.load,Ee.b({title:Ee.c().min(5,"Must be at least 5 characters").max(50,"Must be 50 characters or less").required("Required").test("isReportTitleUnique","Report title is already taken",(function(t){return!t||e(t).then((function(e){return e.data})).catch((function(e){return console.warn("Warning: got error validating report title:",e),!0}))})),inputFiles:Ee.a().min(1,"Must select at least one file").max(20,"Must be 20 files or less").required("Required"),notes:Ee.c().max(1e3,"Must be 1000 characters or less")});var e}),[r.load]),c=Object(pe.a)({initialValues:{},validate:function(){return n.clearError(),{}},onSubmit:function(e){return n.load(Object(S.a)(Object(S.a)({},e),{},{cityId:a.data.cityId})).then((function(e){e.error||t(!0)}))},validationSchema:l,validateOnChange:!1,validateOnBlur:!1});return p.default.createElement(q.a,null,p.default.createElement(me.a,{loading:a.loading||c.isValidating||c.isSubmitting,onSubmit:c.handleSubmit},p.default.createElement(me.a.Input,Object.assign({name:"title",label:"Report title",placeholder:"Enter in a unique name for the report",error:c.errors.title},c.getFieldProps("title"))),p.default.createElement(me.a.Field,{error:c.errors.inputFiles},p.default.createElement("label",null,"Files to process"),p.default.createElement(ve.Files,{files:c.values.inputFiles}),p.default.createElement(ve,{buttonProps:{basic:!0,content:"Select files"},inputProps:{onChange:function(e){e.target.files&&e.target.files.length&&c.setFieldValue("inputFiles",Array.from(e.target.files))},multiple:!0}}),c.errors.inputFiles?p.default.createElement("div",null,p.default.createElement(ue.a,{content:c.errors.inputFiles,hidden:!c.errors.inputFiles,pointing:"above",role:"alert",active:!0,prompt:!0})):null),p.default.createElement(me.a.TextArea,Object.assign({name:"notes",label:"Notes",placeholder:"Enter any additional details about the included files",error:c.errors.notes},c.getFieldProps("notes"))),p.default.createElement(ye,{error:n.error}),p.default.createElement(H.a,{hidden:!0}),p.default.createElement(be.a,{centered:!0,columns:2},p.default.createElement(be.a.Column,null,p.default.createElement(me.a.Button,{content:"Submit",fluid:!0,primary:!0})))))}function je(){return p.default.createElement(U.a,{positive:!0},p.default.createElement(U.a.Header,null,"Report successfully requested"),p.default.createElement("p",null,"When the report is finished processing you should receive an email."),p.default.createElement("p",null,p.default.createElement(b.b,{to:N},"Browse reports")))}var xe=function(){var e=Object(p.useState)(!1),t=Object(w.a)(e,2),a=t[0],n=t[1];return p.default.createElement(E.a,{text:!0},p.default.createElement(D.a,{as:"h1",textAlign:"center"},"Request a New Pavement Condition Report"),p.default.createElement(D.a,{as:"h3",textAlign:"center"},"Street images and geolocation data will be processed and checked for pavement defects."),p.default.createElement(H.a,{hidden:!0,section:!0}),a?p.default.createElement(je,null):p.default.createElement(Oe,{setSubmitted:n}))},ke=a(580),Se=a(339),we=a(582);function Fe(e){var t=e.report,a=(t.loading,t.data);return p.default.createElement(p.default.Fragment,null,a.reasonForFailure?p.default.createElement(me.a.Field,{error:!0},p.default.createElement("label",null,"Reason for failure"),p.default.createElement(U.a,{negative:!0},a.reasonForFailure)):null,a.inputFiles&&a.inputFiles.length?p.default.createElement(me.a.Field,null,p.default.createElement("label",null,"Files to process"),p.default.createElement(q.a.Group,null,a.inputFiles.map((function(e){var t=e.name;return p.default.createElement(q.a,null,p.default.createElement(oe.a,{name:"file",size:"large"})," ",t)})))):null,a.notes?p.default.createElement(me.a.TextArea,{label:"Notes",readonly:!0},a.notes):null)}function Ce(e){var t=e.report;return p.default.createElement(E.a,{text:!0},p.default.createElement(D.a,{as:"h1",textAlign:"center"},"Report Request Details"),p.default.createElement(H.a,{hidden:!0,section:!0}),p.default.createElement(D.a,{as:"h3",textAlign:"center"},(t.data||{}).title),p.default.createElement(me.a,null,p.default.createElement(q.a,{textAlign:"left",padded:!0},p.default.createElement(de,{loading:t.loading,report:t.data,labelProps:{attached:"top"}}),p.default.createElement(Fe,{report:t}))),p.default.createElement(H.a,{hidden:!0}),p.default.createElement(q.a,{textAlign:"center",basic:!0},p.default.createElement(W.a,{as:b.b,to:N,centered:!0},"Return to browsing reports")))}function Ie(e){var t=e.report,a=Object(Se.a)(e,["report"]);return p.default.createElement(we.a,a,p.default.createElement(de,{loading:t.loading,report:t.data,labelProps:{attached:"top"}}),p.default.createElement(we.a.Header,null,"Report Request Details"),p.default.createElement(we.a.Content,null,p.default.createElement(me.a,null,p.default.createElement(Fe,{report:t}))))}Fe.defaultProps={report:{}},Ce.defaultProps={report:{}},Ie.defaultProps={report:{}};var Pe=a(129),Ne=a.n(Pe);a(540),a(541);function Ae(e){var t=e.mapOptions,a=e.containerProps,n=e.mapRef,r=e.children,l=Object(p.useRef)(),c=Object(p.useRef)();return Object(p.useEffect)((function(){a.ref&&!t.container&&console.warn('Warning: cannot set prop "ref" in "containerProps" of ')}),[a.ref,t.container]),Object(p.useEffect)((function(){!l.current&&!t.container||c.current||(c.current=new Ne.a.Map(Object(S.a)({container:l.current},t)),"function"===typeof n?n(c.current):"object"===typeof n&&(n.current=c.current))}),[t,n]),t.container?r:p.default.createElement("div",Object.assign({},a,{className:"efi efi-map-container ".concat(a.classname||""),ref:l}),r)}Ne.a.accessToken=u,Ae.defaultProps={mapOptions:{},containerProps:{},children:null};var Re=Ae,Te="point-map",Me="polygon-map",He=a(577),Ue={Crack:1,Pothole:2,Other:9999};var De=function(e){var t=e.reportMapApi,a=Object(p.useState)(!0),n=Object(w.a)(a,2),r=n[0],l=n[1],c=t.selectedPointMaps,u=t.setSelectedPointMaps,o=t.selectedPolygonMaps,i=t.setSelectedPolygonMaps,d=t.defects,s=t.setDefects,f=t.showAllPoints,m=t.setShowAllPoints,b=t.minSeverity,E=t.setMinSeverity,g=t.maxSeverity,h=t.setMaxSeverity,v=t.outputFiles;if(!d)return null;var y=Object.keys(d).length>0;return p.default.createElement(q.a,{className:"efi efi-map-overlay",textAlign:"left"},p.default.createElement(me.a,null,p.default.createElement(W.a.Group,{floated:"right"},p.default.createElement(W.a,{icon:r?"left chevron":"right chevron",className:"efi efi-report-details-controls-open-button",onClick:function(){return l(!r)},basic:!0})),r?p.default.createElement(p.default.Fragment,null,v.byType[Te].length>0?p.default.createElement(p.default.Fragment,null,p.default.createElement(me.a.Group,{className:"efi efi-report-details-checkboxes-group",grouped:!0},p.default.createElement("label",null,"Display Points"),p.default.createElement("div",{className:"efi efi-report-details-checkboxes"},v.byType[Te].map((function(e,t){var a=e.name;return p.default.createElement(me.a.Checkbox,{key:t,label:a,checked:c[t],onChange:function(){return u(Object(S.a)(Object(S.a)({},c),{},Object(J.a)({},t,!c[t])))}})})))),p.default.createElement(H.a,null)):null,v.byType[Me].length>0?p.default.createElement(p.default.Fragment,null,p.default.createElement(me.a.Group,{className:"efi efi-report-details-checkboxes-group",grouped:!0},p.default.createElement("label",null,"Display Shapes"),p.default.createElement("div",{className:"efi efi-report-details-checkboxes"},v.byType[Me].map((function(e,t){var a=e.name;return p.default.createElement(me.a.Checkbox,{key:t,label:a,checked:o[t],onChange:function(){return i(Object(S.a)(Object(S.a)({},o),{},Object(J.a)({},t,!o[t])))}})})))),p.default.createElement(H.a,null)):null,y&&p.default.createElement(p.default.Fragment,null,p.default.createElement(me.a.Group,{className:"efi efi-report-details-checkboxes-group",grouped:!0},p.default.createElement("label",null,"Display Defects"),p.default.createElement("div",{className:"efi efi-report-details-checkboxes"},Object.keys(d).sort((function(e,t){var a=Ue[e]||99,n=Ue[t]||99;return an})).map((function(e){return p.default.createElement(me.a.Checkbox,{key:e,label:e,checked:d[e],onChange:function(){return s(Object(S.a)(Object(S.a)({},d),{},Object(J.a)({},e,!d[e])))}})})))),p.default.createElement(H.a,null),p.default.createElement(me.a.Checkbox,{label:"Display Items Without Defects",checked:f,onChange:function(){return m(!f)}})),p.default.createElement(me.a.Group,{grouped:!0},p.default.createElement(me.a.Field,null,p.default.createElement("label",null,"Display Severity Range")),p.default.createElement(me.a.Group,null,p.default.createElement(He.a,{type:"number",placeholder:"0",className:"efi efi-report-details-controls-severity-input",value:b,min:0,max:100,onChange:function(e){var t=e.target.value;""!==g&&Number(t)>Number(g)&&h(t),E(t)}}),p.default.createElement(He.a,{type:"number",placeholder:"100",className:"efi efi-report-details-controls-severity-input",value:g,min:0,max:100,onChange:function(e){var t=e.target.value;""!==t&&Number(t)1?p.default.createElement("div",null,p.default.createElement("div",{className:"efi efi-map-popup-image-controls"},p.default.createElement(W.a.Group,null,p.default.createElement(W.a,{icon:"angle double left",disabled:0===l,onClick:function(){return c(0)},basic:!0,compact:!0}),p.default.createElement(W.a,{icon:"angle left",disabled:0===l,onClick:function(){return c(l-1)},basic:!0,compact:!0}),p.default.createElement(W.a,{as:"div",className:"efi efi-no-pointer-events",tabIndex:-1,basic:!0,compact:!0},Ge(P.takenAt)),p.default.createElement(W.a,{icon:"angle right",disabled:l===k.length-1,onClick:function(){return c(l+1)},basic:!0,compact:!0}),p.default.createElement(W.a,{icon:"angle double right",disabled:l===k.length-1,onClick:function(){return c(k.length-1)},basic:!0,compact:!0})))):P?p.default.createElement("div",{className:"efi efi-map-popup-image-controls"},Ge(P.takenAt)):null),p.default.createElement("div",{className:"efi efi-map-popup-defects"},p.default.createElement("div",{className:"efi efi-map-popup-scroll"},p.default.createElement(D.a,{as:"h3"},"Defects"),M.length?p.default.createElement(B.a,{textAlign:"center",celled:!0,compact:!0,selectable:!0},p.default.createElement(B.a.Header,null,p.default.createElement(B.a.Row,null,p.default.createElement(B.a.HeaderCell,null,"ID"),p.default.createElement(B.a.HeaderCell,null,"Type"),p.default.createElement(B.a.HeaderCell,null,"Severity"),p.default.createElement(B.a.HeaderCell,null,"Detected"))),p.default.createElement(B.a.Body,null,M.map((function(e){return p.default.createElement(Le.a,{position:"bottom center",disabled:!Object.keys(e.properties||{}).length,content:p.default.createElement("div",null,Object.keys(e.properties||{}).map((function(t){return p.default.createElement("div",null,p.default.createElement("b",null,t),": ",e.properties[t])}))),trigger:p.default.createElement(B.a.Row,{key:e.id},p.default.createElement(B.a.Cell,null,!L||e.id===m.id&&L===g.id?e.id:p.default.createElement(b.b,{onClick:function(){return i(L,e.id)}},e.id)),p.default.createElement(B.a.Cell,null,e.type),p.default.createElement(B.a.Cell,null,"".concat(Math.round(100*(e.defectSeverity||0)),"%")),p.default.createElement(B.a.Cell,null,!U||e.firstSeenInImageId===m.id&&U===g.id?Ge(e.firstSeenAt):p.default.createElement(b.b,{onClick:function(){return i(U,e.firstSeenInImageId)}},Ge(e.firstSeenAt))))})})))):p.default.createElement("div",null,"No defects in selected image.")))),n.current)}function qe(e){var t=e.image,a=e.setImage,n=e.selectedFeature;return Object(p.useEffect)((function(){var e=function(e){27===e.keyCode&&a(!1)};if(t)return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,a]),t&&n?p.default.createElement("div",{className:"efi efi-map-popup-fullscreen"},p.default.createElement(W.a,{className:"efi efi-map-popup-fullscreen-close-button",icon:"close",onClick:function(){return a(!1)},inverted:!0}),p.default.createElement("img",{className:"efi efi-map-popup-fullscreen-image efi-centered",alt:"fullscreen",src:t})):null}ze.defaultProps={selectedFeature:{}};var Be=a(173),We=a(336);function Je(e){var t=e.properties,a=t.defects,n=t.images;return Object(S.a)(Object(S.a)({},e),{},{geometry:e.geometry,properties:Object(S.a)(Object(S.a)({},t),{},{defects:"string"===typeof a?JSON.parse(a):a,images:"string"===typeof n?JSON.parse(n):n})})}var Ve={base:4,stops:[[12,4],[22,180]]},Qe=["==","1","0"];function Ke(e){var t=e.report,a=function(e){var t=e.data,a=Object(p.useRef)(),n=Object(p.useRef)(),r=Object(p.useRef)(),l=Object(p.useState)(!1),c=Object(w.a)(l,2),u=c[0],o=c[1],i=Object(p.useState)(!1),d=Object(w.a)(i,2),s=d[0],f=d[1],m=Object(p.useState)(!1),b=Object(w.a)(m,2),E=b[0],g=b[1],h=Object(p.useState)(0),v=Object(w.a)(h,2),y=v[0],O=v[1],j=Object(p.useState)([[],[]]),x=Object(w.a)(j,2),k=x[0],C=x[1],I=Object(p.useState)({}),N=Object(w.a)(I,2),A=N[0],R=N[1],T=Object(p.useState)({}),M=Object(w.a)(T,2),H=M[0],U=M[1],D=Object(p.useState)(!0),L=Object(w.a)(D,2),G=L[0],z=L[1],q=Object(p.useState)({}),B=Object(w.a)(q,2),W=B[0],V=B[1],Q=Object(p.useState)(0),K=Object(w.a)(Q,2),Y=K[0],Z=K[1],X=Object(p.useState)(100),_=Object(w.a)(X,2),$=_[0],ee=_[1],te=P(),ae={style:"mapbox://styles/mapbox/streets-v11",zoom:2};te.loaded&&te.data.city.coords&&(ae.center=[te.data.city.coords.long,te.data.city.coords.lat],ae.zoom=12);var ne=Object(p.useMemo)((function(){var e,a={byType:(e={},Object(J.a)(e,Te,[]),Object(J.a)(e,Me,[]),Object(J.a)(e,"export-file",[]),e),byId:{},icons:[]};return t.outputFiles.forEach((function(e){var t=e.id,n=e.type,r=e.icon;void 0===a.byType[n]&&(a.byType[n]=[]),a.byType[n].push(e),a.byId[t]=e,r&&a.icons.indexOf(r)<0&&a.icons.push(r)})),a}),[t]);Object(p.useEffect)((function(){var e={};ne.byType[Te].forEach((function(t,a){e[a]=t.defaultOn})),R(e);var t={};ne.byType[Me].forEach((function(e,a){t[a]=e.defaultOn})),U(t)}),[ne]);var re=F((function(){return new Promise((function(e,t){ne.byType["export-file"].length>1&&console.warn("WARNING: more than one export file is attached to the report, but only one is currently supported.");try{re.clearError(),Object(We.saveAs)(ne.byType["export-file"][0].downloadUrl,ne.byType["export-file"][0].name),e()}catch(s){throw console.error(s),new Error("Could not save file, please try again later")}}))}));Object(p.useEffect)((function(){var e={},t=function(t){void 0===W[t]?e[t]=!0:e[t]=W[t]};Object.keys(A).forEach((function(e){return((ne.byType[Te][e]||{}).defectTypes||[]).forEach(t)})),Object.keys(H).forEach((function(e){return((ne.byType[Me][e]||{}).defectTypes||[]).forEach(t)})),V(e)}),[ne,A,H]);var le=Object(p.useMemo)((function(){var e=["any"];return Object.keys(W).forEach((function(t){W[t]&&e.push(["in",t,["get","defectTypes"]])})),e}),[W]),ce=Object(p.useMemo)((function(){var e=["all",["<=",(""===Y?0:Number(Y))/100,["get","defectSeverity"]],[">=",(""===$?100:Number($))/100,["get","defectSeverity"]]];return G||(le.length>1?e.push(le):e=Qe),e}),[le,Y,$,G]),ue=Object(p.useCallback)((function(e,t,a){var n=e;return le.length>1&&(n=["case",le,["interpolate",["linear"],["get","defectSeverity"],0,t,1,a],n]),n}),[le]),oe=Object(p.useCallback)((function(e){var t,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,c=e.geometry,u=c.coordinates,o=c.type;if("Polygon"===o)if(e.properties.center)t=e.properties.center;else{var i=0,d=0,s=u[0];s.forEach((function(e){i+=e[0],d+=e[1]})),i/=s.length,d/=s.length,t=[i,d]}else t=u;n.current&&n.current.remove();var f=new Ne.a.Popup({anchor:"bottom",maxWidth:"none",closeButton:!1}).setLngLat(t).setHTML('
').addTo(a.current);n.current=f,r.current=f.getElement().getElementsByClassName("report-details-popup")[0];var p=Je(e);g(p),O(l),a.current.flyTo({center:t,padding:{top:375},speed:.3,curve:0})}),[]),ie=Object(p.useCallback)((function(e,t){if(e&&t!==E.properties.id){var n=a.current.querySourceFeatures(e,{filter:["==",t,["get","id"]]})[0];n&&(n.layer={id:e},C([[].concat(Object(Be.a)(k[0]),[[E,y]]),[]]),oe(n))}}),[k,oe,E,y]),de=Object(p.useCallback)((function(){var e=Object(w.a)(k,2),t=e[0],a=e[1],n=Object(w.a)(t[t.length-1],2),r=n[0],l=n[1];oe(r,l),C([t.slice(0,-1),[[E,y]].concat(Object(Be.a)(a))])}),[k,oe,E,y]),se=Object(p.useCallback)((function(){var e=Object(w.a)(k,2),t=e[0],a=e[1],n=Object(w.a)(a[0],2),r=n[0],l=n[1];oe(r,l),C([[].concat(Object(Be.a)(t),[[E,y]]),a.slice(1)])}),[k,oe,E,y]);return Object(p.useEffect)((function(){var e=a.current;if(u&&e){var t={value:0},n=function(){t.value+=1,e.getCanvas().style.cursor="pointer"},r=function(){t.value-=1,0===t.value&&(e.getCanvas().style.cursor="")},l=function(e){var t=Object(w.a)(e.features,1)[0],a=e.originalEvent;a.cancelBubble||(a.cancelBubble=!0,oe(t),C([[],[]]))};return Object.keys(A).forEach((function(t){var a=ne.byType[Te][t].id;e.on("mouseenter",a,n),e.on("mouseleave",a,r),e.on("click",a,l)})),Object.keys(H).forEach((function(t){var a=ne.byType[Me][t].id;e.on("mouseenter",a,n),e.on("mouseleave",a,r),e.on("click",a,l)})),function(){Object.keys(A).forEach((function(t){var a=ne.byType[Te][t].id;e.off("mouseenter",a,n),e.off("mouseleave",a,r),e.off("click",a,l)})),Object.keys(H).forEach((function(t){var a=ne.byType[Me][t].id;e.off("mouseenter",a,n),e.off("mouseleave",a,r),e.off("click",a,l)}))}}}),[u,ne,oe,A,H]),Object(p.useEffect)((function(){var e=a.current;u&&e&&(ne.byType[Me].forEach((function(t,a){var n=t.id;H[a]?(e.setFilter(n,ce),e.setPaintProperty(n,"fill-color",ue("rgba(0, 0, 255, 0.25)","rgba(136, 0, 136, 0.25)","rgba(255, 0, 0, 0.25)"))):e.setFilter(n,Qe)})),ne.byType[Te].forEach((function(t,a){var n=t.id,r=t.icon;A[a]?(e.setFilter(n,ce),r||e.setPaintProperty(n,"circle-color",ue("rgb(0, 0, 255)","rgb(136, 0, 136)","rgb(255, 0, 0)"))):e.setFilter(n,Qe)})))}),[u,ne,ce,ue,H,A]),{user:te,mapRef:a,setMapRef:function(e){e.on("error",(function(e){console.error(e),f("Mapbox error, please try again later")})),e.on("load",(function(t){a.current=e,[Me,Te].forEach((function(t){return ne.byType[t].forEach((function(t){var a=t.id,n=t.downloadUrl;return e.addSource(a,{type:"geojson",data:n})}))})),Promise.all(ne.icons.map((function(t){return e.loadImage("/img/icons/".concat(t,".png"),(function(a,n){a?console.error("Error loading image:",a):e.addImage(t,n)}))}))).then((function(){ne.byType[Me].forEach((function(t){var a=t.id;return e.addLayer({id:a,type:"fill",source:a,paint:{"fill-color":"rgb(0, 0, 255)"},filter:Qe})})),ne.byType[Te].forEach((function(t){var a=t.id,n=t.icon;return e.addLayer(Object(S.a)({id:a,source:a,filter:Qe},n?{type:"symbol",layout:{"icon-image":n}}:{type:"circle",paint:{"circle-radius":Ve,"circle-color":"rgba(0, 0, 255, 0.25)"}}))})),o(!0)}))}))},mapOptions:ae,popupRef:n,popupElRef:r,loaded:u,error:s,selectedFeature:E,onSetFeature:oe,selectedImage:y,setSelectedImage:O,featureHistory:k,setFeatureHistory:C,onSetOutputFileFeature:ie,onPrevFeatureHistory:de,onNextFeatureHistory:se,selectedPointMaps:A,setSelectedPointMaps:R,selectedPolygonMaps:H,setSelectedPolygonMaps:U,defects:W,setDefects:V,showAllPoints:G,setShowAllPoints:z,minSeverity:Y,setMinSeverity:Z,maxSeverity:$,setMaxSeverity:ee,outputFiles:ne,gisExport:re}}(t),n=Object(p.useState)(!1),r=Object(w.a)(n,2),l=r[0],c=r[1],u=a.error,o=a.loaded,i=a.user,d=a.mapOptions,s=a.setMapRef,f=a.defects,m=a.selectedFeature,g=a.gisExport,h=a.outputFiles;return p.default.createElement(E.a,{className:"efi efi-report"},p.default.createElement(D.a,{as:"h2",textAlign:"center"},t.data.title),p.default.createElement(H.a,{hidden:!0}),u?p.default.createElement(E.a,{text:!0},p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error loading the map"),p.default.createElement("p",null,u.toString()))):p.default.createElement(q.a,{className:"efi efi-no-space-around",textAlign:"center"},p.default.createElement("div",{className:"efi efi-report-map-container"},i.loaded?p.default.createElement(Re,{mapOptions:d,mapRef:s},p.default.createElement(ke.a,{active:!o||!f}),p.default.createElement(De,{reportMapApi:a}),p.default.createElement(ze,{reportMapApi:a,setExpandedImage:c})):p.default.createElement(ke.a,{active:!0}))),p.default.createElement(qe,{image:l,setImage:c,selectedFeature:m}),p.default.createElement(E.a,null,p.default.createElement(q.a,{textAlign:"center",basic:!0},g.error?p.default.createElement(E.a,{text:!0},p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error downloading the GeoJSON file"),p.default.createElement("p",null,g.error.toString()))):null,p.default.createElement(be.a,{columns:h.byType["export-file"].length?3:2,doubling:!0,centered:!0,padded:!0},p.default.createElement(be.a.Column,null,p.default.createElement(W.a,{as:b.b,to:N,fluid:!0},"Return to browsing reports")),p.default.createElement(be.a.Column,null,p.default.createElement(Ie,{report:t,trigger:p.default.createElement(W.a,{fluid:!0},"View report request details")})),h.byType["export-file"].length?p.default.createElement(be.a.Column,null,p.default.createElement(W.a,{as:"a",active:!g.loading,loading:g.loading,onClick:g.load,fluid:!0,primary:!0},"Export GIS Files")):null))))}Ke.defaultProps={report:{}};var Ye=Ke;a(562);var Ze=function(){var e=Object(h.i)().id,t=C(le);return Object(p.useEffect)((function(){if(t.isAuthenticated&&!t.loading&&(!t.loaded||t.lastArgs[0].id!==e))return t.load({id:e})}),[t,e]),!t.loaded||t.loading?p.default.createElement(ke.a,{active:!0,size:"large"}):t.error?p.default.createElement(E.a,{text:!0},p.default.createElement(H.a,{section:!0,hidden:!0}),p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error retrieving the report"),p.default.createElement("p",null,(t.error.error||t.error).toString()))):"done"!==t.data.status?p.default.createElement(Ce,{report:t}):p.default.createElement(Ye,{report:t})};var Xe=function(){var e=k(),t=e.loginWithRedirect,a=e.isLoading,n=e.isAuthenticated,r=e.error,l=P();return Object(p.useEffect)((function(){n||a||r||t()})),r||l.error?p.default.createElement(E.a,{text:!0},p.default.createElement(H.a,{section:!0,hidden:!0}),p.default.createElement(U.a,{negative:!0},p.default.createElement(U.a.Header,null,"There was an error authenticating"),p.default.createElement("p",null,"Please try again later"))):p.default.createElement(h.d,null,p.default.createElement(h.a,{exact:!0,preserveQueryString:!0,from:"".concat("","/"),to:N}),p.default.createElement(h.b,{exact:!0,path:N},p.default.createElement(fe,null)),p.default.createElement(h.b,{exact:!0,path:A},p.default.createElement(xe,null)),p.default.createElement(h.b,{exact:!0,path:R},p.default.createElement(Ze,null)),p.default.createElement(h.b,null,p.default.createElement(z,null)))};var _e=function(e){var t=e.children,a=C(ae,{});return Object(p.useEffect)((function(){!a.isAuthenticated||a.loading||a.loaded||a.error||a.load({auth0Id:a.auth0User.sub})})),p.default.createElement(I.Provider,{value:a},t)},$e=(a(563),r),et=l,tt=c;var at=function(){return p.default.createElement("div",{className:"efi efi-app"},p.default.createElement(b.a,null,p.default.createElement(x,{domain:et,clientId:tt,redirectUri:"".concat(window.location.origin).concat(N),audience:$e},p.default.createElement(_e,null,p.default.createElement(T,null),p.default.createElement(M,null,p.default.createElement(Xe,null)),p.default.createElement(g,null)))))};a(564);Object(m.render)(p.default.createElement(p.default.StrictMode,null,p.default.createElement(at,null)),document.getElementById("root"))}},[[349,1,2]]]); //# sourceMappingURL=main.1c4df1ff.chunk.js.map