From f20aef69acb1065519d7761e0a2b592a3482ed94 Mon Sep 17 00:00:00 2001 From: FritzHoing <100765498+FritzHoing@users.noreply.github.com> Date: Tue, 25 Jul 2023 12:39:41 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20terrestr?= =?UTF-8?q?is/shogun-gis-client@7bb96441db4e90d5b890e19cf28f1b885f45a9ff?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- latest/common.b62c54aee16fe13cf356.js | 2 ++ latest/common.b62c54aee16fe13cf356.js.map | 1 + latest/common.e924cc3a3435a3edcda5.js | 2 -- latest/common.e924cc3a3435a3edcda5.js.map | 1 - latest/index.html | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 latest/common.b62c54aee16fe13cf356.js create mode 100644 latest/common.b62c54aee16fe13cf356.js.map delete mode 100644 latest/common.e924cc3a3435a3edcda5.js delete mode 100644 latest/common.e924cc3a3435a3edcda5.js.map diff --git a/latest/common.b62c54aee16fe13cf356.js b/latest/common.b62c54aee16fe13cf356.js new file mode 100644 index 000000000..65d035513 --- /dev/null +++ b/latest/common.b62c54aee16fe13cf356.js @@ -0,0 +1,2 @@ +(self.webpackChunk_terrestris_shogun_gis_client=self.webpackChunk_terrestris_shogun_gis_client||[]).push([[592],{80209:function(e,t,r){"use strict";r.r(t),r.d(t,{App:function(){return pi},default:function(){return gi}});var a=r(96985),n=r.n(a),o=r(38648),i=r(50146),l=r(71577),s=r(77808),c=r(34041),u=r(52697),d=r(74187),m=r(23213),p=r.n(m),g=r(63698),f=r.n(g),y=r(87851),h=r.n(y),E=r(73590),b=r(92212),w=r.n(b),v=r(49413),S=r.n(v),L=r(54388),T=r.n(L),k=r(60962),P=r.n(k),F=r(14589);var C=()=>(0,F.useDispatch)();const Z=F.useSelector;var M=Z,A=r(20908),O=r(93379),N=r.n(O),D=r(7795),I=r.n(D),j=r(90569),x=r.n(j),R=r(3565),U=r.n(R),B=r(19216),z=r.n(B),_=r(44589),$=r.n(_),G=r(40171),V={};V.styleTagTransform=$(),V.setAttributes=U(),V.insert=x().bind(null,"head"),V.domAPI=I(),V.insertStyleElement=z();N()(G.Z,V),G.Z&&G.Z.locals&&G.Z.locals;function W(){return W=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[t,r]=(0,a.useState)(!1),[m,g]=(0,a.useState)([]),[y,b]=(0,a.useState)([]),[v,L]=(0,a.useState)("https://sgx.geodatenzentrum.de/wms_topplus_open"),[P,F]=(0,a.useState)(),[Z,O]=(0,a.useState)("1.3.0"),N=M((e=>e.addLayerModal.visible)),D=C(),I=(0,k.useMap)(),{t:j}=(0,E.useTranslation)();(0,a.useEffect)((()=>{N&&F(w().createValidGetCapabilitiesRequest(v,"WMS",Z))}),[Z,N,v]);const x=()=>{b([]),g([]),D((0,A.Cp)())},R=e=>{if(!I)return;const t=j("AddLayerModal.externalWmsFolder");let r=T().getLayerByName(I,t);if(!r){r=new(p())({layers:[]}),r.set("name",t);const e=I.getLayerGroup().getLayers();e.insertAt(e?.getLength()||0,r)}e.forEach((e=>{if(!r.getLayers().getArray().includes(e)){let t;if(e.set("isExternalLayer",!0),e instanceof f()&&(t=e.getSource()?.getUrl()),e instanceof h()){const r=e.getSource()?.getUrls();t=1===r?.length?r[0]:void 0}const a={name:e.get("name"),type:e instanceof h()?"TILEWMS":"WMS",opacity:e.getOpacity(),sourceConfig:{layerNames:e.getSource()?.getParams().LAYERS,url:t,useBearerToken:!1}};e.set("layerConfig",a),r.getLayers().push(e)}})),x()};return n().createElement(i.Z,W({className:"add-layer-modal",title:j("AddLayerModal.title"),open:N,onCancel:x,width:600,footer:[n().createElement(l.Z,{"aria-label":"add-all",key:"add-all",disabled:m?.length<1,onClick:()=>{R(m)}},j("AddLayerModal.addAllLayers")),n().createElement(l.Z,{"aria-label":"add-selected",key:"add-selected",disabled:y?.length<1,onClick:()=>{const e=m.filter((e=>y.includes((0,d.getUid)(e))));R(e)}},j("AddLayerModal.addSelectedLayers"))]},e),n().createElement(s.Z.Search,{"aria-label":"input-search",placeholder:j("AddLayerModal.inputPlaceholder"),value:v,onChange:e=>{L(e.target.value)},onSearch:async()=>{if(P)try{r(!0);const e=await S().getWmsCapabilities(P),t=S().getLayersFromWmsCapabilities(e,"Title");g(t)}catch(e){o.Z.error({message:j("AddLayerModal.errorMessage"),description:j("AddLayerModal.errorDescription")})}finally{r(!1)}},enterButton:!0,addonBefore:n().createElement(c.default,{"aria-label":"select-version",defaultValue:"1.3.0",onChange:O,options:[{value:"1.3.0",label:`${j("AddLayerModal.version")} 1.3.0`},{value:"1.1.1",label:`${j("AddLayerModal.version")} 1.1.1`}]})}),n().createElement(u.Z,{"aria-label":"wms-table",loading:t,columns:[{title:j("AddLayerModal.columnTitle"),render:(e,t)=>t.get("title")}],rowKey:e=>(0,d.getUid)(e),rowSelection:{selectedRowKeys:y,onChange:b},pagination:!1,dataSource:m}))},H=r(96024),Y=r(90225),q=r.n(Y),J=r(76688);const X=()=>(0,a.useContext)(J.ZP);var Q=X;function ee(){return ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=P()(),r=Q(),{t:o,i18n:i}=(0,E.useTranslation)();(0,a.useEffect)((()=>{if(!t)return;const e=T().getLayersByProperty(t,"isExternalLayerGroup",!0);if(1!==e?.length)return;const r=e[0],a=e[0].get("name");r.set("name",o("AddLayerModal.externalWmsFolder"));const n=new H.ObjectEvent("change:layers","name",a);r.dispatchEvent(n)}),[i.language,t,o]);const l=[];return r&&r.forEach((e=>{if((t=e.integration)&&"map"===t.placement){const{key:t,wrappedComponent:r}=e;l.push(n().createElement(r,{key:t}))}var t})),t?n().createElement(q(),ee({map:t},e),l):n().createElement(n().Fragment,null)},re=r(76772),ae=r(87617),ne=r.n(ae),oe=r(78494),ie=r.n(oe),le=r(67914),se=r(61663),ce=r(43922),ue=r.n(ce),de=r(28630),me=r.n(de),pe=r(78459),ge=r(77257);var fe=()=>(0,a.useContext)(ge.ZP);var ye=()=>{const e=fe();return(0,a.useCallback)((async t=>{let r;const a=t.layer.getSource();if(a instanceof ue()&&(r=a.getUrl()),a instanceof me()){const e=a.getUrls();r=e?e[0]:void 0}if(!r)return;r.endsWith("?")&&(r=r.slice(0,-1));const n={"Content-Type":"application/xml"},o=await fetch(r,{method:"POST",headers:t.layer?.get("useBearerToken")?{...n,...(0,pe.getBearerTokenHeader)(e?.getKeycloak())}:n,body:(new XMLSerializer).serializeToString(t.transaction)});if(!o.ok)throw new Error("No successful response while executing a WFS-Transaction");const i=await o.text();if((new DOMParser).parseFromString(i,"text/xml").getElementsByTagName("wfs:FAILED").length>0)throw new Error(`Something failed: ${i}`);return i}),[e])},he=r(30381),Ee=r.n(he),be=r(67829),we=r(31100),ve=r.n(we);const Se=e=>["gml:MultiPoint","gml:Point","gml:MultiLineString","gml:LineString","gml:MultiPolygon","gml:Polygon"].includes(e);var Le=()=>{const e=fe();return(0,a.useCallback)((async t=>{let r;const a=t.getSource();if(a instanceof ue()&&(r=a.getUrl()),a instanceof me()){const e=a.getUrls();r=e?e[0]:void 0}if(!r)return;r.endsWith("?")&&(r=r.slice(0,-1));const n={SERVICE:"WFS",REQUEST:"DescribeFeatureType",VERSION:"2.0.0",OUTPUTFORMAT:"application/json",TYPENAMES:t.getSource()?.getParams().LAYERS},o={"Content-Type":"application/json"},i=await fetch(`${r}?${w().objectToRequestString(n)}`,{method:"GET",headers:t.get("useBearerToken")?{...o,...(0,pe.getBearerTokenHeader)(e?.getKeycloak())}:o});if(!i.ok)throw new Error("No successful response while executing a WFS-Transaction");return await i.json()}),[e])};var Te=()=>{const e=P()(),t=Le(),r=e=>{const t={...e.getFieldsValue()};for(const[r,a]of Object.entries(t))void 0===a&&(t[r]=null),e.getFieldInstance(r)||delete t[r],(0,he.isMoment)(a)&&(t[r]=a.toISOString());return t};return(0,a.useCallback)((async a=>{if(!e)return;const n=[],o=[],i=[],l=await t(a.layer);if(!l)return;const s=l.featureTypes[0]?.properties?.find((e=>Se(e.type)));let c=!1;if(a.upsertFeatures)for(const e of a.upsertFeatures){const t=new(ie()),i=e.getGeometry()?.clone();i&&!(0,be.isEmpty)(i.getExtent())&&(t.set(s?.name||"geom",i),t.setGeometryName(s?.name||"geom")),a.form&&t.setProperties(r(a.form));const l=!!e.getId();l&&!c&&(c=!0),l&&t.setId(e.getId()),l?o.push(t):n.push(t)}a.deleteFeatures&&i.push(...a.deleteFeatures);const u={featureNS:l.targetNamespace,featurePrefix:l.targetPrefix,featureType:a.layer.getSource()?.getParams().LAYERS,srsName:e.getView().getProjection().getCode(),version:"1.1.0",nativeElements:[]},d=(new(ve())).writeTransaction(n,o,i,u);if(c&&ne().wfsLockFeatureEnabled){const e=d.getRootNode(),t=document.createElementNS("http://www.opengis.net/wfs","LockId"),r=document.createTextNode("GeoServer");t.appendChild(r),e.appendChild(t)}return d}),[t,e])},ke=r(61465),Pe=r(68781),Fe=r(273),Ce=r(69616),Ze={};Ze.styleTagTransform=$(),Ze.setAttributes=U(),Ze.insert=x().bind(null,"head"),Ze.domAPI=I(),Ze.insertStyleElement=z();N()(Ce.Z,Ze),Ce.Z&&Ce.Z.locals&&Ce.Z.locals;function Me(){return Me=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const o=P()();(0,a.useEffect)((()=>{document.querySelectorAll("#map")[0]?.classList.toggle("bisected",!!e)}),[e]);return n().createElement(Fe.Z,Me({className:"map-drawer",mask:!1,open:e,placement:"right",width:getComputedStyle(document.documentElement).getPropertyValue("--editDrawerWidth"),afterOpenChange:()=>{o?.updateSize()}},r),t)},Oe=r(50963),Ne=r(50361),De=r.n(Ne),Ie=r(22177);var je=()=>{const e=fe(),t=P()(),r=Le();return(0,a.useCallback)((async a=>{if(!t)return;const n=await r(a.layer);if(!n)return;let o;const i=a.layer.getSource();if(i instanceof ue()&&(o=i.getUrl()),i instanceof me()){const e=i.getUrls();o=e?e[0]:void 0}if(!o)return;o.endsWith("?")&&(o=o.slice(0,-1));const l=(new(ve())).writeGetFeature({srsName:t.getView().getProjection().getCode(),featureNS:n.targetNamespace,featurePrefix:n.targetPrefix,featureTypes:[i?.getParams().LAYERS],outputFormat:"application/json",filter:a.filter}),s={"Content-Type":"application/json"},c=await fetch(o,{method:"POST",headers:a.layer?.get("useBearerToken")?{...s,...(0,pe.getBearerTokenHeader)(e?.getKeycloak())}:s,body:(new XMLSerializer).serializeToString(l)});if(!c.ok)throw new Error("No successful response");return await c.json()}),[e,r,t])},xe=r(59417),Re=r(70982),Ue=r(36609),Be=r(41609),ze=r.n(Be),_e=r(11939),$e=r.n(_e),Ge=r(51085),Ve=r.n(Ge),We=r(10743),Ke=r.n(We),He=r(41380),Ye=r.n(He),qe=r(76831),Je=r.n(qe),Xe=r(99901),Qe=r.n(Xe),et=r(23697),tt=r.n(et),rt=r(83238),at=r(5687),nt={};nt.styleTagTransform=$(),nt.setAttributes=U(),nt.insert=x().bind(null,"head"),nt.domAPI=I(),nt.insertStyleElement=z();N()(at.Z,nt),at.Z&&at.Z.locals&&at.Z.locals;function ot(){return ot=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const r=(0,a.useRef)({past:[],future:[]}),o=(0,k.useMap)(),[i,l]=(0,a.useState)(),[,s]=(0,a.useState)(0),c=(0,a.useMemo)((()=>new($e())),[]),u=M((e=>e.editFeature.userEditMode));(0,a.useEffect)((()=>{if(o)return i||l(rt.DigitizeUtil.getDigitizeLayer(o)),()=>{i&&o?.removeLayer(i)}}),[i,o]),(0,a.useEffect)((()=>{if(i&&e?.id){i.getSource()?.clear();const t=c.readFeature(e),r=i.getSource();r.addFeature(t),s((e=>e+1)),(0,be.isEmpty)(r.getExtent())||o?.getView().fit(r.getExtent(),{padding:[50,50,50,50]})}}),[e,i,c,o]);const d=()=>{const e=i?.getSource(),a=e?.getFeatures();if(!a)return;const n=c.writeFeaturesObject(a),o=r.current.past[r.current.past.length-1];ze()(o)||(e?.clear(),e?.addFeatures(c.readFeatures(o)),r.current={past:r.current.past.slice(0,-1),future:[...r.current.future,n].slice(-t)},s((e=>e+1)))},m=()=>{const e=i?.getSource(),a=e?.getFeatures();if(!a)return;const n=c.writeFeaturesObject(a),o=r.current.future[r.current.future.length-1];ze()(o)||(e?.clear(),e?.addFeatures(c.readFeatures(o)),r.current={future:r.current.future.slice(0,-1),past:[...r.current.past,n].slice(-t)},s((e=>e+1)))},p=t=>{g(),e.geometry.type.toLocaleLowerCase().startsWith("multi")||i?.getSource()?.clear()},g=()=>{const e=i?.getSource()?.getFeatures();if(!e)return;const t=c.writeFeaturesObject(e);r.current={...r.current,past:[...r.current.past,t].slice(-10)},s((e=>e+1))},f={tooltipPlacement:"left",tooltipProps:{mouseEnterDelay:.5}};return i&&u.includes("EDIT_GEOMETRY")?n().createElement(tt(),{className:"geometry-edit-tb",alignment:"vertical"},n().createElement(Qe(),null,u.includes("CREATE")?n().createElement(Ke(),ot({icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.TzT}),pressedIcon:n().createElement(Re.FontAwesomeIcon,{icon:xe.TzT}),name:"draw",digitizeLayer:i,tooltip:(0,Ue.t)("EditFeatureGeometryToolbar.draw"),drawType:e.geometry.type,onDrawEnd:p},f)):n().createElement(n().Fragment,null),u.includes("UPDATE")?n().createElement(Ye(),ot({icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.ubJ}),pressedIcon:n().createElement(Re.FontAwesomeIcon,{icon:xe.ubJ}),name:"edit",digitizeLayer:i,tooltip:(0,Ue.t)("EditFeatureGeometryToolbar.edit"),onModifyStart:g,onModifyEnd:g,onTranslateEnd:g},f)):n().createElement(n().Fragment,null),u.includes("DELETE")?n().createElement(Ve(),ot({icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.$aW}),pressedIcon:n().createElement(Re.FontAwesomeIcon,{icon:xe.$aW}),name:"delete",digitizeLayer:i,tooltip:(0,Ue.t)("EditFeatureGeometryToolbar.delete"),onFeatureRemove:g},f)):n().createElement(n().Fragment,null)),n().createElement(Je(),ot({icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.X7o}),tooltip:(0,Ue.t)("EditFeatureGeometryToolbar.undo"),onClick:d,disabled:0===r.current.past?.length},f)),n().createElement(Je(),ot({icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.X7o,flip:"horizontal"}),tooltip:(0,Ue.t)("EditFeatureGeometryToolbar.redo"),onClick:m,disabled:0===r.current.future?.length},f))):n().createElement(n().Fragment,null)},lt=r(72488),st=r(98859),ct=r(9676),ut=r(48301),dt=r(48592),mt=r(12028),pt=r(23279),gt=r.n(pt),ft=r(12038),yt=r.n(ft),ht=r(37477),Et=r(9253),bt=r(58904),wt={};wt.styleTagTransform=$(),wt.setAttributes=U(),wt.insert=x().bind(null,"head"),wt.domAPI=I(),wt.insertStyleElement=z();N()(bt.Z,wt),bt.Z&&bt.Z.locals&&bt.Z.locals;function vt(){return vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[o,s]=(0,a.useState)(!1),{t:c}=(0,E.useTranslation)();return e?n().createElement(n().Fragment,null,n().createElement(l.Z,{className:"json-modal-button",title:c("JsonModal.buttonTitle",{propertyName:t}),onClick:()=>{s(!0)},icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.IA$})},c("JsonModal.buttonTitle",{propertyName:t})),n().createElement(i.Z,vt({open:o,onCancel:()=>{s(!1)},width:800,title:t,footer:!1},r),n().createElement(Et.ZP,{height:"500px",language:"json",value:JSON.stringify(JSON.parse(e),null," "),options:{automaticLayout:!0,readOnly:!0,lineNumbers:"off",scrollBeyondLastLine:!1,minimap:{enabled:!1},scrollbar:{useShadows:!1},showFoldingControls:"always",selectionHighlight:!1,renderLineHighlight:"none",occurrencesHighlight:!1}}))):n().createElement(n().Fragment,null)};function Lt(){return Lt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:i}=(0,E.useTranslation)();let l="";"string"==typeof r&&(l=r),"boolean"==typeof r&&(l=i(r?"DisplayField.yesText":"DisplayField.noText")),Number.isFinite(r)&&(l=(new Intl.NumberFormat).format(Number(r))),(0,he.isMoment)(r)&&(l=r.format(e)),Array.isArray(r)&&(l=r.join(", "));return r&&(e=>{let t="string"!=typeof e?JSON.stringify(e):e;try{t=JSON.parse(t)}catch(e){return!1}return"object"==typeof t&&null!==t})(r)?n().createElement(St,{value:r,label:a}):n().createElement(ht.Z.Text,Lt({className:"displayfield"},o),l,l&&t?` ${t}`:"")},kt=r(99327),Pt={};Pt.styleTagTransform=$(),Pt.setAttributes=U(),Pt.insert=x().bind(null,"head"),Pt.domAPI=I(),Pt.insertStyleElement=z();N()(kt.Z,Pt),kt.Z&&kt.Z.locals&&kt.Z.locals;function Ft(){return Ft=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const a=C(),o=M((e=>e.editFeature.formDirty)),i=e=>n().createElement(Tt,e.fieldProps),l=e=>{switch(e.component){case"CHECKBOX":return n().createElement(ct.Z,e?.fieldProps);case"DATE":return n().createElement(ut.Z,e?.fieldProps);case"DISPLAY":return n().createElement("span",e?.fieldProps);case"INPUT":return n().createElement(s.Z,e?.fieldProps);case"NUMBER":return n().createElement(dt.Z,e?.fieldProps);case"SELECT":return n().createElement(c.default,Ft({allowClear:!0},e?.fieldProps));case"SWITCH":return n().createElement(mt.Z,e?.fieldProps);case"TEXTAREA":return n().createElement(s.Z.TextArea,e?.fieldProps);default:return yt().error(`Component type "${e?.component}" is not supported`),n().createElement(n().Fragment,null)}};return n().createElement(st.Z,Ft({className:"edit-feature-form",form:t,labelCol:{span:8},labelAlign:"left",labelWrap:!0,onValuesChange:gt()((async e=>{e&&!o&&a((0,ke.uQ)(!0))}),250)},r),e?.map((e=>{let t;e.readOnly?t=i(e):e.component?t=l(e):(yt().warn("FieldConfig is missing `readOnly`, `component` or `dataType` property."),t=n().createElement(s.Z,{key:e.propertyName,placeholder:""}));const r={rules:[]};return r.rules=[{required:e.required}],"SWITCH"!==e.component&&"CHECKBOX"!==e.component||e.readOnly||(r.valuePropName="checked"),"UPLOAD"!==e.component||e.readOnly||(r.valuePropName="fileList"),n().createElement(st.Z.Item,Ft({key:e.propertyName,name:e.propertyName,label:e.displayName||e.propertyName},r,e.fieldProps),t)})))};function Zt(){return Zt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const o=e?.map(((e,a)=>({label:e.title,key:`${a}`,forceRender:!0,children:n().createElement(Ct,{name:e.title,form:t,initialValues:r,formConfig:e.children})})));return n().createElement(lt.Z,Zt({items:o},a))},At=r(24565);function Ot(){return Ot=Object.assign?Object.assign.bind():function(e){for(var t=1;t{}),onSuccess:o=(()=>{}),...i})=>{const[s,c]=(0,a.useState)(!1),{t:u}=(0,E.useTranslation)(),d=(0,k.useMap)(),m=Te(),p=ye();return n().createElement(At.Z,{title:u("DeleteButton.confirm"),onConfirm:async()=>{if(d&&t&&(0,se.isWmsLayer)(t))try{c(!0);const r=(new($e())).readFeature(e),a=await m({deleteFeatures:[r],layer:t});if(!a)return;await p({layer:t,transaction:a}),t.getSource()?.refresh(),o()}catch(e){le.Logger.error(e),r(e)}finally{c(!1)}},placement:"bottomRight"},n().createElement(l.Z,Ot({type:"primary",loading:s,disabled:!e.id,danger:!0,icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.$aW})},i),u("DeleteButton.title")))};function Dt(){return Dt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:a}=(0,E.useTranslation)(),o=(0,k.useMap)(),i=C();return n().createElement(l.Z,Dt({type:"primary",onClick:()=>{if(t.resetFields(),i((0,ke.uQ)(!1)),o){const t=rt.DigitizeUtil.getDigitizeLayer(o);if(t){t.getSource()?.clear();const r=(new($e())).readFeature(e);t.getSource()?.addFeature(r)}}},icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.XnX})},r),a("ResetButton.title"))},jt=r(97598),xt={};xt.styleTagTransform=$(),xt.setAttributes=U(),xt.insert=x().bind(null,"head"),xt.domAPI=I(),xt.insertStyleElement=z();N()(jt.Z,xt),jt.Z&&jt.Z.locals&&jt.Z.locals;var Rt=r(33354),Ut={};Ut.styleTagTransform=$(),Ut.setAttributes=U(),Ut.insert=x().bind(null,"head"),Ut.domAPI=I(),Ut.insertStyleElement=z();N()(Rt.Z,Ut),Rt.Z&&Rt.Z.locals&&Rt.Z.locals;var Bt=({loadComplete:e=!1})=>n().createElement("div",{className:e?"feedback-icon":"feedback-icon hidden"},n().createElement("div",{className:e?"checkmark":"checkmark-hidden"}));function zt(){return zt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{}),onSuccess:o=(()=>{}),...i})=>{const[s,c]=(0,a.useState)(!1),[u,d]=(0,a.useState)(!1),m=(0,k.useMap)(),p=Te(),g=ye(),f=C(),y=M((e=>e.editFeature.formDirty)),{t:h}=(0,E.useTranslation)();return n().createElement(l.Z,zt({className:"save-button",type:"primary",onClick:async()=>{if(!m)return;if(!t||!(0,se.isWmsLayer)(t))return;const a=rt.DigitizeUtil.getDigitizeLayer(m);if(!a)return void le.Logger.error("Cannot find the digitize layer");const n=a.getSource()?.getFeatures();if(n&&0!==n.length){try{await e.validateFields()}catch(e){return void le.Logger.warn("Validation has failed: ",e)}try{c(!0);const r=await p({upsertFeatures:n,form:e,layer:t});if(!r)return;const a=await g({layer:t,transaction:r});t.getSource()?.refresh(),d(!0),setTimeout((()=>{d(!1)}),3e3),o(a)}catch(e){le.Logger.error(e),r(e)}finally{c(!1),f((0,ke.uQ)(!1))}}else le.Logger.error("Cannot save feature without geometry")},loading:s,disabled:!y,icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.EdJ})},i),h("SaveButton.title"),n().createElement(Bt,{loadComplete:u}))},$t=r(38775),Gt={};Gt.styleTagTransform=$(),Gt.setAttributes=U(),Gt.insert=x().bind(null,"head"),Gt.domAPI=I(),Gt.insertStyleElement=z();N()($t.Z,Gt),$t.Z&&$t.Z.locals&&$t.Z.locals;var Vt=({feature:e,layer:t,form:r,onSaveSuccess:a=(()=>{}),onSaveError:o=(()=>{}),onDeleteSuccess:i=(()=>{}),onDeleteError:l=(()=>{})})=>{const s=M((e=>e.editFeature.userEditMode));return n().createElement("div",{className:"edit-feature-toolbar"},s.includes("CREATE")||s.includes("UPDATE")?n().createElement(n().Fragment,null,n().createElement(It,{feature:e,form:r}),n().createElement(_t,{form:r,layer:t,onSuccess:a,onError:o})):n().createElement(n().Fragment,null),s.includes("DELETE")&&n().createElement(Nt,{feature:e,layer:t,onSuccess:i,onError:l}))};var Wt=({feature:e,layer:t})=>{const{t:r}=(0,E.useTranslation)(),o=je(),[i,l]=(0,a.useState)(),[s,c]=(0,a.useState)(),[u,d]=(0,a.useState)(),[m]=(M((e=>e.editFeature.userEditMode)),(0,Oe.cI)()),p=P()(),g=C(),f=fe(),y=(0,a.useCallback)((async e=>{if(!t||!(0,se.isWmsLayer)(t))return;const r=await o({layer:t,filter:(0,Ie.equalTo)("id",e)});r?.features[0]&&g((0,ke.hr)(r?.features[0]))}),[g,o,t]),h=(0,a.useCallback)((async()=>{if(!p||!f)return;let r=t.get("editFormConfig");if(0===r?.length)return void le.Logger.warn(`Layer ${t.get("name")} has no 'editFormConfig' set`);const a=De()(e?.properties)||{};Object.entries(a).forEach((([e,t])=>{const n=r?.filter((t=>t.children?.find((t=>t.propertyName===e))));if(n.length>1&&le.Logger.warn(`Property ${e} is configured in multiple tabs. Is this intended?`),n&&n[0]){const r=n[0].children?.find((t=>t.propertyName===e&&"DATE"===t.component));r&&(a[e]=Ee()(t));const o=n[0].children?.find((t=>t.propertyName===e&&"UPLOAD"===t.component));o&&(a[e]=[{name:t,status:"done"}])}})),m.resetFields(),m.setFieldsValue(a),l(r),c(a)}),[p,f,t,e?.properties,m]);(0,a.useEffect)((()=>{h()}),[h]);return n().createElement(n().Fragment,null,n().createElement(it,{feature:e}),u&&n().createElement(re.Z,{className:"error-alert",message:u,type:"error",showIcon:!0}),n().createElement(Vt,{feature:e,layer:t,form:m,onSaveSuccess:e=>{if(!e)return;d(void 0);const t=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("ogc:FeatureId"),r=t.item(0)?.getAttribute("fid"),a=r?.split(".")[1];a&&y(a)},onSaveError:()=>{d(r("EditFeatureFullForm.saveErrorMsg"))},onDeleteSuccess:()=>{d(void 0),g((0,ke.hr)(null))},onDeleteError:()=>{d(r("EditFeatureFullForm.deleteErrorMsg"))}}),n().createElement(Mt,{tabConfig:i,initialValues:s,form:m}))};var Kt=()=>{const e=fe();return(0,a.useCallback)((async t=>{let r;const a=t.layer.getSource();if(a instanceof ue()&&(r=a.getUrl()),a instanceof me()){const e=a.getUrls();r=e?e[0]:void 0}if(!r)return;r.endsWith("?")&&(r=r.slice(0,-1));const n=(e=>{const t=e.feature.id,r=e.feature.properties;if(!t||!r)return void yt().warn("Either the id of the feature or its properties (or even both) aren't available");let a;a="number"==typeof t?t:parseInt(t.split(".")[1],10);const n=Object.entries(r).find((([,e])=>e===a||e===a.toString()));if(!n)return void yt().warn("Count not detect the id property");const o=n[0],i=e.layer.getSource()?.getParams().LAYERS,l=document.createElementNS("http://www.opengis.net/wfs/2.0","LockFeature");l.setAttribute("service","WFS"),l.setAttribute("version","2.0.0"),l.setAttribute("expiry","300"),l.setAttribute("lockAction","SOME");const s=document.createElementNS("http://www.opengis.net/wfs/2.0","Query");s.setAttribute("typeNames",i);const c=document.createElementNS("http://www.opengis.net/fes/2.0","Filter"),u=document.createElementNS("http://www.opengis.net/fes/2.0","PropertyIsEqualTo"),d=document.createElementNS("http://www.opengis.net/fes/2.0","ValueReference"),m=document.createTextNode(o);d.appendChild(m);const p=document.createElementNS("http://www.opengis.net/fes/2.0","Literal"),g=document.createTextNode(a.toString());return p.appendChild(g),u.appendChild(d),u.appendChild(p),c.appendChild(u),s.appendChild(c),l.appendChild(s),l})({layer:t.layer,feature:t.feature});if(!n)return;const o={"Content-Type":"application/xml"},i=await fetch(r,{method:"POST",headers:t.layer?.get("useBearerToken")?{...o,...(0,pe.getBearerTokenHeader)(e?.getKeycloak())}:o,body:(new XMLSerializer).serializeToString(n)});if(!i.ok)throw new Error("No successful response while executing a WFS-LockFeature");const l=await i.text();if((new DOMParser).parseFromString(l,"text/xml").getElementsByTagName("wfs:FeaturesNotLocked").length>0)throw new Error(`Error while locking a feature: ${l}`);return l}),[e])};var Ht=(e,t,r)=>{const n=(0,k.useMap)(),o=fe(),i=(0,a.useCallback)((async a=>{if(!n||!e)return;const i=a.coordinate,l=n.getView().getResolution();if(!l)return;const s=e.getSource(),c=s?.getFeatureInfoUrl(i,l,n.getView().getProjection(),{INFO_FORMAT:"application/json",BUFFER:10}),u={"Content-Type":"application/json"};if(c)try{n.getTargetElement().style.cursor="wait";const r=await fetch(c,{method:"GET",headers:e.get("useBearerToken")?{...u,...(0,pe.getBearerTokenHeader)(o?.getKeycloak())}:u});if(!r.ok)throw new Error("No successful response");const a=await r.json();t&&t(a)}catch(e){le.Logger.error("Error: ",e),r&&r()}finally{n.getTargetElement().style.cursor=""}}),[o,e,n,t,r]),l=(0,a.useCallback)((t=>{if(!n||!e)return;if(t.dragging)return;const r=e.getData(t.pixel);if(!(r instanceof Uint8ClampedArray))return;const a=r&&r[3]>0;n.getTargetElement().style.cursor=a?"pointer":""}),[e,n]);(0,a.useEffect)((()=>{if(n)return n.on("pointermove",l),n.on("singleclick",i),()=>{n.un("pointermove",l),n.un("singleclick",i)}}),[n,l,i])},Yt=r(97555),qt={};qt.styleTagTransform=$(),qt.setAttributes=U(),qt.insert=x().bind(null,"head"),qt.domAPI=I(),qt.insertStyleElement=z();N()(Yt.Z,qt),Yt.Z&&Yt.Z.locals&&Yt.Z.locals;var Jt=({layer:e,onLockSuccess:t=(()=>{}),onLockError:r=(()=>{}),onCreate:o=(()=>{})})=>{const[i,s]=(0,a.useState)(!1),c=Le(),u=Kt(),d=C(),m=P()(),{t:p}=(0,E.useTranslation)(),g=M((e=>e.editFeature.userEditMode));Ht(e,(async a=>{if(a.features.length&&(g.includes("UPDATE")||g.includes("DELETE"))){const n=a.features[0];if(!e||!n)return;if(ne().wfsLockFeatureEnabled)try{const r=await u({layer:e,feature:n});if(!r)return;d((0,ke.hr)(n)),t(r)}catch(e){r(e)}else d((0,ke.hr)(n))}}));return n().createElement("div",{className:"edit-feature-switch"},g.includes("CREATE")&&n().createElement(n().Fragment,null,g.includes("UPDATE")&&n().createElement("div",null,p("EditFeatureSwitch.usageHint")),n().createElement(l.Z,{loading:i,onClick:async()=>{const t=await(async()=>{if(m&&e)try{s(!0);const t=await c(e);if(!t)return;const r=t.featureTypes[0]?.properties?.find((e=>Se(e.type)));switch(r?.type){case"gml:MultiPoint":return"MultiPoint";case"gml:Point":return"Point";case"gml:MultiLineString":return"MultiLineString";case"gml:LineString":return"LineString";case"gml:MultiPolygon":return"MultiPolygon";case"gml:Polygon":return"Polygon"}}catch(e){yt().error(e)}finally{s(!1)}})();t&&(d((0,ke.hr)({type:"Feature",properties:{},geometry:{type:t,coordinates:[]}})),o())}},p("EditFeatureSwitch.createFeature"))),!g.includes("CREATE")&&(g.includes("UPDATE")||g.includes("DELETE"))&&n().createElement("div",null,p("EditFeatureSwitch.limitedUsageHint")))},Xt=r(16409),Qt={};Qt.styleTagTransform=$(),Qt.setAttributes=U(),Qt.insert=x().bind(null,"head"),Qt.domAPI=I(),Qt.insertStyleElement=z();N()(Xt.Z,Qt),Xt.Z&&Xt.Z.locals&&Xt.Z.locals;function er(){return er=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:t}=(0,E.useTranslation)(),[r,o]=(0,a.useState)(),[l,s]=(0,a.useState)(!1),[c,u]=(0,a.useState)(t("EditFeatureDrawer.featureEditor")),d=M((e=>e.editFeatureDrawerOpen)),m=M((e=>e.editFeature.layerId)),p=M((e=>e.editFeature.feature)),g=P()(),f=C(),y=Te(),h=ye();(0,a.useEffect)((()=>{if(!g||!m)return;const e=T().getLayerByOlUid(g,m);e&&(0,se.isWmsLayer)(e)?(u(`${t("EditFeatureDrawer.featureEditor")} - ${e.get("name")}`),o(e)):le.Logger.warn(`Could not find layer with id ${m}`)}),[g,m,t]);const b=async()=>{await(async()=>{if(r&&p&&p.id&&ne().wfsLockFeatureEnabled)try{const e=new(ie());e.setId(p.id);const t=await y({layer:r,deleteFeatures:[],upsertFeatures:[e]});if(!t)return;await h({layer:r,transaction:t})}catch(e){le.Logger.error("Error while releasing the lock on the feature")}})(),f((0,Pe.Cp)()),f((0,ke.mc)()),s(!1)};return n().createElement(Ae,er({className:"map-drawer edit-feature-drawer",onClose:()=>{r&&p?i.Z.confirm({maskClosable:!1,title:t("EditFeatureDrawer.closeDrawerWarnTitle"),content:t("EditFeatureDrawer.closeDrawerWarnContent"),okType:"danger",onOk:b}):b()},open:d,title:c},e),!r&&n().createElement(re.Z,{message:t("EditFeatureDrawer.noLayerFoundError"),type:"error",showIcon:!0}),l&&n().createElement(re.Z,{message:t("EditFeatureDrawer.isFeatureLockedErrorMsg"),type:"error",showIcon:!0}),r&&m&&!p&&n().createElement(Jt,{layer:r,onLockSuccess:()=>{s(!1)},onLockError:()=>{s(!0)},onCreate:()=>{s(!1)}}),r&&p&&n().createElement(Wt,{feature:p,layer:r}))},rr=r(27049),ar=r(99837),nr=r.n(ar),or=r(5090),ir=r.n(or),lr=r(85050),sr=r(55616),cr=r.n(sr),ur=r(78415),dr={};dr.styleTagTransform=$(),dr.setAttributes=U(),dr.insert=x().bind(null,"head"),dr.domAPI=I(),dr.insertStyleElement=z();N()(ur.Z,dr),ur.Z&&ur.Z.locals&&ur.Z.locals;function mr(){return mr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=X(),{t:r}=(0,E.useTranslation)(),o=M((e=>e.legal)),i=P()(),s=(e,r)=>{t.forEach((t=>{if((a=t.integration)&&"footer"===a.placement&&t.integration?.placementOrientation===e){const{key:e,wrappedComponent:a}=t;r.splice(t.integration?.insertionIndex||0,0,n().createElement(a,{key:e}))}var a}))};if((0,a.useEffect)((()=>{if(!i)return;i.getControls().getArray().find((e=>e instanceof ir()))||i.addControl(new(ir())({target:"scale-line-container"}))}),[i]),(0,a.useEffect)((()=>{if(!i)return;i.getControls().getArray().find((e=>e instanceof nr()))||i.addControl(new(nr())({coordinateFormat:(0,lr.createStringXY)(2),projection:i.getView().getProjection(),target:"mouse-position"}))}),[i]),!i)return n().createElement(n().Fragment,null);const c=()=>{window.open(o.contact,"_blank")},u=()=>{window.open(o.imprint,"_blank")},d=()=>{window.open(o.privacy,"_blank")};return n().createElement("div",mr({className:"footer"},e),n().createElement("div",{className:"item-container left-items"},(()=>{const e=[n().createElement("div",{key:"scale-line-container",id:"scale-line-container","aria-label":"scale-line"}),n().createElement(rr.Z,{key:"scale-line-divider",type:"vertical"}),n().createElement("div",{key:"scale-combo-container",className:"scale-combo","aria-label":"scale-combo"},r("Footer.scale"),": ",n().createElement(cr(),{"aria-label":"scalecombo-dropdown",map:i}),n().createElement(rr.Z,{type:"vertical"})),n().createElement("div",{key:"reference-system-container",className:"reference-system","aria-label":"reference-system"},r("Footer.refSystem"),": ",i.getView().getProjection().getCode(),n().createElement(rr.Z,{type:"vertical"})),n().createElement("div",{key:"mouse-position-container",className:"mouse-position-wrapper"},r("Footer.mousePosition"),": ",n().createElement("div",{id:"mouse-position",className:"mouse-position","aria-label":"mouse-position"}))];return s("left",e),e})()),n().createElement("div",{className:"item-container right-items"},(()=>{const e=[n().createElement(l.Z,{key:"open-contact",onClick:c,type:"link"},r("Footer.contact")),n().createElement(l.Z,{key:"open-imprint",onClick:u,type:"link"},r("Footer.imprint")),n().createElement(l.Z,{key:"open-privacy",onClick:d,type:"link"},r("Footer.privacypolicy"))];return t.length>0&&s("right",e),e})()))},gr=r(31987),fr=r(86294),yr=r.n(fr);function hr(){return hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=P()(),{t:r}=(0,E.useTranslation)(),[o,i]=(0,a.useState)();return(0,a.useEffect)((()=>{const e=t?.getView().getProjection(),r=t?.getView()?.get("extent");if(r){const t=(0,gr.transformExtent)(r,e,"EPSG:4326");i(t.toString())}}),[t]),t?n().createElement(yr(),hr({map:t,countryCodes:"",allowClear:!0,nominatimBaseUrl:"https://nominatim.terrestris.de/search.php?",placeholder:r("Nominatim.placeholder"),viewBox:o||""},e)):n().createElement(n().Fragment,null)},br=r(24616),wr=r(40110),vr=r(79090),Sr=r(14277),Lr=r(13013),Tr=r(7739),kr=r.n(Tr),Pr=r(23860),Fr=r.n(Pr),Cr=r(61890),Zr=r.n(Cr),Mr=r(76514),Ar=r.n(Mr),Or=r(21736),Nr=r.n(Or),Dr=r(41640),Ir=r.n(Dr),jr=r(22950),xr=r.n(jr),Rr=r(85516),Ur={};Ur.styleTagTransform=$(),Ur.setAttributes=U(),Ur.insert=x().bind(null,"head"),Ur.domAPI=I(),Ur.insertStyleElement=z();N()(Rr.Z,Ur),Rr.Z&&Rr.Z.locals&&Rr.Z.locals;const Br=e=>e.map((e=>`(${e.trim()}*^3 OR *${e.trim()}*^2 OR ${e.trim()}~1)`)).join(" AND ");var zr=({searchValue:e,map:t})=>{let r=e.trim().replaceAll(/[()\\\-_./\/]/g," ").split(" ").map((e=>e.trim())).filter((e=>""!==e));const a=[];return t.getAllLayers().forEach((e=>{if(e.get("searchable")&&(0,se.isWmsLayer)(e)){const t=e.get("searchConfig"),n=e.getSource()?.getParams().LAYERS;t?.attributes?a.push({query:`(featureType:"${n}" AND (${Br(r)}))`,fieldList:t.attributes.join(" ")}):a.push({query:`(featureType:"${n}" AND (${Br(r)}))`})}})),a};const _r=e=>"fulfilled"===e.status;var $r=({useNominatim:e,useSolrHighlighting:t=!0,delay:r=1e3,minChars:o=3,solrSearchBasePath:i="/search/query"})=>{const l=fe(),c=P()(),{t:u}=(0,E.useTranslation)(),d=(C(),(0,a.useRef)(null)),[m,p]=(0,a.useState)(e),[g,f]=(0,a.useState)(!0),[y,h]=(0,a.useState)(!0),[b,w]=(0,a.useState)(""),[v,S]=(0,a.useState)(!1),[L,k]=(0,a.useState)(!1),[F,Z]=(0,a.useState)(!1),[A,O]=(0,a.useState)([]),[N,D]=(0,a.useState)({}),[I,j]=(0,a.useState)([]),[x,R]=(0,a.useState)([]);M((e=>e.editFeature.userEditMode));(0,a.useEffect)((()=>(window.addEventListener("mousedown",U),()=>{window.removeEventListener("mousedown",U)})),[]);const U=e=>{const t=[];let r=e.target;for(;r;)t.unshift(r),r=r.parentNode;d.current&&d.current.contains(e.target)||k(!1)},B=(0,a.useMemo)((()=>({items:[{label:n().createElement(ct.Z,{checked:y,onChange:e=>h(e.target.checked)},u("MultiSearch.searchInViewBox")),key:"viewbox"},{label:n().createElement(ct.Z,{checked:g,onChange:e=>f(e.target.checked)},u("MultiSearch.searchData")),key:"data"},{label:n().createElement(ct.Z,{checked:m,onChange:e=>p(e.target.checked)},u("MultiSearch.searchNominatim")),key:"nominatim"}]})),[g,m,y,u]),z=(0,a.useCallback)((async()=>{if(b.length{const n={q:a.query,rows:100,defType:"edismax"};if(a.fieldList?n.qf=a.fieldList:n.qf="search",y&&r){const e=`geometry:[${r[1]},${r[0]} TO ${r[3]},${r[2]}]`;n.fq=e}t&&(n.hl=!0,n["hl.fl"]="*",n["hl.tag.pre"]="",n["hl.tag.post"]="",n["hl.requireFieldMatch"]=!0);return fetch(e.href,{method:"POST",headers:{"Content-Type":"application/json",...(0,pe.getBearerTokenHeader)(l?.getKeycloak())},body:JSON.stringify(n)})})),n=(await Promise.allSettled(a.map((async e=>(await e).json())))).filter(_r),o=n.flatMap((e=>e.value?.response?.docs)),s=Object.assign({},...n.map((e=>e.value?.highlighting)));O(o),D(s)}catch(e){O([]),D({}),yt().error("Error while fetching the layer search results: ",e)}finally{m||S(!1)}if(m)try{const t=new URL("https://nominatim.terrestris.de/search");t.searchParams.set("q",b),t.searchParams.set("format","json"),t.searchParams.set("polygon_geojson","1"),y&&r&&(t.searchParams.set("viewbox",r.toString()),t.searchParams.set("bounded","1")),e=await fetch(t.href),j(await e.json())}catch(e){j([]),yt().error("Error while fetching the nominatim results: ",e)}finally{S(!1)}}),[b,o,g,m,y,c,i,t,l]),_=(0,a.useCallback)(((e,t)=>{if(!c)return"";const r=T().getLayerByNameParam(c,e.featureType[0]),a=r?.get("searchConfig"),n=["category","id","featureType","geometry","search"];let o="";if(a?.displayTemplate)return i=a.displayTemplate,l=e,i.replace(/{\s*(\w+?)\s*}/g,((e,t)=>l[t]?.toString()||""));var i,l;if(t){const e=Object.keys(t).filter((e=>!n.includes(e)));if(e.length>0){return`${t[e[0]]} [${e[0]}]`}}return Object.keys(e).filter((e=>!n.includes(e))).forEach((t=>{let r=e[t]?.toString();!o&&r.toLowerCase().indexOf(b?.toLowerCase())>-1&&(o=`${r} [${t}]`)})),o||(o=e.id),o}),[b,c]);(0,a.useEffect)((()=>{if(!c)return;let e=[];if(I.length>0){const t=new($e()),r=I.map((e=>{const r=t.readFeature(e.geojson,{dataProjection:"EPSG:4326",featureProjection:c.getView().getProjection()});return r.set("title",e.display_name),r})),a={title:u("MultiSearch.nominatimTitle"),features:r};e.push(a)}if(A?.length>0){const t=new(Fr()),r=kr()(A,(e=>e.category[0]));Object.keys(r).forEach((a=>{const n={title:a,features:r[a].map((e=>{if(!e.geometry?.[0])return;const r=e.id,a=t.readGeometry(e.geometry[0],{dataProjection:"EPSG:4326",featureProjection:c.getView().getProjection()}),n=new(ie())({geometry:a});let o;if(n.set("title",_(e,N?.[r])),e.featureType?.[0]){const t=T().getLayerByNameParam(c,e.featureType?.[0]);t&&(n.set("layer",t),o=t.get("name"))}else o=r.substring(0,r.lastIndexOf("_"));return n.set("ftName",o),n})).filter((e=>e))};e.push(n)}))}k(!0),R(e)}),[A,N,I,c,_,u]),(0,a.useEffect)((()=>{const e=setTimeout((()=>{z()}),r);return()=>clearTimeout(e)}),[z,r]);const $=()=>{O([]),j([])},G=e=>{const t=e.feature.get("layer");if(!t?.get("editable"))return;return[n().createElement(n().Fragment,null)]},V=(0,a.useMemo)((()=>new(Ir())({stroke:new(Nr())({color:"rgb(255,0,0)",width:2}),fill:new(Ar())({color:"rgba(255,255,255, 0.5)"}),image:new(Zr())({radius:10,fill:new(Ar())({color:"rgba(255,255,255, 0.5)"}),stroke:new(Nr())({color:"rgb(255,0,0)",width:3})})})),[]);return c?n().createElement("div",{ref:d},n().createElement(s.Z,{value:b,disabled:!g&&!m,onChange:e=>{S(""!==e.target.value),w(e.target.value)},allowClear:!0,addonAfter:n().createElement(Lr.Z,{placement:"bottomRight",menu:B,trigger:["click"],onOpenChange:Z,open:F},n().createElement(br.Z,null)),onFocus:()=>k(!0),placeholder:u("MultiSearch.searchPlaceholder"),prefix:n().createElement(wr.Z,null),suffix:v?n().createElement(vr.Z,null):null}),(()=>{if(b.length<2||!L||v||!A)return null;const e=I.length+A.length;return 0===e?n().createElement("div",{className:"no-search-result-div"},n().createElement(Sr.Z,{image:Sr.Z.PRESENTED_IMAGE_SIMPLE})):n().createElement(xr(),{searchResults:x,numTotal:e,accordion:!0,searchTerms:b.split(" "),actionsCreator:G,layerStyle:V})})()):n().createElement(n().Fragment,null)},Gr=r(42686),Vr={};Vr.styleTagTransform=$(),Vr.setAttributes=U(),Vr.insert=x().bind(null,"head"),Vr.domAPI=I(),Vr.insertStyleElement=z();N()(Gr.Z,Vr),Gr.Z&&Gr.Z.locals&&Gr.Z.locals;var Wr=()=>{const e=M((e=>e.searchEngines.includes("nominatim"))),t=M((e=>e.searchEngines.includes("solr")));return e||t?n().createElement("div",{className:"search","aria-label":"search-field"},t?n().createElement($r,{"aria-label":"search",useNominatim:e}):n().createElement(Er,{"aria-label":"search"})):(yt().warn("Neither nominatim nor solr search is configured."),n().createElement(n().Fragment,null))},Kr=r(69750),Hr=r.n(Kr),Yr=r(88495),qr=r.n(Yr);const Jr=({email:e="",size:t=80,rating:r="g",defaultImage:a="identicon",force:n=!1})=>{const o=e.toLowerCase();let i=`https://www.gravatar.com/avatar/${qr()(o)}?s=${t}&r=${r}&d=${a}`;return n&&(i=`${i}&f=y`),i};var Xr=r(7277);var Qr=r(88885),ea={};ea.styleTagTransform=$(),ea.setAttributes=U(),ea.insert=x().bind(null,"head"),ea.domAPI=I(),ea.insertStyleElement=z();N()(Qr.Z,ea),Qr.Z&&Qr.Z.locals&&Qr.Z.locals;function ta(){return ta=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:r}=(0,E.useTranslation)(),o=M((e=>e.appInfo)),l=M((e=>e.logoPath)),s=M((e=>e.description)),[c,u]=(0,a.useState)(!1),d=()=>{u(!c)};let m;return m=e?n().cloneElement(e,{onClick:d}):n().createElement("button",{onClick:d},"Open"),n().createElement(n().Fragment,null,m,n().createElement(i.Z,ta({className:"application-info",title:r("ApplicationInfo.title"),centered:!0,open:c,onOk:d,onCancel:d,footer:null},t),n().createElement("img",{className:"logo",src:l}),n().createElement("div",{className:"description"},s),n().createElement(Xr.Z,{title:r("ApplicationInfo.clientVersionTitle"),value:"6.7.0"}),o.version&&o.buildTime&&n().createElement(Xr.Z,{title:r("ApplicationInfo.backendVersionTitle"),value:`${o.version} (${o.buildTime})`})))},aa=r(72285),na={};na.styleTagTransform=$(),na.setAttributes=U(),na.insert=x().bind(null,"head"),na.domAPI=I(),na.insertStyleElement=z();N()(aa.Z,na),aa.Z&&aa.Z.locals&&aa.Z.locals;var oa=()=>{const{t:e}=(0,E.useTranslation)(),t=fe(),r=t?.getKeycloak(),a=M((e=>e.user)),o=e=>{switch(e.key){case"settings":r&&r.accountManagement();break;case"info":default:break;case"login":r&&r.login();break;case"logout":r&&r.logout()}};return n().createElement(Hr(),{size:"small",imageSrc:Jr({email:a.providerDetails?.email||"",size:28}),userName:n().createElement(Re.FontAwesomeIcon,{icon:xe.gc2}),userMenu:(()=>{const t={key:"login",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.Yem}),label:e("UserMenu.loginMenuTitle")},i={key:"username",label:n().createElement("div",{className:"user-name","aria-label":"user-name"},n().createElement("span",null,a.providerDetails?.email))},l={type:"divider"},s={key:"settings",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.gNZ}),label:e("UserMenu.settingsMenuTitle")},c={key:"info",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.YHc}),label:n().createElement(ra,{opener:n().createElement("span",{className:"info-opener","aria-label":"info-opener"},e("UserMenu.infoMenuTitle"))})},u={key:"logout",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.HEx}),label:n().createElement("div",{"aria-label":"login"},e("UserMenu.logoutMenuTitle"))},d=[];if(ze()(a))ne().keycloak?.enabled&&d.push(t),d.push(c);else{const e=r?.tokenParsed?.resource_access?.account?.roles,t=Array.isArray(e)&&e.indexOf("manage-account")>-1?[i,l,s,c,l,u]:[i,l,c,l,u];d.push(...t)}return{items:d,onClick:o}})()})},ia=r(62923),la={};la.styleTagTransform=$(),la.setAttributes=U(),la.insert=x().bind(null,"head"),la.domAPI=I(),la.insertStyleElement=z();N()(ia.Z,la),ia.Z&&ia.Z.locals&&ia.Z.locals;function sa(){return sa=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=Z((e=>e.title)),r=Z((e=>e.logoPath)),a=X(),o=(e,t)=>{a.forEach((r=>{if((a=r.integration)&&"header"===a.placement&&r.integration?.placementOrientation===e){const{key:e,wrappedComponent:a}=r;t.splice(r.integration?.insertionIndex||0,0,n().createElement(a,{key:e}))}var a}))};return n().createElement("div",sa({className:"header"},e),n().createElement("div",{className:"item-container left-items"},(()=>{const e=[n().createElement("img",{key:"logo",className:"logo","aria-label":"logo",src:r}),n().createElement("div",{key:"title",className:"title","aria-label":"title"},t)];return o("left",e),e})()),n().createElement("div",{className:"item-container center-items"},(()=>{const e=[n().createElement(Wr,{key:"search","aria-label":"search-input",name:"search-input",className:"search-input"})];return o("center",e),e})()),n().createElement("div",{className:"item-container right-items"},(()=>{const e=[n().createElement("div",{key:"user-menu","aria-label":"user-menu"},n().createElement(oa,{key:"user-menu"}))];return o("right",e),e})()))},ua=r(99008),da=r(45777),ma=r(8303),pa=r.n(ma),ga=r(6049),fa=r(11382),ya=r(34286),ha={};ha.styleTagTransform=$(),ha.setAttributes=U(),ha.insert=x().bind(null,"head"),ha.domAPI=I(),ha.insertStyleElement=z();N()(ya.Z,ha),ya.Z&&ya.Z.locals&&ya.Z.locals;function Ea(){return Ea=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[r,o]=(0,a.useState)(!1),[i,l]=(0,a.useState)(),[s,c]=(0,a.useState)(),u=fe(),{t:d}=(0,E.useTranslation)(),m=(0,a.useCallback)((async()=>{try{if(o(!0),l(""),!e||!e.get("shogunId"))throw new Error("No layer provided or the layer has no shogunId set");const t=await(u?.layer().findOne(e.get("shogunId")));c(t)}catch(e){yt().error(e),l(d("LayerConfiguration.errorMessage"))}finally{o(!1)}}),[d,u,e]);return(0,a.useEffect)((()=>{m()}),[m]),i?n().createElement(re.Z,{type:"error",closable:!0,message:i}):n().createElement(fa.Z,{spinning:r},n().createElement("pre",Ea({className:"layer-configuration"},t),n().createElement("code",null,JSON.stringify(s,null," "))))},wa=r(86201),va={};va.styleTagTransform=$(),va.setAttributes=U(),va.insert=x().bind(null,"head"),va.domAPI=I(),va.insertStyleElement=z();N()(wa.Z,va),wa.Z&&wa.Z.locals&&wa.Z.locals;function Sa(){return Sa=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[r,o]=(0,a.useState)(!1),[i,l]=(0,a.useState)(),[s,c]=(0,a.useState)(),u=fe(),{t:d}=(0,E.useTranslation)(),m=(0,a.useCallback)((async()=>{if(e&&(0,se.isWmsLayer)(e))try{o(!0),c(""),l(void 0);const t=await S().getWmsCapabilitiesByLayer(e,{headers:{...e.get("useBearerToken")?{...(0,pe.getBearerTokenHeader)(u?.getKeycloak())}:void 0}});l(t)}catch(e){yt().error(e),c(d("LayerDetails.errorMessage"))}finally{o(!1)}}),[d,u,e]);(0,a.useEffect)((()=>{m()}),[m]);const p=()=>{if(e&&(0,se.isWmsLayer)(e))return e.getSource()?.getParams().LAYERS},g=()=>{if(!e||!(0,se.isWmsLayer)(e))return;let t;if(e.getSource()instanceof ue()&&(t=e.getSource().getUrl()),e.getSource()instanceof me()){const r=e.getSource().getUrls();t=r?r[0]:void 0}return t?w().createValidGetCapabilitiesRequest(t,"WMS","1.3.0"):void 0},f=()=>{const e=i?.Capability?.Layer?.Layer,t=p(),r=e?.find((e=>e.Name===t));return r},y=()=>{const e=f();if(e&&e.EX_GeographicBoundingBox)return[e.EX_GeographicBoundingBox.westBoundLongitude,e.EX_GeographicBoundingBox.southBoundLatitude,e.EX_GeographicBoundingBox.eastBoundLongitude,e.EX_GeographicBoundingBox.northBoundLatitude].join(", ")},h=()=>{const e=f();if(e)return e.MinScaleDenominator},b=()=>{const e=f();if(e)return e.MaxScaleDenominator},v=()=>{const e=f();if(e)return e.Abstract},L=()=>i?.Service?.Abstract,T=()=>i?.Service?.ContactInformation?.ContactElectronicMailAddress,k=()=>{const e=f();if(e)return e.Title},P=()=>i?.Service?.AccessConstraints;return s?n().createElement(re.Z,{type:"error",closable:!0,message:s}):n().createElement(fa.Z,{spinning:r},n().createElement(st.Z,Sa({className:"layer-details",layout:"horizontal",size:"small",labelAlign:"left",labelWrap:!0,labelCol:{flex:"150px"}},t),n().createElement(st.Z.Item,{name:"layerName",label:d("LayerDetails.layerNameLabel")},n().createElement("span",null,p()?p():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"layerTitle",label:d("LayerDetails.layerTitleLabel")},n().createElement("span",null,k()?k():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"service-abstract",label:d("LayerDetails.serviceAbstractLabel")},n().createElement("span",null,L()?L():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"abstract",label:d("LayerDetails.abstractLabel")},n().createElement("span",null,v()?v():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"accessConstraints",label:d("LayerDetails.accessConstraintsLabel")},n().createElement("span",null,P()?P():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"CapabilitiesUrl",label:d("LayerDetails.capabilitiesUrlLabel")},n().createElement("a",{href:g()},g())),n().createElement(st.Z.Item,{name:"contact",label:d("LayerDetails.contactLabel")},T()?n().createElement("a",{href:`mailto:${T()}`},T()):n().createElement("span",null,d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"minScale",label:d("LayerDetails.minScaleLabel")},n().createElement("span",null,h()?h():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"maxScale",label:d("LayerDetails.maxScaleLabel")},n().createElement("span",null,b()?b():d("LayerDetails.noDataPlaceholder"))),n().createElement(st.Z.Item,{name:"bbox",label:d("LayerDetails.bboxLabel")},n().createElement("span",null,y()?y():d("LayerDetails.noDataPlaceholder")))))},Ta=r(21809),ka={};ka.styleTagTransform=$(),ka.setAttributes=U(),ka.insert=x().bind(null,"head"),ka.domAPI=I(),ka.insertStyleElement=z();N()(Ta.Z,ka),Ta.Z&&Ta.Z.locals&&Ta.Z.locals;function Pa(){return Pa=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[t,r]=(0,a.useState)(),[o,s]=(0,a.useState)(!1),c=M((e=>e.layerDetailsModal.visible)),u=M((e=>e.layerDetailsModal.layerId)),d=C(),m=(0,k.useMap)(),{t:p}=(0,E.useTranslation)();(0,a.useEffect)((()=>{if(!m)return;if(!u)return void r(void 0);const e=T().getLayerByOlUid(m,u);e instanceof pa()&&r(e)}),[m,u]);return n().createElement(i.Z,Pa({className:"layer-details-modal",title:n().createElement("div",{className:"title-group"},n().createElement("span",null,p("LayerDetailsModal.title",{layerName:t?.get("name")})),t?.get("shogunId")&&n().createElement(da.Z,{title:p(o?"LayerDetailsModal.internalConfigurationButtonTooltip":"LayerDetailsModal.internalConfigurationButtonTooltipPressed")},n().createElement(l.Z,{type:"link",className:o?"pressed":"",icon:n().createElement(ua.Z,null),onClick:()=>{s(!o)}}))),open:c,onCancel:()=>{d((0,ga.Cp)()),d((0,ga.uF)(void 0))},width:800,footer:!1},e),n().createElement(La,{layer:t,hidden:o}),t?.get("shogunId")&&n().createElement(ba,{layer:t,hidden:!o}))},Ca=r(27279),Za=r(1581),Ma=r.n(Za),Aa=r(76712),Oa=r(63221),Na=r(85677),Da={};Da.styleTagTransform=$(),Da.setAttributes=U(),Da.insert=x().bind(null,"head"),Da.domAPI=I(),Da.insertStyleElement=z();N()(Na.Z,Da),Na.Z&&Na.Z.locals&&Na.Z.locals;var Ia=r(35895);const{Option:ja}=c.default;var xa=()=>{const e=Object.keys(Ia.Z.services.resourceStore.data);return n().createElement("div",{className:"language-select","aria-label":"language-selector"},n().createElement(c.default,{defaultValue:Ia.Z.language||"en",onChange:e=>{Ia.Z.changeLanguage(e)}},e.map((e=>n().createElement(ja,{key:e,value:e},e.toUpperCase())))))},Ra=r(75013),Ua=r(73254),Ba=r(64302),za=r(85175),_a=r(48086),$a=r(20640),Ga=r.n($a),Va=r(17637),Wa=r(35674),Ka=r.n(Wa),Ha=r(10767),Ya={};Ya.styleTagTransform=$(),Ya.setAttributes=U(),Ya.insert=x().bind(null,"head"),Ya.domAPI=I(),Ya.insertStyleElement=z();N()(Ha.Z,Ya),Ha.Z&&Ha.Z.locals&&Ha.Z.locals;var qa=()=>{const e=(0,k.useMap)(),t=(0,a.useMemo)((()=>["layerConfig","isExternalLayer","isUploadedLayer","groupName"]),[]),{t:r}=(0,E.useTranslation)(),o=e?Ka().getLink(e,";",(e=>e.get("name")),(e=>(e instanceof h()||e instanceof f())&&e.getVisible()),t):"",[i,l]=(0,a.useState)(o),c=`Hey,\r\ncheck out the layer-composition I created:\r\n\r\n${i}`;return(0,a.useEffect)((()=>{if(!e)return;let r=[];const a=e=>e.get("name"),n=e=>(e instanceof h()||e instanceof f())&&e.getVisible(),o=()=>{l(Ka().getLink(e,";",a,n,t))},i=()=>{e.getAllLayers().filter((e=>e.get("isExternalLayer")||e.get("isUploadedLayer"))).forEach((e=>{const t=e.get("layerConfig");t&&(t.clientConfig?t.clientConfig.opacity=e.getOpacity():t.clientConfig={opacity:e.getOpacity()},e.set("layerConfig",t))})),o()},s=e=>{const t=e.getLayers().getArray();for(let e=0;e{(0,Va.unByKey)(c),(0,Va.unByKey)(u),(0,Va.unByKey)(r)}}),[t,e,r]),n().createElement("div",{className:"permalink-wrapper"},n().createElement("div",{className:"icons"},n().createElement(da.Z,{title:r("Permalink.twitterTooltip")},n().createElement(Ra.Z,{onClick:function(){const e=new URL("https://twitter.com/intent/tweet");e.searchParams.set("url",c),window.open(e)}})),n().createElement(da.Z,{title:r("Permalink.whatsAppTooltip")},n().createElement(Ua.Z,{onClick:function(){const e=new URL("https://wa.me");e.searchParams.set("text",c),window.open(e)}})),n().createElement(da.Z,{title:r("Permalink.mailTooltip")},n().createElement(Ba.Z,{onClick:function(){const e=new URL("mailto:");e.searchParams.set("subject","SHOGun Web-GIS"),e.searchParams.set("body",c),window.open(e.toString().replace(/\+/g,"%20"),"_self")}}))),n().createElement("div",{className:"link","aria-label":"permalink-url"},n().createElement(s.Z,{value:i,readOnly:!0}),n().createElement(da.Z,{title:r("Permalink.copyTooltip")},n().createElement(za.Z,{onClick:function(){Ga()(i)?_a.ZP.info(r("Permalink.copiedToClipboard")):_a.ZP.info(r("Permalink.copyToClipboardFailed"))}}))))},Ja=r(14293),Xa=r.n(Ja),Qa=r(73345),en=r(57795),tn=r.n(en),rn=r(55002),an=r.n(rn),nn=r(19867),on=r.n(nn),ln=r(97955),sn=r.n(ln),cn=r(11032),un=r.n(cn);class dn extends(un()){serialize(e,t){const r=super.serialize(e,t);return r.baseURL.startsWith("/geoserver/ows")&&(r.baseURL=`http://shogun-geoserver:8080${r.baseURL}`),r.baseURL.startsWith("/geoserver/SHOGUN")&&(r.baseURL=`http://shogun-geoserver:8080${r.baseURL}`),r}}var mn=dn;var pn=class extends mn{serialize(e,t){const r={tileSize:[512,512],...t},a=e.getSource();if(!a||!this.validateSource(a))return;return{...super.serialize(e,r),type:sn().TYPE_WMS,...t}}},gn=r(28728);function fn(){return fn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[l,c]=(0,a.useState)(e),u=C();return(0,a.useEffect)((()=>{Xa()(t)||u((0,gn.eV)({[t]:l}))}),[l,t,u]),(0,a.useEffect)((()=>{c(e)}),[e]),n().createElement(s.Z,fn({id:t,value:l,onChange:e=>c(e.target.value),placeholder:r,maxLength:o,showCount:!!(o&&o>1)},i))};function hn(){return hn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[i,l]=(0,a.useState)(r);return(0,a.useEffect)((()=>{e&&e.setLayout(i)}),[e,i]),(0,a.useEffect)((()=>{l(r)}),[r]),n().createElement(c.default,hn({placeholder:t,value:i,onChange:l},o),e?.getLayouts().map((e=>n().createElement(c.default.Option,{key:e.name,value:e.name},e.name))))};function bn(){return bn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[l,s]=(0,a.useState)(r);return(0,a.useEffect)((()=>{e&&e.setOutputFormat(l)}),[e,l]),(0,a.useEffect)((()=>{s(r)}),[r]),n().createElement(c.default,bn({placeholder:t,value:l,onChange:s},i),o.map((e=>n().createElement(c.default.Option,{key:e,value:e},e.toLocaleUpperCase()))))};function vn(){return vn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[i,l]=(0,a.useState)(r);return(0,a.useEffect)((()=>{e&&e.setDpi(i)}),[e,i]),(0,a.useEffect)((()=>{l(r)}),[r]),n().createElement(c.default,vn({placeholder:t,value:i,onChange:l},o),e?.getDpis().map((e=>n().createElement(c.default.Option,{key:e,value:e},`${e} DPI`))))};function Ln(){return Ln=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const i=P()(),[l,s]=(0,a.useState)(0);return(0,a.useEffect)((()=>{e&&l&&e.setScale(l)}),[e,l]),(0,a.useEffect)((()=>{const t=()=>{const t=e.getScale();t&&s(t)},r=i?.getInteractions().getArray().find((e=>e.get("name")===Qa.MapFishPrintV3Manager.TRANSFORM_INTERACTION_NAME));if(e&&r&&r)return r.on("scaling",t),()=>{r.un("scaling",t)}}),[e,i]),(0,a.useEffect)((()=>{r&&s(r)}),[r]),n().createElement(c.default,Ln({placeholder:t,value:l,onChange:s},o),e?.getScales().map((e=>n().createElement(c.default.Option,{key:e,value:e},`1 : ${e.toLocaleString()}`))))},kn=r(26398);function Pn(){return Pn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(e.get("legendUrl"))return e.get("legendUrl");if(e.getSource()instanceof me()||e.getSource()instanceof ue()){const t=e.get("customPrintLegendParams"),r=e.getSource(),{LAYERS:a,VERSION:n,FORMAT:o}=r.getParams();let i=r instanceof ue()?r.getUrl():r.getUrls()[0];i.startsWith("/geoserver/ows")&&(i=`http://shogun-geoserver:8080${i}`);const l={LAYER:a.split(",")[0],VERSION:n||"1.3.0",SERVICE:"WMS",REQUEST:"GetLegendGraphic",FORMAT:o||"image/png",...t},s=Object.keys(l).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(l[e])}`)).join("&");return i.startsWith("/geoserver/SHOGUN")?(i=`http://shogun-geoserver:8080${i}/service?`,`${i}${s}`):i.endsWith("?")?`${i}${s}`:`${i}?${s}`}return""};var Fn=({active:e,customPrintScales:t=[],layerBlackList:r=[],outputFormats:o=["pdf","png"],...i})=>{const[s]=st.Z.useForm(),{t:c,i18n:u}=(0,E.useTranslation)(),d=(0,k.useMap)(),m=u.language,g=fe(),f=M((e=>e.print.customMapParams)),y=M((e=>e.print.customParams)),[h,b]=(0,a.useState)(null),[w,v]=(0,a.useState)(!1),[S,L]=(0,a.useState)(null),P=(0,a.useCallback)((e=>{if(!d)return;const t=e.get("name");return t&&!r.includes(t)&&e.getVisible()&&!(e instanceof p())&&T().layerInResolutionRange(e,d)}),[d,r]),F=(0,a.useCallback)((e=>{if(Xa()(d))return!1;const t=e.get("name"),a=!r.includes(t),n=!e.get("hideLegendInPrint"),o=e.getVisible()&&T().layerInResolutionRange(e,d),i=!(e instanceof p());if(a&&n&&o&&i){const t=d?.getView().getResolution();return t&&e.set("customPrintLegendParams",{SCALE:T().getScaleForResolution(t,"m")}),!0}return!1}),[d,r]),C=(0,a.useCallback)((async()=>{if(Xa()(d))return;let e={url:ne().print?.url||"/print",map:d,customPrintScales:d?.getView()?.getResolutions()?.map((e=>{const t=d?.getView()?.getProjection()?.getUnits();if(void 0!==e){const r=T().getScaleForResolution(e,t);if(void 0!==r)return T().roundScale(r)}})).filter((e=>void 0!==e))?.reverse(),timeout:6e4,layerFilter:P,headers:{...(0,pe.getBearerTokenHeader)(g?.getKeycloak())},transformOpts:{rotate:!1},serializers:[new(tn()),new(an()),new(on()),new mn,new pn],legendFilter:F};t.length>0&&(e={...e,customPrintScales:t.reverse()});const r=new Qa.MapFishPrintV3Manager(e);try{await r.init();const e=r.getPrintApps();e&&m&&e.includes(m)&&await r.setPrintApp(m),r.setOutputFormat(r.getOutputFormats()[0]),r.setDpi(r.getDpis()[0]),r.setLayout(r.getLayouts()[0]?.name),b(r)}catch(e){L((()=>c("PrintForm.managerErrorMessage"))),yt().error("Could not initialize print manager: ",e)}}),[g,P,F,d,c,t,m]);(0,a.useEffect)((()=>{e?h||C():(h?.shutdownManager(),b(null))}),[h,e,C]),(0,a.useEffect)((()=>{h&&(y&&h.setCustomParams(y),f&&h.setCustomMapParams(f))}),[h,y,f]);return n().createElement("div",{className:"print","aria-label":"print-form"},S&&n().createElement(re.Z,{className:"print-alert",message:S,type:"error",closable:!0,showIcon:!0,onClose:()=>{L(null)}}),h?.isInitiated()&&n().createElement(n().Fragment,null,n().createElement(st.Z,Pn({form:s,className:"print-form",labelAlign:"left",labelCol:{flex:"90px"}},i),n().createElement(st.Z.Item,{"aria-label":"print-title",name:"title",label:c("PrintForm.title"),initialValue:c("PrintForm.initialTitle")},n().createElement(yn,{"aria-label":"print-title-input",maxLength:50,placeholder:c("PrintForm.titlePlaceholder")})),n().createElement(st.Z.Item,{"aria-label":"print-comment",name:"comment",label:c("PrintForm.comment")},n().createElement(yn,{"aria-label":"print-comment-input",maxLength:200,placeholder:c("PrintForm.commentPlaceholder")})),n().createElement(st.Z.Item,{"aria-label":"print-layout",name:"layout",label:c("PrintForm.layout"),initialValue:h?.getLayouts()[0]?.name},n().createElement(En,{"aria-label":"print-layout-input",printManager:h})),n().createElement(st.Z.Item,{"aria-label":"print-scale",name:"scale",label:c("PrintForm.scale"),initialValue:h?.getClosestScaleToFitMap()},n().createElement(Tn,{"aria-label":"print-scale-input",printManager:h})),n().createElement(st.Z.Item,{"aria-label":"print-dpi",name:"dpi",label:c("PrintForm.dpi"),initialValue:h.getDpis()[0]},n().createElement(Sn,{"aria-label":"print-dpi-input",printManager:h,placeholder:c("PrintForm.resolutionPlaceholder")})),n().createElement(st.Z.Item,{"aria-label":"print-format",name:"format",label:c("PrintForm.format"),initialValue:"pdf"},n().createElement(wn,{"aria-label":"print-format-input",printManager:h,outputFormats:o,placeholder:c("PrintForm.outputFormatPlaceholder")}))),n().createElement(l.Z,{"aria-label":"create-print",className:"print-button tool-menu-button",disabled:!h?.isInitiated(),icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.q7m}),loading:w,onClick:async()=>{try{if(L(null),v(!0),!h)return;const e=await h.print(!1);if(!e)throw new Error("No download URL available, the job has failed.");window.open(e)}catch(e){L(c("PrintForm.printJobErrorMsg")||null),yt().error(e)}finally{v(!1)}}},c("PrintForm.downloadBtnText"))))},Cn=r(27017),Zn=r.n(Cn),Mn=r(7871),An={};An.styleTagTransform=$(),An.setAttributes=U(),An.insert=x().bind(null,"head"),An.domAPI=I(),An.insertStyleElement=z();N()(Mn.Z,An),Mn.Z&&Mn.Z.locals&&Mn.Z.locals;var On=r(21015),Nn={};Nn.styleTagTransform=$(),Nn.setAttributes=U(),Nn.insert=x().bind(null,"head"),Nn.domAPI=I(),Nn.insertStyleElement=z();N()(On.Z,Nn),On.Z&&On.Z.locals&&On.Z.locals;var Dn=r(16144),In=r.n(Dn),jn=r(53772),xn=r.n(jn);function Rn(){return Rn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[t,r]=(0,a.useState)({name:"Default Style",rules:[{name:"Area",symbolizers:[{kind:"Fill",color:"#00b72b",outlineOpacity:.8,opacity:.5,fillOpacity:.8,outlineWidth:2,outlineColor:"#00b72b"}]},{name:"Line",symbolizers:[{kind:"Line",color:"#00b72b",width:2,opacity:.8}]},{name:"Point",symbolizers:[{kind:"Mark",wellKnownName:"circle",color:"#00b72b",strokeColor:"#00b72b",strokeOpacity:.8,opacity:.5,radius:7}],filter:["==","label","undefined"]},{name:"Text",symbolizers:[{kind:"Text",label:"{{label}}",size:12,font:["sans-serif"],opacity:.8,color:"#00b72b",offset:[5,5],haloColor:"#00b72b",haloWidth:1}],filter:["!=","label","undefined"]}]}),n=(0,k.useMap)();return(0,a.useEffect)((()=>{if(!t||!n)return;const e=new(xn());let r=T().getLayerByName(n,"react-geo_digitize");(async()=>{let a,n,o,i;for(const r of t.rules){const t={name:"",rules:[r]},l=await e.writeStyle(t);if(!l.output)return;"Fill"===r.symbolizers[0].kind&&(a=l.output),"Text"===r.symbolizers[0].kind&&(i=l.output),"Line"===r.symbolizers[0].kind&&(n=l.output),"Mark"===r.symbolizers[0].kind&&(o=l.output)}r.setStyle(((e,t)=>{const r=e.getGeometry()?.getType();if(r)return["MultiPolygon","Polygon","Circle"].includes(r)?"function"==typeof a?a(e,t):a:["MultiLineString","LineString"].includes(r)?"function"==typeof n?n(e,t):n:["MultiPoint","Point"].includes(r)?e.get("label")?"function"==typeof i?i(e,t):i:"function"==typeof o?o(e,t):o:void 0}))})()}),[t,n]),a.createElement(In(),Rn({style:t,onStyleChange:r},e))};function Bn(){return Bn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[t,r]=(0,a.useState)(!1),{t:o}=(0,E.useTranslation)();return n().createElement(n().Fragment,null,n().createElement(l.Z,{type:"link",onClick:()=>{r(!0)},icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.XsY})},o("StylingDrawer.pickColor")),n().createElement(Fe.Z,Bn({title:o("StylingDrawer.title"),placement:"right",onClose:()=>{r(!1)},open:t,mask:!1,width:"45vw",className:"color-pick-drawer"},e),n().createElement(Un,null)))};var _n=({showDrawPoint:e,showDrawLine:t,showDrawPolygon:r,showDrawCircle:a,showDrawRectangle:o,showDrawAnnotation:i,showModifyFeatures:l,showUploadFeatures:s,showDownloadFeatures:c,showDeleteFeatures:u})=>{const{t:d}=(0,E.useTranslation)(),m=(0,k.useMap)(),p=e=>{const t=new FileReader;t.onload=()=>{const e=(new($e())).readFeatures(t.result);if(m){const t=m.getView().getProjection().getCode();e.forEach((e=>{e.getGeometry()?.transform("EPSG:4326",t)}));const r=rt.DigitizeUtil.getDigitizeLayer(m).getSource();r?.addFeatures(e)}},t.readAsText(e)};return m?n().createElement(Qe(),null,e?n().createElement(Ke(),{name:"draw-point",drawType:"Point",type:"link",pressed:!1},n().createElement(Re.FontAwesomeIcon,{icon:xe.diR}),n().createElement("span",{className:"draw-point"},d("Draw.point"))):n().createElement(n().Fragment,null),t?n().createElement(Ke(),{name:"draw-line",drawType:"LineString",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.hx$}),n().createElement("span",{className:"draw-line"},d("Draw.line"))):n().createElement(n().Fragment,null),r?n().createElement(Ke(),{name:"draw-polygon",drawType:"Polygon",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.ubJ}),n().createElement("span",{className:"draw-polygon"},d("Draw.polygon"))):n().createElement(n().Fragment,null),a?n().createElement(Ke(),{name:"draw-circle",drawType:"Circle",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.diR}),n().createElement("span",{className:"draw-circle"},d("Draw.circle"))):n().createElement(n().Fragment,null),o?n().createElement(Ke(),{name:"draw-rectangle",drawType:"Rectangle",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.pL1}),n().createElement("span",{className:"draw-rectangle"},d("Draw.rectangle"))):n().createElement(n().Fragment,null),i?n().createElement(Ke(),{name:"draw-text",drawType:"Text",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.yGG}),n().createElement("span",{className:"draw-text"},d("Draw.text"))):n().createElement(n().Fragment,null),l?n().createElement(Ye(),{name:"draw-modify",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.Yai}),n().createElement("span",{className:"draw-modify"},d("Draw.modify"))):n().createElement(n().Fragment,null),s?n().createElement(Zn(),{name:"draw-upload",onChange:e=>{const t=e.target.files;t&&1===t.length&&("application/geo+json"===t[0].type||"application/geojson"===t[0].type||t[0].name.includes(".geojson")||t[0].name.includes(".json"))&&p(t[0])},type:"link","aria-label":"draw-upload"},n().createElement(Je(),{type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.cf$}),n().createElement("span",{className:"draw-upload"},d("Draw.upload")))):n().createElement(n().Fragment,null),c?n().createElement(Je(),{name:"draw-export",onClick:()=>{const e=[];if(m){const t=m.getView().getProjection().getCode(),r=rt.DigitizeUtil.getDigitizeLayer(m),a=r.getSource()?.getFeatures();if(a&&a.length>0){a.forEach((r=>{const a=r.clone();a.getGeometry()?.transform(t,"EPSG:4326"),e.push(a)}));const r=(new($e())).writeFeatures(e),n=new Blob([r],{type:"application/geo+json"}),o=window.URL.createObjectURL(n),i=document.createElement("a");i.href=o,i.setAttribute("download","exportedFeatures.geojson"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}}},type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.q7m}),n().createElement("span",{className:"draw-export"},d("Draw.export"))):n().createElement(n().Fragment,null),u?n().createElement(Ve(),{name:"draw-delete",type:"link"},n().createElement(Re.FontAwesomeIcon,{icon:xe.$aW}),n().createElement("span",{className:"draw-delete"},d("Draw.delete"))):n().createElement(n().Fragment,null),n().createElement(zn,null)):n().createElement(n().Fragment,null)},$n=r(73898),Gn=r.n($n),Vn=r(21800),Wn=r(14805),Kn=r.n(Wn),Hn=r(81474),Yn=r.n(Hn);var qn=e=>{const t=P()(),r=(0,a.useCallback)((async()=>{if(!t)return;if(T().getLayerByName(t,e.layerName))return;const r=new(Yn()),a=new(Ar())({color:"rgba(255, 255, 255, 0.15)"}),n=new(Nr())({color:"rgba(209, 70, 47, 1)",width:2}),o=new(Ir())({fill:a,stroke:n,image:new(Zr())({radius:5,fill:a,stroke:n})}),i=new(Kn())({source:r,style:o});i.set("name",e.layerName),t.addLayer(i)}),[t,e.layerName]),n=(0,a.useCallback)((()=>{if(!t)return;const r=T().getLayerByName(t,e.layerName);r&&t.removeLayer(r)}),[t,e.layerName]);(0,a.useEffect)((()=>(r(),()=>n())),[n,r])},Jn=r(47267),Xn={};Xn.styleTagTransform=$(),Xn.setAttributes=U(),Xn.insert=x().bind(null,"head"),Xn.domAPI=I(),Xn.insertStyleElement=z();N()(Jn.Z,Xn),Jn.Z&&Jn.Z.locals&&Jn.Z.locals;function Qn(){return Qn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[o]=(0,Oe.cI)();(0,a.useEffect)((()=>{o.setFieldsValue(t.getProperties())}),[t,o]);return n().createElement(st.Z,Qn({className:"feature-info-form",form:o,labelCol:{span:8},labelAlign:"left",labelWrap:!0},r),e?.map((e=>n().createElement(st.Z.Item,Qn({key:e.propertyName,name:e.propertyName,label:e.displayName||e.propertyName},e.fieldProps),n().createElement(Tt,Qn({label:e.displayName||e.propertyName},e.fieldProps))))))},to=r(8533),ro=r(95441),ao=r.n(ro),no=r(8155),oo={};oo.styleTagTransform=$(),oo.setAttributes=U(),oo.insert=x().bind(null,"head"),oo.domAPI=I(),oo.insertStyleElement=z();N()(no.Z,oo),no.Z&&no.Z.locals&&no.Z.locals;function io(){return io=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:o}=(0,E.useTranslation)();return n().createElement("div",{className:"pagination-toolbar"},n().createElement(to.Z,io({simple:!0,total:e.length,size:"small",pageSize:1},a)),n().createElement("div",{className:"copy-buttons"},n().createElement(da.Z,{title:o("PaginationToolbar.copyAsGeoJson")},n().createElement(l.Z,{type:"primary",size:"small",onClick:()=>{if(!t)return;const e=t.clone();if(r){const t=Object.entries(e.getProperties()),a=t.filter((([e,t])=>r(e,t)));for(const[r,a]of t)a instanceof ao()||e.unset(r);e.setProperties(Object.fromEntries(a))}Ga()((new($e())).writeFeature(e))},icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.E9T})})),n().createElement(da.Z,{title:o("PaginationToolbar.copyAsObject")},n().createElement(l.Z,{type:"primary",size:"small",onClick:()=>{if(!t)return;let e=Object.entries(De()(t.getProperties())).filter((([,e])=>!(e instanceof ao())));r&&(e=e.filter((([e,t])=>r(e,t)))),Ga()(JSON.stringify(Object.fromEntries(e)))},icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.OGB})}))))},so=r(17368),co={};co.styleTagTransform=$(),co.setAttributes=U(),co.insert=x().bind(null,"head"),co.domAPI=I(),co.insertStyleElement=z();N()(so.Z,co),so.Z&&so.Z.locals&&so.Z.locals;function uo(){return uo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[i,l]=(0,a.useState)(1),[s,c]=(0,a.useState)(),u=P()(),d=`selection-layer-${t}`;qn({layerName:d}),(0,a.useEffect)((()=>{if(!u)return;const t=T().getLayerByName(u,d);t&&(t.getSource()?.clear(),l(1),e.length>0&&c(e[0]))}),[e,u,d]),(0,a.useEffect)((()=>{if(!s||!u)return;const e=T().getLayerByName(u,d);e&&(e.getSource()?.clear(),e.getSource()?.addFeature(s))}),[s,u,d]);if(!r||!s)return n().createElement(n().Fragment,null);const m=r.filter((e=>void 0!==e)).map(((e,t)=>({label:e.title,key:`${t}`,forceRender:!0,children:n().createElement(eo,{name:e.title,feature:s,formConfig:e.children})})));return n().createElement("div",{className:"feature-info-tabs"},n().createElement(lo,{features:e,selectedFeature:s,current:i,onChange:t=>{t<1||(l(t),c(e[t-1]))},exportFilter:e=>{let t=!1;for(const a of r)if(a.children)for(const r of a.children)if(r.propertyName===e){t=!0;break}return t}}),n().createElement(lt.Z,uo({items:m},o)))},po=r(41773),go=r.n(po),fo=r(86092),yo={};yo.styleTagTransform=$(),yo.setAttributes=U(),yo.insert=x().bind(null,"head"),yo.domAPI=I(),yo.insertStyleElement=z();N()(fo.Z,yo),fo.Z&&fo.Z.locals&&fo.Z.locals;function ho(){return ho=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[o,i]=(0,a.useState)(),[l,s]=(0,a.useState)(),[c,u]=(0,a.useState)([]),d=P()(),{t:m}=(0,E.useTranslation)(),p=`selection-layer-${t}`;qn({layerName:p}),(0,a.useEffect)((()=>{if(!d)return;const t=T().getLayerByName(d,p);t&&(t.getSource()?.clear(),i(1),e.length>0&&s(e[0]))}),[e,d,p]),(0,a.useEffect)((()=>{if(!l||!d)return;const e=T().getLayerByName(d,p);if(!e)return;const t=Object.entries(l.getProperties()).filter((([,e])=>e instanceof ao())).map((([e])=>e));u(t),e.getSource()?.clear(),e.getSource()?.addFeature(l)}),[l,d,p]);const g=t=>{i(t),s(e[t-1])};if(!l)return n().createElement(n().Fragment,null);const f=l.getKeys().filter((e=>!c.includes(e.toLocaleLowerCase())));return n().createElement(go(),ho({className:"property-grid",feature:l,attributeFilter:f,size:"small",sticky:!0,title:()=>n().createElement(lo,{features:e,selectedFeature:l,current:o,onChange:g}),columns:[{title:m("FeaturePropertyGrid.key"),dataIndex:"attributeName",key:"attributeName",width:"50%",ellipsis:!0,defaultSortOrder:"ascend",sorter:(e,t)=>e.key.localeCompare(t.key)},{title:m("FeaturePropertyGrid.value"),dataIndex:"attributeValue",key:"attributeValue",width:"50%",ellipsis:!0}],scroll:{scrollToFirstRowOnChange:!0,y:"calc(100% - 90px)"}},r))},bo=r(16813),wo={};wo.styleTagTransform=$(),wo.setAttributes=U(),wo.insert=x().bind(null,"head"),wo.domAPI=I(),wo.insertStyleElement=z();N()(bo.Z,wo),bo.Z&&bo.Z.locals&&bo.Z.locals;function vo(){return vo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:r}=(0,E.useTranslation)(),o=(0,k.useMap)(),i=fe(),l=Q(),s=C(),[c,u]=(0,a.useState)([]),m=e=>!!e.get("hoverable")&&(e instanceof f()&&e.getSource()instanceof ue()||e instanceof h()&&e.getSource()instanceof me()),p=(0,a.useCallback)((()=>{if(!o)return;const e=T().getAllLayers(o,m);u(e.filter((e=>e.getVisible())))}),[o]);if((0,a.useEffect)((()=>{if(!o)return;p();const e=T().getAllLayers(o,m);return e.forEach((e=>e.on("change:visible",p))),()=>{e.forEach((e=>e.un("change:visible",p)))}}),[o,p]),!o)return n().createElement(n().Fragment,null);const g=e=>e.split(":").length>1?e.split(":")[1]:e.split(":")[0];if(!e)return n().createElement(n().Fragment,null);return n().createElement("div",{className:"feature-info-panel"},n().createElement(Gn(),vo({featureCount:10,map:o,queryLayers:c,resultRenderer:e=>{const t=e.features,a=e.loading;if(0===Object.keys(t).length)return n().createElement("span",{className:"usage-hint"},r("FeatureInfo.usageHint"));const i=[];return Object.keys(t).forEach((e=>{let r=!1;const a=o.getAllLayers().find((t=>{if((0,se.isWmsLayer)(t)){const r=t.getSource(),a=g(r?.getParams().LAYERS);return g(e)===a}return!1}));l.forEach((t=>{if((a=t.integration)&&"feature-info"===a.placement&&(Array.isArray(t.integration.layers)&&t.integration.layers.includes(e)||!t.integration.layers)){const{key:a,wrappedComponent:o}=t;i.push({label:e,key:e,children:n().createElement(o,{key:a})}),r=!0}var a})),r||i.push({label:a?.get("name")||e,key:e,children:n().createElement("div",{key:e},a?.get("featureInfoFormConfig")?n().createElement(mo,{tabConfig:a?.get("featureInfoFormConfig"),features:t[e],layerName:e}):n().createElement(Eo,{features:t[e],layerName:e}))})})),n().createElement(fa.Z,{spinning:a},n().createElement(lt.Z,{destroyInactiveTabPane:!0,items:i}))},fetchOpts:(()=>{const e={};return c.forEach((t=>{const r=(0,d.getUid)(t);e[r]={headers:{...t.get("useBearerToken")?{...(0,pe.getBearerTokenHeader)(i?.getKeycloak())}:void 0}}})),e})(),onSuccess:e=>{const t=e.features,r={};Object.entries(t).forEach((e=>{const t=e[0],a=e[1];r[t]=(new($e())).writeFeatures(a)})),s((0,Vn.wl)(r))}},t)))},Lo=r(54458),To=r(78624),ko=r.n(To),Po=r(22632),Fo=r.n(Po),Co=r(21380),Zo=r.n(Co),Mo=r(93102),Ao=r.n(Mo),Oo=r(65947),No={};No.styleTagTransform=$(),No.setAttributes=U(),No.insert=x().bind(null,"head"),No.domAPI=I(),No.insertStyleElement=z();N()(Oo.Z,No),Oo.Z&&Oo.Z.locals&&Oo.Z.locals;function Do(){return Do=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[r,o]=(0,a.useState)(e.getSource()?.getParams().TIME),[i,l]=(0,a.useState)(),[s,c]=(0,a.useState)(),[u,d]=(0,a.useState)(),{t:m}=(0,E.useTranslation)();(0,a.useEffect)((()=>{const t=e.get("dimension");if(!t)return;let r;if(t.values&&(r=t.values.split(",")),!r||0===r.length)return;l(r[0]),c(r[r.length-1]),o(r[r.length-1]);const a={};if(r.forEach(((e,t)=>{a[e]=Ee()(e).format("YYYY-MM-DD")})),d(a),"current"===r.default){let e=[NaN,""];Object.values(a).forEach((t=>{let r=Ee()().diff(Ee()(t));r{o(t),e.getSource()?.updateParams({TIME:t})},step:null},t)):n().createElement("span",null,m("WmsTimeSlider.default")))},jo=r(86954),xo=r.n(jo);function Ro(){return Ro=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[l,s]=(0,a.useState)(!1),[c,u]=(0,a.useState)(!1),m=C(),g=fe(),f=(0,k.useMap)(),{t:y}=(0,E.useTranslation)(),h=e.get("downloadConfig")??null,b=M((e=>e.editFeature.userEditMode)),w=async()=>{if(f){u(!0);try{let t=await xo().getExtentForLayer(e,{headers:e.get("useBearerToken")?{...(0,pe.getBearerTokenHeader)(g?.getKeycloak())}:{}});t=(0,gr.transformExtent)(t,"EPSG:4326",f.getView().getProjection()),f.getView().fit(t)}catch(e){yt().error(e),o.Z.error({message:y("LayerTreeContextMenu.extentError")})}finally{u(!1)}}},v=e=>{const t=[e];for(const r of e.getLayers().getArray())r instanceof p()&&t.push(...v(r));return t},S=e=>{const t=(e=>f?v(f.getLayerGroup()).filter((t=>t.getLayers().getArray().includes(e))):[])(e);t.forEach((t=>t.getLayers().remove(e)))},L=()=>{if(!f)return;S(e);const t=T().getLayerByName(f,y("AddLayerModal.externalWmsFolder")),r=T().getLayerByName(f,y("UploadDataModal.uploadedDataFolder"));t&&0===t.getLayers().getLength()&&S(t),r&&0===r.getLayers().getLength()&&S(r)},P=async t=>{if(!e)return;const r={method:"GET",headers:{...e.get("useBearerToken")?{...(0,pe.getBearerTokenHeader)(g?.getKeycloak())}:void 0}},a=await fetch(t,r),n=await a.blob(),o=document.createElement("a");o.href=URL.createObjectURL(n),o.setAttribute("download",e.get("name")),o.click()};let F=[];if((0,se.isWmsLayer)(e)&&F.push({label:n().createElement(fa.Z,{spinning:c},y("LayerTreeContextMenu.layerZoomToExtent")),key:"zoomToExtent"}),(0,se.isWmsLayer)(e)&&e.getVisible()){const r=t.includes((0,d.getUid)(e));F.push({label:y(r?"LayerTreeContextMenu.hideLegend":"LayerTreeContextMenu.showLegend"),key:"toggleLegend"})}if((e.get("isExternalLayer")||e.get("isUploadedLayer"))&&F.push({label:y("LayerTreeContextMenu.removeLayer"),key:"removeExternal"}),h){const e=h.map((e=>({label:y("LayerTreeContextMenu.downloadLayer",{formatName:e.formatName??"XML"}),key:`downloadLayer|${encodeURI(e.downloadUrl)}`})));F.push(...e)}return e.get("editable")&&(b.includes("CREATE")||b.includes("UPDATE")||b.includes("DELETE"))&&F.push({label:y("LayerTreeContextMenu.editLayer"),key:"editLayer"}),F.push({label:y("LayerTreeContextMenu.layerDetails"),key:"layerDetails"}),n().createElement("div",{"aria-label":"layer-context"},n().createElement(Lr.Z,Ro({menu:{items:F,onClick:a=>{if(a?.key.startsWith("downloadLayer")){const e=a.key.split("|")[1];P(decodeURI(e))}switch(a?.key){case"zoomToExtent":w();break;case"removeExternal":L();break;case"toggleLegend":const a=(0,d.getUid)(e),n=[...t];n.includes(a)?n.splice(n.indexOf(a),1):n.push(a),r(n);break;case"editLayer":m((0,ke.hr)(null)),m((0,ke.vN)((0,d.getUid)(e))),m((0,Pe.$Z)());break;case"layerDetails":m((0,ga.uF)((0,d.getUid)(e))),m((0,ga.$Z)())}s(!1)}},placement:"bottomLeft",onOpenChange:s,open:l,trigger:["click"]},i),n().createElement(Re.FontAwesomeIcon,{icon:xe.iV1})))},Bo=r(79770),zo={};zo.styleTagTransform=$(),zo.setAttributes=U(),zo.insert=x().bind(null,"head"),zo.domAPI=I(),zo.insertStyleElement=z();N()(Bo.Z,zo),Bo.Z&&Bo.Z.locals&&Bo.Z.locals;function _o(){return _o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const t=(0,k.useMap)(),r=fe(),{t:o}=(0,E.useTranslation)(),[i,l]=(0,a.useState)([]),[s,c]=(0,a.useState)({});(0,a.useEffect)((()=>{if(!t)return;const e=T().getAllLayers(t);return e.forEach((e=>{if(e instanceof pa()){const t=e.getSource();t.hasListener("tileloadstart")||t.on("tileloadstart",u),t.hasListener("tileloadend")||t.hasListener("tileloaderror")||t.on(["tileloadend","tileloaderror"],m)}})),()=>{e.forEach((e=>{if(e instanceof pa()){const t=e.getSource();t.hasListener("tileloadstart")&&t.un("tileloadstart",u),t.hasListener("tileloadend")&&t.un("tileloadend",m),t.hasListener("tileloaderror")&&t.un("tileloaderror",m)}}))}}),[t]);const u=e=>{c((t=>{const r=parseInt((0,d.getUid)(e.target),10),a={...t};return a[r]&&a[r].loaded>=a[r].loading?(a[r].loading=1,a[r].loaded=0,a[r].percent=0,a):(a[r]||(a[r]={loading:0,loaded:0,percent:0}),a[r].loading=Number.isInteger(a[r].loading)?a[r].loading+1:1,a)}))},m=e=>{c((t=>{const r=parseInt((0,d.getUid)(e.target),10),a={...t};a[r]||(a[r]={loading:0,loaded:0,percent:0}),a[r].loaded=Number.isInteger(a[r].loaded)?a[r].loaded+1:1;const n=Math.round(a[r].loaded/a[r].loading*100);return n>a[r].percent&&(a[r].percent=n),a}))};return t?n().createElement(ko(),_o({"aria-label":"layertree",className:"layertree",map:t,nodeTitleRenderer:e=>{if(!t)return;const a=t.getView(),c=a.getProjection().getUnits()||"m",u=a.getResolution(),m=u?T().getScaleForResolution(u,c):void 0,g=e instanceof pa()&&(0,d.getUid)(e.getSource())?s[(0,d.getUid)(e.getSource())]?.percent:100;return e instanceof p()?n().createElement("div",{"aria-label":"layer-group"},e.get("name")):n().createElement(n().Fragment,null,n().createElement("div",{className:"tree-node-header","aria-label":"tree-node-header"},n().createElement(Lo.Z,{"aria-label":"loading-indicator",className:"loading-indicator",type:"circle",percent:g,format:()=>"",width:16,strokeWidth:20}),n().createElement("span",{"aria-label":"layer-name"},e.get("name")),(e instanceof h()||e instanceof f())&&n().createElement("div",{"aria-label":"layer-context-menu"},n().createElement(Uo,{layer:e,visibleLegendsIds:i,setVisibleLegendsIds:l}))),e.get("visible")&&n().createElement("div",{className:"layer-transparency","aria-label":"transparency-slider"},n().createElement(Zo(),{tooltip:{formatter:e=>`${o("LayerTree.transparency")}: ${e}%`},layer:e})),e.get("visible")&&"WMSTIME"===e.get("type")&&n().createElement("div",{className:"layer-time-slider"},n().createElement(Io,{layer:e})),e.get("visible")&&i.includes((0,d.getUid)(e))&&n().createElement(Fo(),{layer:e,errorMsg:o("LayerTree.noLegendAvailable"),extraParams:{scale:m,LEGEND_OPTIONS:"fontAntiAliasing:true;forceLabels:on",TRANSPARENT:!0},headers:e.get("useBearerToken")?{...(0,pe.getBearerTokenHeader)(r?.getKeycloak())}:{}}))},filterFunction:e=>e.getLayers?!e.get("hideInLayerTree"):!(e.getSource&&e.getSource()?.forEachFeature),draggable:!0},e)):n().createElement(n().Fragment,null)},Go=r(81649),Vo=r.n(Go),Wo=r(85415),Ko={};Ko.styleTagTransform=$(),Ko.setAttributes=U(),Ko.insert=x().bind(null,"head"),Ko.domAPI=I(),Ko.insertStyleElement=z();N()(Wo.Z,Ko),Wo.Z&&Wo.Z.locals&&Wo.Z.locals;var Ho=({showMeasureDistance:e,showMeasureArea:t})=>{const{t:r}=(0,E.useTranslation)(),a=(0,k.useMap)();return a?n().createElement(Qe(),null,e?n().createElement(Vo(),{geodesic:!0,name:"line",map:a,measureType:"line",type:"link",continueLineMsg:r("Measure.clicktodrawline")},n().createElement(Re.FontAwesomeIcon,{icon:xe.SoD}),n().createElement("span",{className:"measure-text"},r("Measure.line"))):n().createElement(n().Fragment,null),t?n().createElement(Vo(),{geodesic:!0,name:"poly",map:a,measureType:"polygon",type:"link",continuePolygonMsg:r("Measure.clicktodrawarea")},n().createElement(Re.FontAwesomeIcon,{icon:xe.ubJ}),n().createElement("span",{className:"measure-text"},r("Measure.area"))):n().createElement(n().Fragment,null)):n().createElement(n().Fragment,null)},Yo=r(35818),qo={};qo.styleTagTransform=$(),qo.setAttributes=U(),qo.insert=x().bind(null,"head"),qo.domAPI=I(),qo.insertStyleElement=z();N()(Yo.Z,qo),Yo.Z&&Yo.Z.locals&&Yo.Z.locals;function Jo(){return Jo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{t:t}=(0,E.useTranslation)(),r=(0,k.useMap)(),o=Q(),i=C(),s=M((e=>e.toolMenu.availableTools)),c=M((e=>e.toolMenu.activeKeys)),u=fe(),d=u?.getKeycloak(),[m,p]=(0,a.useState)(!1),[g,f]=(0,a.useState)([]);(0,a.useEffect)((()=>{const e=window.matchMedia("only screen and (max-width: 450px) and (orientation: portrait),only screen and (max-width: 750px) and (orientation: landscape), only screen and (max-width: 580px)"),t=new RegExp("/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/");(e.matches||t.test(window.navigator.userAgent))&&p(!0)}),[]),(0,a.useEffect)((()=>{g.length<1&&(s.includes("default")?f(["measure_tools","draw_tools","feature_info","print","tree","permalink","language_selector"]):f(s))}),[g,s]),(0,a.useEffect)((()=>{c.includes("print")&&c.includes("measure_tools")&&(c.indexOf("print")"print"!==e)))):i((0,Aa.wG)(c.filter((e=>"measure_tools"!==e)))))}),[c,i]);const y=e=>{switch(e){case"measure_tools":return{icon:xe.KxN,title:t("ToolMenu.measure"),wrappedComponent:n().createElement(Ho,{showMeasureDistance:s.includes("default")||s.includes("measure_tools_distance"),showMeasureArea:s.includes("default")||s.includes("measure_tools_area")})};case"draw_tools":return{icon:xe.ubJ,title:t("ToolMenu.draw"),wrappedComponent:n().createElement(_n,{showDrawPoint:s.includes("default")||s.includes("draw_tools_point"),showDrawLine:s.includes("default")||s.includes("draw_tools_line"),showDrawPolygon:s.includes("default")||s.includes("draw_tools_polygon"),showDrawCircle:s.includes("default")||s.includes("draw_tools_circle"),showDrawRectangle:s.includes("default")||s.includes("draw_tools_rectangle"),showDrawAnnotation:s.includes("default")||s.includes("draw_tools_annotation"),showModifyFeatures:s.includes("default")||s.includes("draw_tools_modify"),showUploadFeatures:s.includes("default")||s.includes("draw_tools_upload"),showDownloadFeatures:s.includes("default")||s.includes("draw_tools_download"),showDeleteFeatures:s.includes("default")||s.includes("draw_tools_delete")})};case"feature_info":return{icon:xe.kwz,title:t("ToolMenu.featureInfo"),wrappedComponent:n().createElement(So,{enabled:c.includes("feature_info")})};case"print":return{icon:xe.kwI,title:t("ToolMenu.print"),wrappedComponent:r?n().createElement(Fn,{active:c.includes("print"),layerBlackList:["react-geo_measure","hoverVectorLayer"]}):n().createElement(n().Fragment,null)};case"tree":return{icon:xe.aC2,title:t("ToolMenu.layertree"),wrappedComponent:n().createElement("div",{className:"tree-wrapper"},n().createElement($o,null),n().createElement(l.Z,{className:"add-wms-button tool-menu-button",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.r8p}),onClick:()=>i((0,A.$Z)())},t("ToolMenu.addWms")),d&&ne().geoserver?.upload?.authorizedRoles?.some((e=>d.hasResourceRole(e,d.clientId)))&&n().createElement(l.Z,{className:"upload-data-button tool-menu-button",icon:n().createElement(Re.FontAwesomeIcon,{icon:xe.cf$}),onClick:()=>i((0,Oa.$Z)())},t("ToolMenu.uploadData")))};case"permalink":return{icon:xe.M6U,title:t("Permalink.title"),wrappedComponent:n().createElement(qa,null)};case"language_selector":return{icon:xe.BCn,title:t("ToolMenu.languageSelect"),wrappedComponent:n().createElement(xa,null)}}};return n().createElement("div",{"aria-label":"tool-menu",className:"tool-menu "+(m?"collapsed":"")},n().createElement(Ca.default,Jo({expandIconPosition:"end",activeKey:c,destroyInactivePanel:!0,onChange:e=>{p(!1),i((0,Aa.wG)(Ma()(e)))}},e),(()=>{const e=[];return g.forEach((t=>{const r=y(t);if(!r)return;const{icon:a,title:o,wrappedComponent:i}=r,l=n().createElement(Xo,{className:t,header:n().createElement(n().Fragment,null,a?n().createElement(Re.FontAwesomeIcon,{icon:a}):void 0,n().createElement("span",null,o)),key:t},i);e.push(l)})),o&&o.forEach((r=>{if((a=r.integration)&&"tool-menu"===a.placement){const{key:a,wrappedComponent:o,integration:{placement:i,label:l="Plugin",insertionIndex:s,icon:c,...u}}=r;e.splice(s||0,0,n().createElement(Xo,Jo({header:n().createElement(n().Fragment,null,c?n().createElement(Re.FontAwesomeIcon,{icon:c}):void 0,n().createElement("span",null,t(l))),key:a},u),n().createElement(o,null)))}var a})),e})()),n().createElement(da.Z,{placement:"right",title:t(m?"ToolMenu.expand":"ToolMenu.collapse")},n().createElement(l.Z,{className:"collapse-btn","aria-label":"collapse-button",icon:m?n().createElement(Re.FontAwesomeIcon,{icon:xe._tD}):n().createElement(Re.FontAwesomeIcon,{icon:xe.A35}),onClick:()=>{i((0,Aa.wG)([])),p(!m)}})))},ei=r(36449),ti=r(28837),ri=r(73161),ai=r.n(ri),ni=r(65352),oi={};oi.styleTagTransform=$(),oi.setAttributes=U(),oi.insert=x().bind(null,"head"),oi.domAPI=I(),oi.insertStyleElement=z();N()(ni.Z,oi),ni.Z&&ni.Z.locals&&ni.Z.locals;function ii(){return ii=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[t,r]=(0,a.useState)(""),[o,l]=(0,a.useState)(""),[s,c]=(0,a.useState)(!1),u=M((e=>e.uploadDataModal.visible)),d=M((e=>e.user)),m=C(),g=(0,k.useMap)(),f=fe(),{t:y}=(0,E.useTranslation)(),h=e=>({0:null,1:"org.locationtech.jts.geom.Point",3:"org.locationtech.jts.geom.LineString",5:"org.locationtech.jts.geom.Polygon",8:"org.locationtech.jts.geom.MultiPoint",11:"org.locationtech.jts.geom.Point",13:"org.locationtech.jts.geom.LineString",15:"org.locationtech.jts.geom.Polygon",18:"org.locationtech.jts.geom.MultiPoint",21:"org.locationtech.jts.geom.Point",23:"org.locationtech.jts.geom.LineString",25:"org.locationtech.jts.geom.Polygon",28:"org.locationtech.jts.geom.MultiPoint",31:null}[e]),b=e=>{switch(e){case"C":return"java.lang.String";case"D":return"java.util.Date";case"N":return"java.lang.Long";case"F":return"java.lang.Double";case"L":return"java.lang.Boolean";default:return null}};return n().createElement(i.Z,ii({className:"upload-data-modal",title:y("UploadDataModal.title"),open:u,onCancel:()=>{r(""),l(""),m((0,Oa.Cp)())},width:600,footer:!1},e),o&&n().createElement(re.Z,{message:o,closable:!0,type:"success"}),t&&n().createElement(re.Z,{message:t,closable:!0,type:"error"}),n().createElement(fa.Z,{spinning:s},n().createElement(li,{customRequest:async e=>{const{onError:t,onSuccess:r,file:a}=e,n=a.name.split("."),o=a.type,i=ne().geoserver?.base||"/geoserver",l=ne().geoserver?.upload?.workspace||"SHOGUN",s=`${n[0]}_${Date.now()}`.toUpperCase(),c={file:a,baseUrl:i,workspace:l,storeName:s,layerName:s};try{"image/tiff"===o&&await(async e=>{const{baseUrl:t,workspace:r,storeName:a,layerName:n,file:o}=e,i=`${t}/rest/workspaces/${r}/coveragestores/${a}/file.geotiff?configure=none`;if(!(await fetch(i,{method:"PUT",headers:{...(0,pe.getBearerTokenHeader)(f?.getKeycloak()),"Content-Type":"image/tiff"},body:o})).ok)throw new Error(y("UploadDataModal.error.general",{fileName:o.name}));const l=`${t}/rest/workspaces/${r}/coveragestores/${a}/coverages`;if(!(await fetch(l,{method:"POST",headers:{...(0,pe.getBearerTokenHeader)(f?.getKeycloak()),"Content-Type":"application/json"},body:JSON.stringify({coverage:{enabled:!0,name:n,nativeName:n,title:n,keywords:{string:["User upload",`Uploaded by ${d.providerDetails?.username}`]}}})})).ok)throw new Error(y("UploadDataModal.error.general",{fileName:o.name}))})(c),"application/zip"===o&&await(async e=>{const{baseUrl:t,workspace:r,storeName:a,layerName:n,file:o}=e,i=await ti.Uv.load(o);let l="",s={attribute:[]};if(1!==Object.entries(i).length)throw new Error(y("UploadDataModal.error.zipContent"));Object.entries(i).forEach((([e,t])=>{l=e;const r=t.parse("dbf",{properties:!1});s.attribute=r.fields.map((e=>({name:e.name,minOccurs:0,maxOccurs:1,nillable:!0,binding:b(e.type),length:e.length})));const a=t.parse("shx");s.attribute.push({name:"the_geom",minOccurs:0,maxOccurs:1,nillable:!0,binding:h(a.header.type)})}));const c=`${t}/rest/workspaces/${r}/datastores/${a}/file.shp?configure=none`;if(!(await fetch(c,{method:"PUT",headers:{...(0,pe.getBearerTokenHeader)(f?.getKeycloak()),"Content-Type":"application/zip"},body:o})).ok)throw new Error(y("UploadDataModal.error.general",{fileName:o.name}));const u=`${t}/rest/workspaces/${r}/datastores/${a}/featuretypes`;if(!(await fetch(u,{method:"POST",headers:{...(0,pe.getBearerTokenHeader)(f?.getKeycloak()),"Content-Type":"application/json"},body:JSON.stringify({featureType:{enabled:!0,name:n,nativeName:l,title:n,attributes:s,keywords:{string:["User upload",`Uploaded by ${d.providerDetails?.username}`]}}})})).ok)throw new Error(y("UploadDataModal.error.general",{fileName:o.name}))})(c),r&&r({baseUrl:i,workspace:l,layerName:s})}catch(e){t&&t({name:"UploadError",message:e instanceof Error?e.message:y("UploadDataModal.error.general",{fileName:a.name})})}},accept:"image/tiff,application/zip",maxCount:1,showUploadList:!1,beforeUpload:e=>{const t=ne().geoserver?.upload?.limit||2e8,a=e.type,n=e.size;if(r(""),l(""),n>t)return r(y("UploadDataModal.error.maxSize",{maxSize:t/1e6})),!1;const o=["application/zip","image/tiff"];return!!o.includes(a)||(r(y("UploadDataModal.error.supportedFormats",{supportedFormats:o.join(", ")})),!1)},onChange:async e=>{const t=e.file;if("uploading"===t.status&&c(!0),"done"===t.status){if(!f||!t.response)return;const e={name:t.response.layerName,type:"TILEWMS",clientConfig:{hoverable:!0},sourceConfig:{url:`${t.response.baseUrl}/ows?`,layerNames:`${t.response.workspace}:${t.response.layerName}`,useBearerToken:!0}},r=new(ai())({client:f}).parseTileLayer(e);r.set("layerConfig",e),r.set("isUploadedLayer",!0),r.set("groupName",y("UploadDataModal.uploadedDataFolder")),(e=>{if(!g)return;const t=y("UploadDataModal.uploadedDataFolder");let r=T().getLayerByName(g,t);if(!r){r=new(p())({layers:[],properties:{name:t}});const e=g.getLayerGroup().getLayers();e.insertAt(e?.getLength()||0,r)}r.getLayers().getArray().includes(e)||r.getLayers().push(e)})(r),l(y("UploadDataModal.success",{fileName:t.name,layerName:t.response.layerName})),c(!1)}else"error"===t.status&&(c(!1),yt().error(t.error),t.error&&t.error.message?r(t.error.message):r(y("UploadDataModal.error.general",{fileName:t.name})))}},n().createElement("p",{className:"ant-upload-drag-icon"},n().createElement(Re.FontAwesomeIcon,{icon:xe.cf$})),n().createElement("p",{className:"ant-upload-text"},y("UploadDataModal.description")),n().createElement("p",{className:"ant-upload-hint"},y("UploadDataModal.hint")))))};var ci=async()=>{const e=(0,k.useMap)(),t=fe(),r=function(){const{search:e}=window.location;return n().useMemo((()=>new URLSearchParams(e)),[e])}(),{t:a}=(0,E.useTranslation)(),o=r.get("layers");if(!e)return;const i=Ka().applyLink(e,";",(e=>e.get("name")),(e=>e instanceof h()||e instanceof f()));if(!i)return;const l=t=>{const r=new(p())({layers:[]});r.set("name",t);const a=e.getLayerGroup().getLayers();return a.insertAt(a?.getLength()||0,r),r};try{const r=JSON.parse(i);if(!t)throw new Error("Client is not available");const n=new(ai())({client:t});for(let t=0;te===t.name))),!r.get("isExternalLayer")&&!r.get("isUploadedLayer"))continue;let s;r.get("groupName")?(s=T().getLayerByName(e,r.get("groupName")),s||(s=l(r.get("groupName")))):(s=T().getLayersByProperty(e,"isExternalLayerGroup",!0)?.[0],s||(s=l(a("AddLayerModal.externalWmsFolder")),s.set("isExternalLayerGroup",!0))),T().getLayerByName(e,r.get("name"))||s.getLayers().push(r)}}}catch(e){yt().error(e)}},ui=r(65705),di={};di.styleTagTransform=$(),di.setAttributes=U(),di.insert=x().bind(null,"head"),di.domAPI=I(),di.insertStyleElement=z();N()(ui.Z,di),ui.Z&&ui.Z.locals&&ui.Z.locals;function mi(){return mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t(ci(),(0,a.useEffect)((()=>{const e=document.querySelectorAll(".loadmask")[0];e&&e.classList.add("loadmask-hidden")}),[]),n().createElement("div",mi({className:"App"},e),n().createElement(ca,null),n().createElement(te,null),n().createElement(Qo,null),n().createElement(pr,null),n().createElement(K,null),n().createElement(si,null),n().createElement(tr,null),n().createElement(Fa,null)));var gi=pi},30845:function(e,t,r){"use strict";r.r(t);var a=r(96985),n=r.n(a),o=r(9253),i=r(88182),l=r(38648),s=r(76772),c=r(17699),u=r(67502),d=r(87617),m=r.n(d),p=r(6767),g=r.n(p),f=r(15059),y=r(94671),h=r(70791),E=r(23213),b=r.n(E),w=r(87851),v=r.n(w),S=r(78388),L=r.n(S),T=r(31987),k=r(63102),P=r.n(k),F=r(28630),C=r.n(F),Z=r(39665),M=r.n(Z),A=r(20563),O=r(14589),N=r(12038),D=r.n(N),I=r(92212),j=r.n(I),x=r(15042),R=r.n(x),U=r(73161),B=r.n(U),z=r(12665),_=r.n(z),$=r(76688),G=r(77257),V=r(35895),W=r(97168);const K=(0,W.oM)({name:"appInfo",initialState:{authorities:[],buildTime:"",commitHash:"",userId:-1,version:""},reducers:{setAppInfo(e,t){return t.payload}}}),{setAppInfo:H}=K.actions;var Y=K.reducer;const q=(0,W.oM)({name:"description",initialState:"",reducers:{setDescription:(e,t)=>t.payload}}),{setDescription:J}=q.actions;var X=q.reducer,Q=r(61465);const ee={contact:"https://www.terrestris.de/de/kontakt/",imprint:"https://www.terrestris.de/de/impressum/",privacy:"https://www.terrestris.de/de/datenschutzerklaerung/"},te=(0,W.oM)({name:"legal",initialState:ee,reducers:{setLegal:(e,t)=>({contact:t.payload.contact||ee.contact,imprint:t.payload.imprint||ee.imprint,privacy:t.payload.privacy||ee.privacy})}}),{setLegal:re}=te.actions;var ae=te.reducer;const ne=(0,W.oM)({name:"logoPath",initialState:"./shogun_logo.png",reducers:{setLogoPath:(e,t)=>t.payload}}),{setLogoPath:oe}=ne.actions;var ie=ne.reducer;const le=(0,W.oM)({name:"searchEngines",initialState:["nominatim"],reducers:{setSearchEngines:(e,t)=>t.payload}}),{setSearchEngines:se}=le.actions;var ce=le.reducer,ue=r(14890),de=r(20908),me=r(68781),pe=r(6049),ge=r(28728),fe=r(21800);const ye=(0,W.oM)({name:"title",initialState:"SHOGun Client",reducers:{setTitle:(e,t)=>t.payload}}),{setTitle:he}=ye.actions;var Ee=ye.reducer,be=r(76712),we=r(63221);const ve=(0,W.oM)({name:"user",initialState:{},reducers:{setUser(e,t){return t.payload}}}),{setUser:Se}=ve.actions;var Le=ve.reducer;const Te=e=>(0,ue.UY)({addLayerModal:de.ZP,appInfo:Y,description:X,editFeature:Q.ZP,editFeatureDrawerOpen:me.ZP,layerDetailsModal:pe.ZP,legal:ae,logoPath:ie,print:ge.ZP,selectedFeatures:fe.ZP,title:Ee,toolMenu:be.ZP,uploadDataModal:we.ZP,searchEngines:ce,user:Le,...e}),ke=(0,W.xC)({reducer:Te()});var Pe=r(93379),Fe=r.n(Pe),Ce=r(7795),Ze=r.n(Ce),Me=r(90569),Ae=r.n(Me),Oe=r(3565),Ne=r.n(Oe),De=r(19216),Ie=r.n(De),je=r(44589),xe=r.n(je),Re=r(90978),Ue={};Ue.styleTagTransform=xe(),Ue.setAttributes=Ne(),Ue.insert=Ae().bind(null,"head"),Ue.domAPI=Ze(),Ue.insertStyleElement=Ie();Fe()(Re.Z,Ue),Re.Z&&Re.Z.locals&&Re.Z.locals;const Be=n().lazy((()=>Promise.all([r.e(987),r.e(592),r.e(12)]).then(r.bind(r,80209))));var ze=function(e){return e.APP_ID_NOT_SET="APP_ID_NOT_SET",e.APP_CONFIG_NOT_FOUND="APP_CONFIG_NOT_FOUND",e}(ze||{});const _e=new(_())({url:m().shogunBase||"/"}),$e=new(B())({client:_e}),Ge=e=>{switch(e){case"en":default:return u.Z;case"de":return c.Z}},Ve=async e=>{const t=await $e.parseMapView(e,{constrainOnlyCenter:!0});let r;const a=e.clientConfig?.mapView.projection,n=e.clientConfig?.mapView;if(a&&n?.extent&&4===n.extent.length){const e=(0,T.fromLonLat)([n.extent[0],n.extent[1]],a),t=(0,T.fromLonLat)([n.extent[2],n.extent[3]],a);r=[e[0],e[1],t[0],t[1]]}r&&t.set("extent",r),t.setConstrainResolution(!0);const o=await $e.parseLayerTree(e,a);return new(L())({view:t,layers:o,controls:(0,h.defaults)({zoom:!1})})},We=()=>{const e=new(v())({source:new(P())});e.set("name","OpenStreetMap");const t=new(v())({opacity:.5,visible:!0,source:new(C())({url:"https://gibs.earthdata.nasa.gov/wms/epsg3857/best/wms.cgi",projection:"EPSG:3857",params:{LAYERS:"MERRA2_2m_Air_Temperature_Assimilated_Monthly"}})});t.setProperties({name:"2-meter Air Temperature, Assimilated (Monthly, MERRA2)",hoverable:!0});const r=new(b())({layers:[t]});r.set("name","NASA Earth Observations");const a=new(b())({layers:[e]});a.set("name","Background");const n=(0,T.fromLonLat)([0,40],"EPSG:3857");return new(L())({view:new(M())({center:n,zoom:0}),layers:[a,r],controls:(0,h.defaults)({zoom:!1})})},Ke=async(e,t,a)=>{await r.I("default"),await new Promise(((e,r)=>{const a=document.createElement("script");a.src=t,a.type="text/javascript",a.async=!0,a.onload=()=>{a.parentElement?.removeChild(a),e()},a.onerror=e=>{a.parentElement?.removeChild(a),r(e)},document.head.appendChild(a)}));const n=window[e];await n.init(r.S.default);const o=[];for(const e of a){const t=(await n.get(e))();o.push(t)}return o},He=(e,t)=>"string"==typeof e?t===e:e instanceof RegExp&&e.test(t);(async()=>{try{o._m.config({paths:{vs:"./vs"}});const e=await(async()=>{const e=m().keycloak?.enabled,t=m().keycloak?.onLoadAction,r=m().keycloak?.host,a=m().keycloak?.realm,n=m().keycloak?.clientId;if(!e)return;if(!r)throw new Error("Neither config key keycloak.host nor environment KEYCLOAK_HOST is set");if(!a)throw new Error("Neither config key keycloak.realm nor environment KEYCLOAK_REALM is set");if(!n)throw new Error("Neither config key keycloak.clientId nor environment KEYCLOAK_CLIENT_ID is set");const o=new y.Z({url:`${r}`,realm:a,clientId:n});return o.onTokenExpired=async()=>{try{await o.updateToken(0)}catch(e){D().error("Error while refreshing the access token: ",e)}},await o.init({onLoad:t,checkLoginIframe:!1}),o})();e&&_e.setKeycloak(e);const t=parseInt(j().getQueryParam(window.location.href,"applicationId"),10);if(t||D().info("No application ID given, can't load any configuration."),!t&&!m().enableFallbackConfig)throw new Error(ze.APP_ID_NOT_SET);let r;if(t&&(r=await(async e=>{try{D().info(`Loading application with ID ${e}`);const t=await _e.application().findOne(e);return D().info(`Successfully loaded application with ID ${e}`),t}catch(t){D().error(`Error while loading application with ID ${e}: ${t}`)}})(t)),!r&&!m().enableFallbackConfig)throw new Error(ze.APP_CONFIG_NOT_FOUND);const a=r?.clientConfig?.defaultLanguage;a||V.Z.use(f.Z),await V.Z.init(V.u),a&&V.Z.changeLanguage(a);const s=(e=>{const t={"--primaryColor":"#59666C","--secondaryColor":"#70B3BE","--complementaryColor":"#FFFFFF"};return e?(e.primaryColor&&(t["--primaryColor"]=e.primaryColor),e.secondaryColor&&(t["--secondaryColor"]=e.secondaryColor),e.secondaryColor&&(t["--complementaryColor"]=e.complementaryColor),t):t})(r?.clientConfig?.theme);i.ZP.config({theme:{primaryColor:g()(s["--primaryColor"]).isLight()?g()(s["--primaryColor"]).darken(.5).hexa():s["--primaryColor"]}}),Object.keys(s).forEach((e=>{document.body.style.setProperty(e,s[e])})),ke.subscribe((()=>{document.title=ke.getState().title})),(async e=>{if(e){if(e.name&&ke.dispatch(he(e.name)),e.clientConfig?.description&&ke.dispatch(J(e.clientConfig?.description)),e.clientConfig?.legal&&ke.dispatch(re(e.clientConfig.legal)),e?.clientConfig?.theme?.logoPath&&ke.dispatch(oe(e.clientConfig.theme.logoPath)),ke.dispatch(se(["nominatim"])),e.toolConfig&&e.toolConfig.length>0){const t=[];e.toolConfig.map((e=>{e.config.visible&&"search"!==e.name&&t.push(e.name),"search"===e.name&&e.config.engines.length>0&&ke.dispatch(se(e.config.engines))})),ke.dispatch((0,be.nn)(t))}}else D().info("No application configuration provided, the default store will be loaded")})(r);const c=await(async()=>{try{D().info("Loading application info");const e=await _e.info().getAppInfo();return D().info("Successfully loaded application info"),e}catch(e){D().error("Error while loading application info: ",e)}})();(async e=>{e&&ke.dispatch(H(e))})(c);(async e=>{e&&ke.dispatch(Se(e))})(await(async e=>{if(e)try{D().info(`Loading user with ID ${e}`);const t=await _e.user().findOne(e);return D().info(`Successfully loaded user with ID ${e}`),t}catch(t){D().error(`Error while loading user with ID ${e}: `,t)}else D().info("No user ID given, can't load it's details.")})(c?.userId));const u=_e?.getKeycloak()?.tokenParsed?.realm_access?.roles;let d=["NONE"];u&&m().featureEditRoles&&(d=((e,t)=>{const{authorizedRolesForCreate:r,authorizedRolesForUpdate:a,authorizedRolesForDelete:n,authorizedRolesForEditingGeometries:o}=t,i=[];for(const t of e)r?.some((e=>He(e,t)))&&i.push("CREATE"),a?.some((e=>He(e,t)))&&i.push("UPDATE"),n?.some((e=>He(e,t)))&&i.push("DELETE"),o?.some((e=>He(e,t)))&&i.push("EDIT_GEOMETRY");return i})(u,m().featureEditRoles)),ke.dispatch((0,Q.Y3)(d));const p=await(async e=>e?await Ve(e):(D().info("No application configuration provided, the default map will be loaded"),We()))(r),h=await(async e=>{if(!m().plugins||0===m().plugins.length)return D().info("No plugins found"),[];D().info("Loading plugins");const t=[];for(const r of m().plugins){const a=r.name,o=r.resourcePath,i=r.exposedPaths;if(!a)return D().error("Required plugin configuration 'name' is not set"),t;if(!o)return D().error("Required plugin configuration 'resourcePath' is not set"),t;if(!i)return D().error("Required plugin configuration 'exposedPaths' is not set"),t;let l;D().info(`Loading plugin ${a} (with exposed paths ${i.join(" and ")}) from ${o}`);try{l=await Ke(a,o,i),D().info(`Successfully loaded plugin ${a}`)}catch(e){return D().error(`Could not load plugin ${a}:`,e),t}l.forEach((r=>{const a=r.default,o=a.component;if(a.wrappedComponent=()=>n().createElement(o,{map:e,client:_e}),a.i18n&&Object.entries(a.i18n).forEach((e=>{const t=e[0],r=e[1].translation;V.Z.addResourceBundle(t,"translation",r,!0,!0)})),a.reducers){const e=Te(a.reducers);ke.replaceReducer(e)}t.push(a)}))}return t})(p);r||l.Z.error({message:V.Z.t("Index.applicationLoadErrorMessage"),description:V.Z.t("Index.applicationLoadErrorDescription",{applicationId:t}),duration:0}),(0,A.render)(n().createElement(n().StrictMode,null,n().createElement(n().Suspense,{fallback:n().createElement("span",null)},n().createElement(G.rA,{client:_e},n().createElement($.ol,{plugins:h},n().createElement(i.ZP,{locale:Ge(V.Z.language)},n().createElement(O.Provider,{store:ke},n().createElement(R().Provider,{value:p},n().createElement(Be,null)))))))),document.getElementById("app"))}catch(e){const t=document.querySelectorAll(".loadmask")[0];t&&t.classList.add("loadmask-hidden"),V.Z.isInitialized||(V.Z.use(f.Z),await V.Z.init(V.u));let r=V.Z.t("Index.errorDescription");if(e?.message===ze.APP_ID_NOT_SET&&(r=V.Z.t("Index.errorDescriptionAppIdNotSet")),e?.message===ze.APP_CONFIG_NOT_FOUND){const e=j().getQueryParam(window.location.href,"applicationId");r=V.Z.t("Index.errorDescriptionAppConfigNotFound",{applicationId:e})}(0,A.render)(n().createElement(n().StrictMode,null,n().createElement(s.Z,{className:"error-boundary",message:V.Z.t("Index.errorMessage"),description:r,type:"warning",showIcon:!0})),document.getElementById("app"))}})()},76688:function(e,t,r){"use strict";r.d(t,{ol:function(){return i}});var a=r(96985),n=r.n(a);const o=n().createContext([]),i=({plugins:e,children:t})=>n().createElement(o.Provider,{value:e},t);t.ZP=o},77257:function(e,t,r){"use strict";r.d(t,{rA:function(){return i}});var a=r(96985),n=r.n(a);const o=n().createContext(null),i=({client:e,children:t})=>n().createElement(o.Provider,{value:e},t);t.ZP=o},35895:function(e,t,r){"use strict";r.d(t,{Z:function(){return i},u:function(){return o}});var a=r(36609),n=r(73590);const o={resources:{de:{translation:{ApplicationInfo:{title:"Über",clientVersionTitle:"Client Version",backendVersionTitle:"Backend Version"},AddLayerModal:{addSelectedLayers:"Auswahl hinzufügen",addAllLayers:"Alle hinzufügen",inputPlaceholder:"WMS GetCapabilities URL angeben…",externalWmsFolder:"Externe Themen",title:"WMS hinzufügen",columnTitle:"Name",errorMessage:"Fehler",errorDescription:"Das Capabilities Dokument konnte nicht geladen werden, bitte prüfen Sie die URL",version:"Version"},BasicMapComponent:{processedLayersFolder:"Prozessierte Layer"},Permalink:{title:"Teilen",twitterTooltip:"Link via Twitter teilen",whatsAppTooltip:"Link via WhatsApp teilen",mailTooltip:"Link via Mail teilen",copyTooltip:"Link in die Zwischenablage kopieren",copiedToClipboard:"Link wurde in Zwischenablage kopiert",copyToClipboardFailed:"Link konnte nicht kopiert werden"},Measure:{title:"Messen",line:"Entfernung",area:"Fläche",clicktodrawline:"Zum Zeichnen einer Linie klicken",clicktodrawarea:"Zum Zeichnen einer Fläche klicken"},Draw:{point:"Punkt",line:"Linie",polygon:"Polygon",circle:"Kreis",rectangle:"Rechteck",text:"Anmerkung",modify:"Bearbeitung",upload:"Hochladen",delete:"Löschen",export:"Exportieren"},StylingDrawer:{pickColor:"Farbschema bearbeiten",title:"Farbschema bearbeiten"},FeatureInfo:{usageHint:"Klicken Sie in die Karte, um Detailinformationen zu erhalten."},LayerTree:{transparency:"Transparenz",noLegendAvailable:"Keine Legende verfügbar"},LayerTreeContextMenu:{layerZoomToExtent:"Auf Layerausdehnung zoomen",extentError:"Konnte nicht auf die Layerausdehnung zoomen",removeLayer:"Layer entfernen",showLegend:"Legende anzeigen",hideLegend:"Legende ausblenden",downloadLayer:"Layer exportieren ({{formatName}})",editLayer:"Layer bearbeiten",layerDetails:"Eigenschaften"},LayerDetailsModal:{title:"Eigenschaften des Layers {{layerName}}",internalConfigurationButtonTooltip:"Interne Konfiguration anzeigen",internalConfigurationButtonTooltipPressed:"Interne Konfiguration verbergen"},LayerDetails:{noDataPlaceholder:"-",layerNameLabel:"Name",layerTitleLabel:"Titel",serviceAbstractLabel:"Service Beschreibung",abstractLabel:"Beschreibung",accessConstraintsLabel:"Nutzungseinschränkungen",capabilitiesUrlLabel:"GetCapabilities URL",contactLabel:"Kontakt",minScaleLabel:"Min. Maßstab",maxScaleLabel:"Max. Maßstab",bboxLabel:"Bounding Box",errorMessage:"Fehler beim Laden der Layer Capabilities"},LayerConfiguration:{errorMessage:"Fehler beim Laden der internen Konfiguration"},ToolMenu:{expand:"Menu ausklappen",collapse:"Menu einklappen",measure:"Messen",draw:"Zeichnen",featureInfo:"Karteninhalte abfragen",addWms:"WMS hinzufügen",uploadData:"Daten hochladen",print:"Export",layertree:"Karten",languageSelect:"Sprachauswahl"},PrintForm:{title:"Kartentitel",initialTitle:"Druckausgabe",titlePlaceholder:"Bitte geben Sie einen Titel ein",comment:"Bemerkung",commentPlaceholder:"Bitte geben Sie einen Kommentar ein",layout:"Vorlage",dpi:"Auflösung",format:"Format",scale:"Maßstab",downloadBtnText:"Ausdruck erzeugen",printJobErrorMsg:"Der Kartenausdruck konnte nicht erzeugt werden",initErrorMsg:"Der Kartendruck Generator konnte nicht initialisiert werden.",outputFormatPlaceholder:"Bitte wählen Sie ein Ausgabeformat aus",resolutionPlaceholder:"Bitte wählen Sie eine Ausgabequalität aus",managerErrorMessage:"Fehler bei der Initialisierung der Export-Engine"},Footer:{refSystem:"Bezugssystem",scale:"Maßstab",mousePosition:"Mausposition",imprint:"Impressum",contact:"Kontakt",privacypolicy:"Datenschutz"},Index:{applicationLoadErrorMessage:"Fehler beim Laden der Applikation",applicationLoadErrorDescription:"Die Applikation mit der ID {{applicationId}} konnte nicht geladen werden. Die Standardkonfiguration wird stattdessen geladen.",errorMessage:"Fehler beim Laden der Applikation",errorDescription:"Aufgrund eines unerwarteten Fehlers konnte die Applikation nicht geladen werden.",errorDescriptionAppIdNotSet:"Keine Applikations-ID angegeben. Bitte geben Sie die ID als Abfrageparameter an, z.B. ?applicationId=1909",errorDescriptionAppConfigNotFound:"Die Applikation mit der ID {{applicationId}} konnte nicht geladen werden."},Nominatim:{placeholder:"Ortsname, Straßenname, Stadtteilname, POI usw."},UserMenu:{settingsMenuTitle:"Profil bearbeiten",infoMenuTitle:"Über",logoutMenuTitle:"Ausloggen",loginMenuTitle:"Anmelden"},WmsTimeSlider:{title:"Zeitlicher Bezug",default:"Keine Daten gefunden"},UploadDataModal:{title:"Daten hochladen",uploadedDataFolder:"Hochgeladene Daten",description:"Klicken Sie oder ziehen Sie die Datei zum Hochladen in diesen Bereich",hint:"Unterstützte Dateiformate sind Shapefile (gebündelt als *.zip) und GeoTIFF",success:"Datei {{fileName}} wurde erfolgreich geladen und der Layer {{layerName}} erstellt",error:{general:"Fehler beim Hochladen der Datei {{fileName}}",maxSize:"Der Upload überschreitet das Limit von {{maxSize}} MB",supportedFormats:"Der Dateityp ist nicht unterstützt ({{supportedFormats}})",zipContent:"Mehrere Geodatensätze innerhalb eines Archivs sind nicht unterstützt"}},MultiSearch:{searchInViewBox:"Im aktuellen Kartenausschnitt suchen",searchData:"Layerdaten durchsuchen",searchNominatim:"Ortssuche (Nominatim)",nominatimTitle:"Ortssuche",searchPlaceholder:"Orts- und Datensuche…"},EditFeatureDrawer:{featureEditor:"Objekteditor",noLayerFoundError:"Kein passender Layer gefunden - das Editieren ist nicht möglich.",isFeatureLockedErrorMsg:"Das ausgewählte Objekt wird bereits in einer anderen Sitzung bearbeitet.",closeDrawerWarnTitle:"Wollen Sie wirklich fortfahren?",closeDrawerWarnContent:"Dadurch werden alle nicht gespeicherten Änderungen an dem Objekt verworfen."},EditFeatureSwitch:{usageHint:"Objekt zum Editieren auf der Karte auswählen oder…",limitedUsageHint:"Zum Editieren bitte eine Objekt auf der Karte auswählen",createFeature:"Neues Objekt erstellen"},EditFeatureFullForm:{saveErrorMsg:"Das Objekt konnte nicht gespeichert werden",deleteErrorMsg:"Das Objekt konnte nicht gelöscht werden"},EditFeatureGeometryToolbar:{draw:"Neue Geometrie zeichnen",edit:"Geometrie editieren",delete:"Geometrie löschen",undo:"Rückgängig",redo:"Wiederherstellen"},ResetButton:{title:"Zurücksetzen"},SaveButton:{title:"Speichern"},DeleteButton:{title:"Objekt löschen",confirm:"Das Objekt wird vollständig gelöscht. Fortfahren?"},EditFeatureButton:{title:"Objekt bearbeiten"},FeaturePropertyGrid:{key:"Name",value:"Wert"},PaginationToolbar:{copyAsGeoJson:"Als GeoJSON kopieren (inkl. Geometrie)",copyAsObject:"Als Objekt kopieren (nur angezeigte Werte)"},JsonModal:{buttonTitle:"Öffne {{propertyName}}"}}},en:{translation:{ApplicationInfo:{title:"About",clientVersionTitle:"Client version",backendVersionTitle:"Backend version"},AddLayerModal:{addSelectedLayers:"Add selected",addAllLayers:"Add all",inputPlaceholder:"Enter a WMS GetCapabilities URL…",externalWmsFolder:"External layers",title:"Add WMS",columnTitle:"Name",errorMessage:"Error",errorDescription:"Could not load the provided Capabilities document, please check the validity of the URL",version:"Version"},BasicMapComponent:{processedLayersFolder:"Processed layers"},Permalink:{title:"Share",twitterTooltip:"Share link via Twitter",whatsAppTooltip:"Share link via WhatsApp",mailTooltip:"Share link via Mail",copyTooltip:"Copy link to Clipboard",copiedToClipboard:"Copied to clipboard",copyToClipboardFailed:"Could not copy link to clipboard"},Measure:{title:"Measure",line:"Distance",area:"Area",clicktodrawline:"Click to draw line",clicktodrawarea:"Click to draw area"},Draw:{point:"Point",line:"Line",polygon:"Polygon",circle:"Circle",rectangle:"Rectangle",text:"Annotation",modify:"Edit",upload:"Upload",delete:"Delete",export:"Export"},StylingDrawer:{pickColor:"Modify color scheme",title:"Modify color scheme"},FeatureInfo:{usageHint:"Click on the map to get details about the clicked coordinate."},LayerTree:{transparency:"Transparency",noLegendAvailable:"No legend available"},LayerTreeContextMenu:{layerZoomToExtent:"Zoom to layer extent",extentError:"Could not zoom to layer extent",removeLayer:"Remove layer",showLegend:"Show legend",hideLegend:"Hide legend",downloadLayer:"Export layer as {{formatName}}",editLayer:"Edit layer",layerDetails:"Properties"},LayerDetailsModal:{title:"Properties of layer {{layerName}}",internalConfigurationButtonTooltip:"Show internal configuration",internalConfigurationButtonTooltipPressed:"Hide internal configuration"},LayerDetails:{noDataPlaceholder:"-",layerNameLabel:"Name",layerTitleLabel:"Title",serviceAbstractLabel:"Service abstract",abstractLabel:"Abstract",accessConstraintsLabel:"Access constraints",capabilitiesUrlLabel:"GetCapabilities URL",contactLabel:"Contact",minScaleLabel:"Min. scale",maxScaleLabel:"Max. scale",bboxLabel:"Bounding box",errorMessage:"Error while loading the layer capabilities"},LayerConfiguration:{errorMessage:"Error while loading the internal configuration"},ToolMenu:{expand:"Expand",collapse:"Collapse",measure:"Measure",draw:"Draw",featureInfo:"Query map features",addWms:"Add WMS",uploadData:"Upload data",print:"Export",layertree:"Maps",languageSelect:"Language selector"},PrintForm:{title:"Title",initialTitle:"Title",titlePlaceholder:"Please input a title…",comment:"Comment",commentPlaceholder:"Please enter a comment…",layout:"Layout",dpi:"Resolution",format:"Format",scale:"Scale",downloadBtnText:"Create print",printJobErrorMsg:"Could not generate PDF output",initErrorMsg:"PDF Generator could not be initialized",outputFormatPlaceholder:"Please select an output format",resolutionPlaceholder:"Please select an output quality",managerErrorMessage:"Error while initializing the export engine"},Footer:{refSystem:"Reference system",scale:"Scale",mousePosition:"Mouse position",imprint:"Imprint",contact:"Contact",privacypolicy:"Privacy"},Index:{applicationLoadErrorMessage:"Error while loading the application",applicationLoadErrorDescription:"The application with ID {{applicationId}} could not be loaded correctly. You're seeing the default application configuration.",errorMessage:"Error while loading the application",errorDescription:"An unexpected error occured while loading the application.",errorDescriptionAppIdNotSet:"No application ID given. Please provide the ID as query parameter, e.g. ?applicationId=1909",errorDescriptionAppConfigNotFound:"The application with ID {{applicationId}} could not be loaded correctly."},Nominatim:{placeholder:"Place name, street name, district name, POI, etc."},UserMenu:{settingsMenuTitle:"Edit profile",infoMenuTitle:"About",logoutMenuTitle:"Logout",loginMenuTitle:"Login"},WmsTimeSlider:{title:"Time reference",default:"No data found"},UploadDataModal:{title:"Upload data",uploadedDataFolder:"Uploaded data",description:"Click or drag file to this area to upload",hint:"Supported file formats are Shapefile (bundled as *.zip) and GeoTIFF",success:"Successfully uploaded file {{fileName}} and created layer {{layerName}}",error:{general:"Error while uploading file {{fileName}}",maxSize:"The file exceeds the upload limit of {{maxSize}} MB",supportedFormats:"The given file type does not match the supported ones ({{supportedFormats}})",zipContent:"Multiple geodatasets within one archive are not supported"}},MultiSearch:{searchInViewBox:"Search in current extent",searchData:"Search layer data",searchNominatim:"Search nominatim",nominatimTitle:"Nominatim",searchPlaceholder:"Address and data search…"},EditFeatureDrawer:{featureEditor:"Feature editor",noLayerFoundError:"No layer found - the editing is not possible.",isFeatureLockedErrorMsg:"The selected feature is already being edited in another session.",closeDrawerWarnTitle:"Do you really want to quit?",closeDrawerWarnContent:"This will discard any unsaved changes to the feature."},EditFeatureSwitch:{usageHint:"Select an existing feature for editing on the map or…",limitedUsageHint:"To edit please select an object on the map",createFeature:"Create new feature"},EditFeatureFullForm:{saveErrorMsg:"Error while saving the feature",deleteErrorMsg:"Error while deleting the feature"},EditFeatureGeometryToolbar:{draw:"Draw new geometry",edit:"Edit geometry",delete:"Delete geometry",undo:"Undo",redo:"Redo"},ResetButton:{title:"Reset"},SaveButton:{title:"Save"},DeleteButton:{title:"Delete feature",confirm:"The feature will be completely deleted. Proceed?"},EditFeatureButton:{title:"Edit feature"},FeaturePropertyGrid:{key:"Name",value:"Value"},PaginationToolbar:{copyAsGeoJson:"Copy as GeoJSON (incl. geometry)",copyAsObject:"Copy as object (displayed values only)"},JsonModal:{buttonTitle:"Show {{propertyName}}"}}}},fallbackLng:"en",debug:!1,interpolation:{escapeValue:!1},returnNull:!1};a.ZP.use(n.initReactI18next),a.ZP.options=o;var i=a.ZP},21302:function(e,t,r){Promise.all([r.e(987),r.e(592),r.e(910)]).then(r.bind(r,30845))},20908:function(e,t,r){"use strict";r.d(t,{$Z:function(){return n},Cp:function(){return o}});const a=(0,r(97168).oM)({name:"addLayerModal",initialState:{visible:!1},reducers:{show(e){e.visible=!0},hide(e){e.visible=!1},toggle(e){e.visible=!e.visible}}}),{show:n,hide:o,toggle:i}=a.actions;t.ZP=a.reducer},61465:function(e,t,r){"use strict";r.d(t,{Y3:function(){return l},hr:function(){return o},mc:function(){return i},uQ:function(){return s},vN:function(){return n}});const a=(0,r(97168).oM)({name:"editFeature",initialState:{layerId:null,feature:null,userEditMode:["NONE"],formDirty:!1},reducers:{setLayerId(e,t){e.layerId=t.payload},setFeature(e,t){e.feature=t.payload},reset(e){e.layerId=null,e.feature=null},setUserEditMode(e,t){e.userEditMode=t.payload},setFormDirty(e,t){e.formDirty=t.payload}}}),{setLayerId:n,setFeature:o,reset:i,setUserEditMode:l,setFormDirty:s}=a.actions;t.ZP=a.reducer},68781:function(e,t,r){"use strict";r.d(t,{$Z:function(){return n},Cp:function(){return o}});const a=(0,r(97168).oM)({name:"editFeatureDrawerOpen",initialState:!1,reducers:{show(){return!0},hide(){return!1},toggle(e){return!e}}}),{show:n,hide:o,toggle:i}=a.actions;t.ZP=a.reducer},6049:function(e,t,r){"use strict";r.d(t,{$Z:function(){return o},Cp:function(){return i},uF:function(){return n}});const a=(0,r(97168).oM)({name:"layerDetailsModal",initialState:{visible:!1},reducers:{setLayer(e,t){e.layerId=t.payload},show(e){e.visible=!0},hide(e){e.visible=!1},toggle(e){e.visible=!e.visible}}}),{setLayer:n,show:o,hide:i,toggle:l}=a.actions;t.ZP=a.reducer},28728:function(e,t,r){"use strict";r.d(t,{eV:function(){return l}});const a=(0,r(97168).oM)({name:"print",initialState:{customMapParams:{},customParams:{printLegend:!1}},reducers:{setCustomMapParams:(e,t)=>{e.customMapParams=t.payload},setCustomParams:(e,t)=>{e.customParams=t.payload},addCustomMapParam:(e,t)=>{e.customMapParams={...e.customMapParams,...t.payload}},addCustomParam:(e,t)=>{e.customParams={...e.customParams,...t.payload}}}}),{setCustomMapParams:n,setCustomParams:o,addCustomMapParam:i,addCustomParam:l}=a.actions;t.ZP=a.reducer},21800:function(e,t,r){"use strict";r.d(t,{wl:function(){return n}});const a=(0,r(97168).oM)({name:"selectedFeatures",initialState:{},reducers:{setSelectedFeatures(e,t){return t.payload}}}),{setSelectedFeatures:n}=a.actions;t.ZP=a.reducer},76712:function(e,t,r){"use strict";r.d(t,{nn:function(){return o},wG:function(){return n}});const a=(0,r(97168).oM)({name:"toolMenu",initialState:{activeKeys:[],availableTools:["default"]},reducers:{setActiveKeys(e,t){e.activeKeys=[...t.payload]},setAvailableTools(e,t){e.availableTools=[...t.payload]}}}),{setActiveKeys:n,setAvailableTools:o}=a.actions;t.ZP=a.reducer},63221:function(e,t,r){"use strict";r.d(t,{$Z:function(){return n},Cp:function(){return o}});const a=(0,r(97168).oM)({name:"uploadDataModal",initialState:{visible:!1},reducers:{show(e){e.visible=!0},hide(e){e.visible=!1},toggle(e){e.visible=!e.visible}}}),{show:n,hide:o,toggle:i}=a.actions;t.ZP=a.reducer},65705:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},40171:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},88885:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},99327:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},5687:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},97555:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},38775:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},97598:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},16409:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},33354:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},78415:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},62923:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},58904:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},85677:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},34286:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},86201:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},21809:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},69616:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},85516:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},10767:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},42686:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},21015:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},7871:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},47267:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},17368:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},86092:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},8155:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},16813:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},79770:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},85415:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},35818:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},65352:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},72285:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},65947:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i},90978:function(e,t,r){"use strict";var a=r(87537),n=r.n(a),o=r(23645),i=r.n(o)()(n());i.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),t.Z=i}}]); +//# sourceMappingURL=common.b62c54aee16fe13cf356.js.map \ No newline at end of file diff --git a/latest/common.b62c54aee16fe13cf356.js.map b/latest/common.b62c54aee16fe13cf356.js.map new file mode 100644 index 000000000..36f029115 --- /dev/null +++ b/latest/common.b62c54aee16fe13cf356.js.map @@ -0,0 +1 @@ +{"version":3,"file":"common.b62c54aee16fe13cf356.js","mappings":"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","sources":["webpack://@terrestris/shogun-gis-client/./src/hooks/useAppDispatch.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useAppSelector.ts","webpack://@terrestris/shogun-gis-client/./src/components/AddLayerModal/index.less?3a66","webpack://@terrestris/shogun-gis-client/./src/components/AddLayerModal/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/usePlugins.ts","webpack://@terrestris/shogun-gis-client/./src/components/BasicMapComponent/index.tsx","webpack://@terrestris/shogun-gis-client/./src/plugin/index.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useSHOGunAPIClient.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useExecuteWfsTransaction.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useExecuteWfsDescribeFeatureType.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useWriteWfsTransaction.ts","webpack://@terrestris/shogun-gis-client/./src/components/MapDrawer/index.less?074d","webpack://@terrestris/shogun-gis-client/./src/components/MapDrawer/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/useExecuteGetFeature.ts","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureGeometryToolbar/index.less?cbd2","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureGeometryToolbar/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/JsonModal/index.less?cebe","webpack://@terrestris/shogun-gis-client/./src/components/JsonModal/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/DisplayField/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureForm/index.less?0b49","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureForm/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureTabs/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/DeleteButton/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/ResetButton/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/SaveButton/index.less?fbda","webpack://@terrestris/shogun-gis-client/./src/components/FeedbackIcon/index.less?77c8","webpack://@terrestris/shogun-gis-client/./src/components/FeedbackIcon/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/SaveButton/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureToolbar/index.less?6e4b","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureToolbar/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureFullForm/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/useExecuteWfsTransactionLock.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useGetFeatureInfo.ts","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureSwitch/index.less?2952","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureSwitch/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/index.less?c362","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/Footer/index.less?bf45","webpack://@terrestris/shogun-gis-client/./src/components/Footer/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/BasicNominatimSearch/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/MultiSearch/index.less?3fe9","webpack://@terrestris/shogun-gis-client/./src/utils/generateSolrQuery.ts","webpack://@terrestris/shogun-gis-client/./src/components/MultiSearch/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/SearchField/index.less?bf24","webpack://@terrestris/shogun-gis-client/./src/components/SearchField/index.tsx","webpack://@terrestris/shogun-gis-client/./src/utils/getGravatarUrl.ts","webpack://@terrestris/shogun-gis-client/./src/components/ApplicationInfo/index.less?5255","webpack://@terrestris/shogun-gis-client/./src/components/ApplicationInfo/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/useVersion.ts","webpack://@terrestris/shogun-gis-client/./src/components/UserMenu/index.less?f429","webpack://@terrestris/shogun-gis-client/./src/components/UserMenu/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/Header/index.less?b06e","webpack://@terrestris/shogun-gis-client/./src/components/Header/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerConfiguration/index.less?9f82","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerConfiguration/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerDetails/index.less?4108","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerDetails/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/index.less?b9d0","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/LanguageSelector/index.less?da3b","webpack://@terrestris/shogun-gis-client/./src/components/LanguageSelector/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/Permalink/index.less?76ea","webpack://@terrestris/shogun-gis-client/./src/components/Permalink/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/Serializer/SHOGunMapFishPrintV3WMSSerializer.ts","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/Serializer/SHOGunMapFishPrintV3TiledWMSSerializer.ts","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/CustomFieldInput/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/LayoutSelect/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/OutputFormatSelect/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/ResolutionSelect/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/ScaleSelect/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/Shared/Shared.ts","webpack://@terrestris/shogun-gis-client/./src/components/PrintForm/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/index.less?6377","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/StylingDrawer/index.less?723a","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/StylingDrawer/StylingComponent/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/StylingDrawer/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/useHighlightVectorLayer.ts","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoForm/index.less?d0f3","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoForm/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/PaginationToolbar/index.less?2293","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/PaginationToolbar/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoTabs/index.less?3c46","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoTabs/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeaturePropertyGrid/index.less?a4df","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeaturePropertyGrid/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/index.less?7905","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/WmsTimeSlider/index.less?47fb","webpack://@terrestris/shogun-gis-client/./src/components/WmsTimeSlider/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/LayerTree/LayerTreeContextMenu/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/LayerTree/index.less?c926","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/LayerTree/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Measure/index.less?beca","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Measure/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/index.less?b016","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/index.tsx","webpack://@terrestris/shogun-gis-client/./src/components/UploadDataModal/index.less?e08e","webpack://@terrestris/shogun-gis-client/./src/components/UploadDataModal/index.tsx","webpack://@terrestris/shogun-gis-client/./src/hooks/useRestoreTransientLayers.ts","webpack://@terrestris/shogun-gis-client/./src/hooks/useQueryParams.ts","webpack://@terrestris/shogun-gis-client/./src/App.less?984e","webpack://@terrestris/shogun-gis-client/./src/App.tsx","webpack://@terrestris/shogun-gis-client/./src/store/appInfo/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/description/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/legal/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/logoPath/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/searchEngines/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/title/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/user/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/store.ts","webpack://@terrestris/shogun-gis-client/./src/index.less?df1e","webpack://@terrestris/shogun-gis-client/./src/bootstrap.tsx","webpack://@terrestris/shogun-gis-client/./src/context/PluginContext.tsx","webpack://@terrestris/shogun-gis-client/./src/context/SHOGunAPIClientContext.tsx","webpack://@terrestris/shogun-gis-client/./src/i18n/index.ts","webpack://@terrestris/shogun-gis-client/./src/i18n/translations.ts","webpack://@terrestris/shogun-gis-client/./src/index.tsx","webpack://@terrestris/shogun-gis-client/./src/store/addLayerModal/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/editFeature/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/editFeatureDrawerOpen/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/layerDetailsModal/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/print/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/selectedFeatures/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/toolMenu/index.ts","webpack://@terrestris/shogun-gis-client/./src/store/uploadDataModal/index.ts","webpack://@terrestris/shogun-gis-client/./src/App.less?ee38","webpack://@terrestris/shogun-gis-client/./src/components/AddLayerModal/index.less?6017","webpack://@terrestris/shogun-gis-client/./src/components/ApplicationInfo/index.less?f940","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureForm/index.less?a2dd","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureGeometryToolbar/index.less?141f","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureSwitch/index.less?c38e","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/EditFeatureToolbar/index.less?512e","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/SaveButton/index.less?8e96","webpack://@terrestris/shogun-gis-client/./src/components/EditFeatureDrawer/index.less?8ba3","webpack://@terrestris/shogun-gis-client/./src/components/FeedbackIcon/index.less?78b5","webpack://@terrestris/shogun-gis-client/./src/components/Footer/index.less?a2b7","webpack://@terrestris/shogun-gis-client/./src/components/Header/index.less?b02d","webpack://@terrestris/shogun-gis-client/./src/components/JsonModal/index.less?4aac","webpack://@terrestris/shogun-gis-client/./src/components/LanguageSelector/index.less?bd2b","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerConfiguration/index.less?2da8","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/LayerDetails/index.less?acf5","webpack://@terrestris/shogun-gis-client/./src/components/LayerDetailsModal/index.less?a101","webpack://@terrestris/shogun-gis-client/./src/components/MapDrawer/index.less?bfb2","webpack://@terrestris/shogun-gis-client/./src/components/MultiSearch/index.less?ea03","webpack://@terrestris/shogun-gis-client/./src/components/Permalink/index.less?68c2","webpack://@terrestris/shogun-gis-client/./src/components/SearchField/index.less?8fd0","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/StylingDrawer/index.less?d252","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Draw/index.less?6534","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoForm/index.less?6db1","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeatureInfoTabs/index.less?fd2b","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/FeaturePropertyGrid/index.less?27cc","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/PaginationToolbar/index.less?8e8c","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/FeatureInfo/index.less?f3c5","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/LayerTree/index.less?d8e5","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/Measure/index.less?b29b","webpack://@terrestris/shogun-gis-client/./src/components/ToolMenu/index.less?949c","webpack://@terrestris/shogun-gis-client/./src/components/UploadDataModal/index.less?cb8c","webpack://@terrestris/shogun-gis-client/./src/components/UserMenu/index.less?a168","webpack://@terrestris/shogun-gis-client/./src/components/WmsTimeSlider/index.less?25f0","webpack://@terrestris/shogun-gis-client/./src/index.less?2fc8"],"sourcesContent":["import {\n useDispatch\n} from 'react-redux';\n\nimport type {\n AppDispatch\n} from '../store/store';\n\nexport const useAppDispatch = () => useDispatch();\n\nexport default useAppDispatch;\n","import {\n TypedUseSelectorHook,\n useSelector\n} from 'react-redux';\n\nimport type {\n RootState\n} from '../store/store';\n\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n\nexport default useAppSelector;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState,\n useEffect\n} from 'react';\n\nimport {\n Button,\n Input,\n Modal,\n ModalProps,\n notification,\n Select,\n Table\n} from 'antd';\n\nimport {\n getUid\n} from 'ol';\nimport OlLayerGroup from 'ol/layer/Group';\nimport ImageLayer from 'ol/layer/Image';\nimport TileLayer from 'ol/layer/Tile';\nimport ImageWMSSource from 'ol/source/ImageWMS';\nimport TileWMSSource from 'ol/source/TileWMS';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport UrlUtil from '@terrestris/base-util/dist/UrlUtil/UrlUtil';\nimport CapabilitiesUtil from '@terrestris/ol-util/dist/CapabilitiesUtil/CapabilitiesUtil';\nimport MapUtil from '@terrestris/ol-util/dist/MapUtil/MapUtil';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport useAppDispatch from '../../hooks/useAppDispatch';\nimport useAppSelector from '../../hooks/useAppSelector';\nimport {\n hide\n} from '../../store/addLayerModal';\n\nimport './index.less';\n\nexport type AddLayerModalProps = {} & Partial;\n\nexport const AddLayerModal: React.FC = ({\n ...restProps\n}): JSX.Element => {\n const [loading, setLoading] = useState(false);\n const [layers, setLayers] = useState<(ImageLayer | TileLayer)[]>([]);\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\n const [url, setUrl] = useState(\n 'https://sgx.geodatenzentrum.de/wms_topplus_open'\n );\n const [sanitizedUrl, setSanitizedUrl] = useState();\n const [version, setVersion] = useState('1.3.0');\n\n const isModalVisible = useAppSelector(state => state.addLayerModal.visible);\n\n const dispatch = useAppDispatch();\n\n const map = useMap();\n\n const {\n t\n } = useTranslation();\n\n useEffect(() => {\n if (!isModalVisible) {\n return;\n }\n setSanitizedUrl(UrlUtil.createValidGetCapabilitiesRequest(url, 'WMS', version));\n }, [version, isModalVisible, url]);\n\n const getCapabilities = async () => {\n if (!sanitizedUrl) {\n return;\n }\n try {\n setLoading(true);\n\n const capabilities = await CapabilitiesUtil.getWmsCapabilities(sanitizedUrl);\n const externalLayers = CapabilitiesUtil.getLayersFromWmsCapabilities(capabilities, 'Title');\n\n setLayers(externalLayers);\n } catch (error) {\n notification.error({\n message: t('AddLayerModal.errorMessage'),\n description: t('AddLayerModal.errorDescription')\n });\n } finally {\n setLoading(false);\n }\n };\n\n const closeModal = () => {\n setSelectedRowKeys([]);\n setLayers([]);\n dispatch(hide());\n };\n\n const onAddSelected = () => {\n const layersToAdd = layers.filter(layer => selectedRowKeys.includes(getUid(layer)));\n addLayers(layersToAdd);\n };\n\n const onAddAll = () => {\n addLayers(layers);\n };\n\n const addLayers = (layersToAdd: (ImageLayer | TileLayer)[]) => {\n if (!map) {\n return;\n }\n\n const targetFolderName = t('AddLayerModal.externalWmsFolder');\n let targetGroup = MapUtil.getLayerByName(map, targetFolderName) as OlLayerGroup;\n\n if (!targetGroup) {\n targetGroup = new OlLayerGroup({\n layers: []\n });\n targetGroup.set('name', targetFolderName);\n const existingGroups = map.getLayerGroup().getLayers();\n existingGroups.insertAt(existingGroups?.getLength() || 0, targetGroup);\n }\n\n layersToAdd.forEach(layerToAdd => {\n if (!targetGroup.getLayers().getArray().includes(layerToAdd)) {\n layerToAdd.set('isExternalLayer', true);\n\n let layerUrl: string | undefined;\n if (layerToAdd instanceof ImageLayer) {\n layerUrl = layerToAdd.getSource()?.getUrl();\n }\n\n if (layerToAdd instanceof TileLayer) {\n const urls = layerToAdd.getSource()?.getUrls();\n layerUrl = urls?.length === 1 ? urls[0] : undefined;\n }\n\n const layerConfig = {\n name: layerToAdd.get('name'),\n type: layerToAdd instanceof TileLayer ? 'TILEWMS' : 'WMS',\n opacity: layerToAdd.getOpacity(),\n sourceConfig: {\n layerNames: layerToAdd.getSource()?.getParams().LAYERS,\n url: layerUrl,\n useBearerToken: false\n }\n };\n layerToAdd.set('layerConfig', layerConfig);\n targetGroup.getLayers().push(layerToAdd);\n }\n });\n\n closeModal();\n };\n\n return (\n \n {t('AddLayerModal.addAllLayers')}\n ,\n \n {t('AddLayerModal.addSelectedLayers')}\n \n ]}\n {...restProps}\n >\n {\n setUrl(event.target.value);\n }}\n onSearch={getCapabilities}\n enterButton={true}\n addonBefore={\n \n \n }\n />\n {\n return record.get('title');\n }\n }\n ]}\n rowKey={(record: any) => getUid(record)}\n rowSelection={{\n selectedRowKeys,\n onChange: setSelectedRowKeys\n }}\n pagination={false}\n dataSource={layers}\n />\n \n );\n};\n\nexport default AddLayerModal;\n","import { useContext } from 'react';\n\nimport PluginContext from '../context/PluginContext';\n\nimport { ClientPluginInternal } from '../plugin';\n\nexport const usePlugins = (): ClientPluginInternal[] => {\n return useContext(PluginContext);\n};\n\nexport default usePlugins;\n","import React, {\n useEffect\n} from 'react';\n\nimport _isEmpty from 'lodash/isEmpty';\n\nimport { ObjectEvent as OlObjectEvent } from 'ol/Object';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport MapUtil from '@terrestris/ol-util/dist/MapUtil/MapUtil';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport MapComponent, {\n MapComponentProps\n} from '@terrestris/react-geo/dist/Map/MapComponent/MapComponent';\n\nimport usePlugins from '../../hooks/usePlugins';\n\nimport {\n isMapIntegration\n} from '../../plugin';\n\nexport const BasicMapComponent: React.FC> = ({\n ...restProps\n}): JSX.Element => {\n const map = useMap();\n const plugins = usePlugins();\n\n const {\n t,\n i18n\n } = useTranslation();\n\n /**\n * Updates external layer group name when language changes.\n */\n useEffect(() => {\n if (!map) {\n return;\n }\n\n const targetGroups = MapUtil.getLayersByProperty(map, 'isExternalLayerGroup', true);\n if (targetGroups?.length !== 1) {\n return;\n }\n const targetGroup = targetGroups[0];\n const oldName = targetGroups[0].get('name');\n targetGroup.set('name', t('AddLayerModal.externalWmsFolder'));\n const changeEvent = new OlObjectEvent('change:layers', 'name', oldName);\n targetGroup.dispatchEvent(changeEvent);\n }, [i18n.language, map, t]);\n\n const pluginComponents: JSX.Element[] = [];\n\n if (plugins) {\n plugins.forEach(plugin => {\n if (isMapIntegration(plugin.integration)) {\n const {\n key,\n wrappedComponent: WrappedPluginComponent\n } = plugin;\n\n pluginComponents.push(\n \n );\n }\n });\n }\n\n if (!map) {\n return <>;\n }\n\n return (\n \n {\n pluginComponents\n }\n \n );\n};\n\nexport default BasicMapComponent;\n","import type {\n IconDefinition\n} from '@fortawesome/fontawesome-common-types';\n\nimport type {\n Reducer\n} from '@reduxjs/toolkit';\n\nimport { CollapsePanelProps } from 'antd';\nimport type OlMap from 'ol/Map';\n\nimport type SHOGunAPIClient from '@terrestris/shogun-util/dist/service/SHOGunAPIClient';\n\nexport type ClientPluginLocale = {\n [locale: string]: {\n translation: {\n [key: string]: any;\n };\n };\n};\n\nexport type ClientPluginComponentProps = {\n map?: OlMap;\n client?: SHOGunAPIClient;\n};\n\nexport type ClientPluginIntegration = {\n /**\n * The main identifier of the integration point of the plugin.\n */\n placement: string;\n};\n\nexport type ClientPluginIntegrationToolMenu = ClientPluginIntegration &\n Omit & {\n placement: 'tool-menu';\n /**\n * The label for the plugin in the tool menu.\n */\n label?: string;\n /**\n * The insertion index for the plugin in the tool menu, starting from 0 which is on top.\n */\n insertionIndex?: number;\n /**\n * The icon for the plugin in the tool menu.\n */\n icon?: IconDefinition;\n};\n\nexport type HeaderPlacementOrientation = 'left' | 'center' | 'right';\n\nexport type ClientPluginIntegrationHeader = ClientPluginIntegration & {\n placement: 'header';\n /**\n * The placement orientation for the plugin in the header.\n */\n placementOrientation: HeaderPlacementOrientation;\n /**\n * The insertion index for the plugin in the header, starting from 0 which is on the left.\n */\n insertionIndex?: number;\n};\n\nexport type ClientPluginIntegrationFeatureInfo = ClientPluginIntegration & {\n placement: 'feature-info';\n /**\n * The list of layer names the plugin component should be rendered for. If not\n * specified, the component will be rendered for all layers.\n */\n layers?: string[];\n};\n\nexport type ClientPluginIntegrationMap = ClientPluginIntegration & {\n placement: 'map';\n};\n\nexport type FooterPlacementOrientation = 'left' | 'right';\n\nexport type ClientPluginIntegrationFooter = ClientPluginIntegration & {\n placement: 'footer';\n /**\n * The placement orientation for the plugin in the footer.\n */\n placementOrientation: FooterPlacementOrientation;\n /**\n * The insertion index for the plugin in the footer, starting from 0 which is on the left.\n */\n insertionIndex?: number;\n};\n\nexport type ClientPluginIntegrations = ClientPluginIntegrationToolMenu | ClientPluginIntegrationHeader |\n ClientPluginIntegrationFeatureInfo | ClientPluginIntegrationMap | ClientPluginIntegrationFooter;\n\nexport type ClientPlugin = {\n /**\n * The key of the plugin, usually used for internal references (e.g. element class names) only.\n */\n key: string;\n /**\n * The definition of the integration point.\n */\n integration: ClientPluginIntegrations;\n /**\n * The actual component of the plugin.\n */\n component: React.FunctionComponent;\n /**\n * The i18n definition to be used in the plugin.\n */\n i18n?: ClientPluginLocale;\n /**\n * A set of redux reducers to be used in the plugin.\n */\n reducers?: {\n [key: string]: Reducer;\n };\n};\n\nexport type ClientPluginInternal = ClientPlugin & {\n wrappedComponent: React.FunctionComponent;\n};\n\nexport function isToolMenuIntegration(pluginIntegration: ClientPluginIntegrations): pluginIntegration is ClientPluginIntegrationToolMenu {\n return pluginIntegration && pluginIntegration.placement === 'tool-menu';\n}\n\nexport function isHeaderIntegration(pluginIntegration: ClientPluginIntegrations): pluginIntegration is ClientPluginIntegrationHeader {\n return pluginIntegration && pluginIntegration.placement === 'header';\n}\n\nexport function isFeatureInfoIntegration(pluginIntegration: ClientPluginIntegrations): pluginIntegration is ClientPluginIntegrationFeatureInfo {\n return pluginIntegration && pluginIntegration.placement === 'feature-info';\n}\n\nexport function isMapIntegration(pluginIntegration: ClientPluginIntegrations): pluginIntegration is ClientPluginIntegrationMap {\n return pluginIntegration && pluginIntegration.placement === 'map';\n}\n\nexport function isFooterIntegration(pluginIntegration: ClientPluginIntegrations): pluginIntegration is ClientPluginIntegrationFooter {\n return pluginIntegration && pluginIntegration.placement === 'footer';\n}\n","import { useContext } from 'react';\n\nimport SHOGunAPIClient from '@terrestris/shogun-util/dist/service/SHOGunAPIClient';\n\nimport SHOGunAPIClientContext from '../context/SHOGunAPIClientContext';\n\nexport const useSHOGunAPIClient = (): SHOGunAPIClient | null => {\n return useContext(SHOGunAPIClientContext);\n};\n\nexport default useSHOGunAPIClient;\n","import {\n useCallback\n} from 'react';\n\nimport OlSourceImageWMS from 'ol/source/ImageWMS';\nimport OlSourceTileWMS from 'ol/source/TileWMS';\n\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useSHOGunAPIClient from './useSHOGunAPIClient';\n\nexport type ExecuteWfsTransactionOpts = {\n layer: WmsLayer;\n transaction: Node;\n};\n\nexport const useExecuteWfsTransaction = () => {\n const client = useSHOGunAPIClient();\n\n const executeWfsTransaction = useCallback(async (opts: ExecuteWfsTransactionOpts) => {\n let url;\n\n const source = opts.layer.getSource();\n if (source instanceof OlSourceImageWMS) {\n url = (source as OlSourceImageWMS).getUrl();\n }\n if (source instanceof OlSourceTileWMS) {\n const urls = (source as OlSourceTileWMS).getUrls();\n url = urls ? urls[0] : undefined;\n }\n\n if (!url) {\n return;\n }\n\n if (url.endsWith('?')) {\n url = url.slice(0, -1);\n }\n\n const defaultHeaders = {\n 'Content-Type': 'application/xml'\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: opts.layer?.get('useBearerToken') ? {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n } : defaultHeaders,\n body: new XMLSerializer().serializeToString(opts.transaction)\n });\n\n if (!response.ok) {\n throw new Error('No successful response while executing a WFS-Transaction');\n }\n\n const responseText = await response.text();\n\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(responseText, 'text/xml');\n\n // TODO Make detection more robust\n const transactionStatusFailed = xmlDoc.getElementsByTagName('wfs:FAILED');\n\n if (transactionStatusFailed.length > 0) {\n throw new Error(`Something failed: ${responseText}`);\n }\n\n return responseText;\n }, [client]);\n\n return executeWfsTransaction;\n};\n\nexport default useExecuteWfsTransaction;\n","import {\n useCallback\n} from 'react';\n\nimport OlSourceImageWMS from 'ol/source/ImageWMS';\nimport OlSourceTileWMS from 'ol/source/TileWMS';\n\nimport UrlUtil from '@terrestris/base-util/dist/UrlUtil/UrlUtil';\n\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useSHOGunAPIClient from './useSHOGunAPIClient';\n\nexport type LocalGeometryType = 'MultiPoint' | 'Point' | 'MultiLineString' | 'LineString' | 'MultiPolygon' | 'Polygon';\nexport type GeometryType = 'gml:MultiPoint' | 'gml:Point' | 'gml:MultiLineString' | 'gml:LineString' | 'gml:MultiPolygon' | 'gml:Polygon';\n\nexport type Property = {\n localType: 'int' | 'number' | 'string' | 'boolean' | 'date' | LocalGeometryType;\n maxOccurs: 0 | 1;\n minOccurs: 0 | 1;\n name: string;\n nillable: boolean;\n type: 'xsd:int' | 'xsd:number' | 'xsd:string' | 'xsd:boolean' | 'xsd:date' | GeometryType;\n};\n\nexport type FeatureType = {\n typeName: string;\n properties: Property[];\n};\n\nexport type DescribeFeatureType = {\n elementFormDefault: string;\n featureTypes: FeatureType[];\n targetNamespace: string;\n targetPrefix: string;\n};\n\nexport const isGeometryType = (propertyType: string): propertyType is GeometryType => {\n const geometryTypes = [\n 'gml:MultiPoint',\n 'gml:Point',\n 'gml:MultiLineString',\n 'gml:LineString',\n 'gml:MultiPolygon',\n 'gml:Polygon'\n ];\n\n return geometryTypes.includes(propertyType);\n};\n\nexport const useExecuteWfsDescribeFeatureType = () => {\n const client = useSHOGunAPIClient();\n\n const executeWfsDescribeFeatureType = useCallback(async (layer: WmsLayer) => {\n let url;\n\n const source = layer.getSource();\n if (source instanceof OlSourceImageWMS) {\n url = (source as OlSourceImageWMS).getUrl();\n }\n if (source instanceof OlSourceTileWMS) {\n const urls = (source as OlSourceTileWMS).getUrls();\n url = urls ? urls[0] : undefined;\n }\n\n if (!url) {\n return;\n }\n\n if (url.endsWith('?')) {\n url = url.slice(0, -1);\n }\n\n const params = {\n SERVICE: 'WFS',\n REQUEST: 'DescribeFeatureType',\n VERSION: '2.0.0',\n OUTPUTFORMAT: 'application/json',\n TYPENAMES: layer.getSource()?.getParams().LAYERS\n };\n\n const defaultHeaders = {\n 'Content-Type': 'application/json'\n };\n\n const response = await fetch(`${url}?${UrlUtil.objectToRequestString(params)}`, {\n method: 'GET',\n headers: layer.get('useBearerToken') ? {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n } : defaultHeaders\n });\n\n if (!response.ok) {\n throw new Error('No successful response while executing a WFS-Transaction');\n }\n\n return await response.json() as DescribeFeatureType;\n }, [client]);\n\n return executeWfsDescribeFeatureType;\n};\n\nexport default useExecuteWfsDescribeFeatureType;\n","import {\n useCallback\n} from 'react';\n\nimport {\n FormInstance\n} from 'antd';\n\nimport ClientConfiguration from 'clientConfig';\n\nimport {\n isMoment\n} from 'moment';\n\nimport {\n isEmpty\n} from 'ol/extent';\nimport OlFeature from 'ol/Feature';\nimport OlFormatWFS, {\n WriteTransactionOptions as OlWriteTransactionOptions\n} from 'ol/format/WFS';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useExecuteWfsDescribeFeatureType, {\n isGeometryType\n} from './useExecuteWfsDescribeFeatureType';\n\nexport type WriteWfsTransactionOpts = {\n layer: WmsLayer;\n upsertFeatures?: OlFeature[];\n deleteFeatures?: OlFeature[];\n form?: FormInstance;\n};\n\nexport const useWriteWfsTransaction = () => {\n const map = useMap();\n const executeWfsDescribeFeatureType = useExecuteWfsDescribeFeatureType();\n\n const cleanFormValues = (form: FormInstance) => {\n const formValues = {...form.getFieldsValue()};\n\n for (const [key, value] of Object.entries(formValues)) {\n // Transform undefined to null values.\n if (value === undefined) {\n formValues[key] = null;\n }\n\n // Filter out read-only fields (which don't have any field instance associated).\n if (!form.getFieldInstance(key)) {\n delete formValues[key];\n }\n\n // Transform moments back to iso string.\n if (isMoment(value)) {\n formValues[key] = value.toISOString();\n }\n }\n\n return formValues;\n };\n\n const writeWfsTransaction = useCallback(async (opts: WriteWfsTransactionOpts) => {\n if (!map) {\n return;\n }\n\n const inserts: OlFeature[] = [];\n const updates: OlFeature[] = [];\n const deletes: OlFeature[] = [];\n\n const describeFeatureType = await executeWfsDescribeFeatureType(opts.layer);\n\n if (!describeFeatureType) {\n return;\n }\n\n const geomProperty = describeFeatureType.featureTypes[0]?.properties\n ?.find(property => isGeometryType(property.type));\n\n let overallUpdateMode = false;\n\n if (opts.upsertFeatures) {\n for (const feature of opts.upsertFeatures) {\n const feat = new OlFeature();\n\n const geometry = feature.getGeometry()?.clone();\n\n if (geometry && !isEmpty(geometry.getExtent())) {\n feat.set(geomProperty?.name || 'geom', geometry);\n feat.setGeometryName(geomProperty?.name || 'geom');\n }\n\n if (opts.form) {\n feat.setProperties(cleanFormValues(opts.form));\n }\n\n const updateMode = !!feature.getId();\n\n if (updateMode && !overallUpdateMode) {\n overallUpdateMode = true;\n }\n\n if (updateMode) {\n feat.setId(feature.getId());\n }\n\n if (updateMode) {\n updates.push(feat);\n } else {\n inserts.push(feat);\n }\n };\n }\n\n if (opts.deleteFeatures) {\n deletes.push(...opts.deleteFeatures);\n }\n\n const transactionOpts: OlWriteTransactionOptions = {\n featureNS: describeFeatureType.targetNamespace,\n featurePrefix: describeFeatureType.targetPrefix,\n featureType: opts.layer.getSource()?.getParams().LAYERS,\n srsName: map.getView().getProjection().getCode(),\n version: '1.1.0',\n nativeElements: []\n };\n\n const format = new OlFormatWFS();\n\n const transaction = format.writeTransaction(inserts, updates, deletes, transactionOpts);\n\n if (overallUpdateMode && ClientConfiguration.wfsLockFeatureEnabled) {\n const rootNode = transaction.getRootNode() as Element;\n const lockId = document.createElementNS('http://www.opengis.net/wfs', 'LockId');\n const lockIdValue = document.createTextNode('GeoServer');\n lockId.appendChild(lockIdValue);\n rootNode.appendChild(lockId);\n }\n\n return transaction;\n }, [executeWfsDescribeFeatureType, map]);\n\n return writeWfsTransaction;\n};\n\nexport default useWriteWfsTransaction;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useEffect\n} from 'react';\n\nimport {\n Drawer\n} from 'antd';\n\nimport type {\n DrawerProps\n} from 'antd/es/drawer';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport './index.less';\n\nexport type MapDrawerProps = DrawerProps & {};\n\nexport const MapDrawer: React.FC = ({\n open,\n children,\n ...passThroughProps\n}) => {\n\n const map = useMap();\n\n useEffect(() => {\n document.querySelectorAll('#map')[0]?.classList.toggle('bisected', !!open);\n }, [open]);\n\n const onAfterDrawerOpenChange = () => {\n map?.updateSize();\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default MapDrawer;\n","import {\n useCallback\n} from 'react';\n\nimport {\n FeatureCollection\n} from 'geojson';\n\nimport OlFormatFilter from 'ol/format/filter/Filter';\nimport OlFormatWFS from 'ol/format/WFS';\nimport OlSourceImageWMS from 'ol/source/ImageWMS';\nimport OlSourceTileWMS from 'ol/source/TileWMS';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useExecuteWfsDescribeFeatureType from './useExecuteWfsDescribeFeatureType';\nimport useSHOGunAPIClient from './useSHOGunAPIClient';\n\nexport type GetFeatureOpts = {\n layer: WmsLayer;\n filter?: OlFormatFilter;\n};\n\nexport const useExecuteGetFeature = () => {\n const client = useSHOGunAPIClient();\n const map = useMap();\n const executeWfsDescribeFeatureType = useExecuteWfsDescribeFeatureType();\n\n const executeGetFeature = useCallback(async (opts: GetFeatureOpts) => {\n if (!map) {\n return;\n }\n\n const describeFeatureType = await executeWfsDescribeFeatureType(opts.layer);\n\n if (!describeFeatureType) {\n return;\n }\n\n let url;\n\n const source = opts.layer.getSource();\n if (source instanceof OlSourceImageWMS) {\n url = (source as OlSourceImageWMS).getUrl();\n }\n if (source instanceof OlSourceTileWMS) {\n const urls = (source as OlSourceTileWMS).getUrls();\n url = urls ? urls[0] : undefined;\n }\n\n if (!url) {\n return;\n }\n\n if (url.endsWith('?')) {\n url = url.slice(0, -1);\n }\n\n const featureRequest = new OlFormatWFS().writeGetFeature({\n srsName: map.getView().getProjection().getCode(),\n featureNS: describeFeatureType.targetNamespace,\n featurePrefix: describeFeatureType.targetPrefix,\n featureTypes: [source?.getParams().LAYERS],\n outputFormat: 'application/json',\n filter: opts.filter\n });\n\n const defaultHeaders = {\n 'Content-Type': 'application/json'\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: opts.layer?.get('useBearerToken') ? {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n } : defaultHeaders,\n body: new XMLSerializer().serializeToString(featureRequest)\n });\n\n if (!response.ok) {\n throw new Error('No successful response');\n }\n\n return await response.json() as FeatureCollection;\n }, [client, executeWfsDescribeFeatureType, map]);\n\n return executeGetFeature;\n};\n\nexport default useExecuteGetFeature;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport {\n faPencil,\n faTrash,\n faDrawPolygon,\n faUndo\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport { TooltipPlacement } from 'antd/es/tooltip';\nimport {\n FeatureCollection,\n Feature\n} from 'geojson';\nimport { t } from 'i18next';\n\nimport _isEmpty from 'lodash/isEmpty';\n\nimport { isEmpty as isEmptyOlExtent } from 'ol/extent';\nimport OlFormatGeoJson from 'ol/format/GeoJSON';\nimport OlGeometry from 'ol/geom/Geometry';\nimport { DrawEvent as OlDrawEvent } from 'ol/interaction/Draw';\nimport OlLayerVector from 'ol/layer/Vector';\nimport OlSourceVector from 'ol/source/Vector';\n\nimport DeleteButton from '@terrestris/react-geo/dist/Button/DeleteButton/DeleteButton';\nimport DrawButton from '@terrestris/react-geo/dist/Button/DrawButton/DrawButton';\nimport ModifyButton from '@terrestris/react-geo/dist/Button/ModifyButton/ModifyButton';\nimport SimpleButton from '@terrestris/react-geo/dist/Button/SimpleButton/SimpleButton';\nimport ToggleGroup from '@terrestris/react-geo/dist/Button/ToggleGroup/ToggleGroup';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\nimport Toolbar, { ToolbarProps } from '@terrestris/react-geo/dist/Toolbar/Toolbar';\n\nimport {\n DigitizeUtil\n} from '@terrestris/react-geo/dist/Util/DigitizeUtil';\n\nimport './index.less';\nimport useAppSelector from '../../../hooks/useAppSelector';\n\nexport type EditFeatureGeometryToolbarProps = ToolbarProps & {\n feature: Feature;\n historyLength?: number;\n};\n\ntype DrawType = 'Point' | 'LineString' | 'Polygon';\n\ntype EditHistory = {\n past: FeatureCollection[];\n future: FeatureCollection[];\n};\nexport const EditFeatureGeometryToolbar: React.FC = ({\n feature,\n historyLength = 10\n}) => {\n\n const editHistory = useRef({\n past: [],\n future: []\n });\n\n const map = useMap();\n\n const [editLayer, setEditLayer] = useState>>();\n const [, setRevision] = useState(0);\n\n const gjFormat = useMemo(() => new OlFormatGeoJson(), []);\n\n const allowedEditMode = useAppSelector(\n state => state.editFeature.userEditMode\n );\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n if (!editLayer) {\n setEditLayer(DigitizeUtil.getDigitizeLayer(map));\n }\n\n return () => {\n if (editLayer) {\n map?.removeLayer(editLayer);\n }\n };\n }, [editLayer, map]);\n\n useEffect(() => {\n if (editLayer && feature?.id) {\n editLayer.getSource()?.clear();\n const olFeat = gjFormat.readFeature(feature);\n const source = editLayer.getSource() as OlSourceVector;\n source.addFeature(olFeat);\n setRevision(r => r + 1);\n\n if (!isEmptyOlExtent(source.getExtent())) {\n map?.getView().fit(source.getExtent(), {\n padding: [50, 50, 50, 50]\n });\n }\n }\n }, [feature, editLayer, gjFormat, map]);\n\n const undoEdit = () => {\n\n const editSource = editLayer?.getSource();\n const features = editSource?.getFeatures();\n\n if (!features) {\n return;\n }\n\n const clone: FeatureCollection = gjFormat.writeFeaturesObject(features);\n const previousSource = editHistory.current.past[editHistory.current.past.length - 1];\n if (!_isEmpty(previousSource)) {\n editSource?.clear();\n editSource?.addFeatures(gjFormat.readFeatures(previousSource));\n editHistory.current = {\n past: editHistory.current.past.slice(0, -1),\n future: [...editHistory.current.future, clone].slice(-historyLength)\n };\n setRevision(r => r + 1);\n }\n };\n\n const redoEdit = () => {\n\n const editSource = editLayer?.getSource();\n const features = editSource?.getFeatures();\n\n if (!features) {\n return;\n }\n\n const clone = gjFormat.writeFeaturesObject(features);\n const nextSource = editHistory.current.future[editHistory.current.future.length - 1];\n if (!_isEmpty(nextSource)) {\n editSource?.clear();\n editSource?.addFeatures(gjFormat.readFeatures(nextSource));\n\n editHistory.current = {\n future: editHistory.current.future.slice(0, -1),\n past: [...editHistory.current.past, clone].slice(-historyLength)\n };\n setRevision(r => r + 1);\n }\n };\n\n const onDrawEnd = (e: OlDrawEvent) => {\n updateRevision();\n if (!feature.geometry.type.toLocaleLowerCase().startsWith('multi')) {\n // replace the existing geometry by the new one\n editLayer?.getSource()?.clear();\n }\n };\n\n const updateRevision = () => {\n\n const features = editLayer?.getSource()?.getFeatures();\n\n if (!features) {\n return;\n }\n\n const clone: FeatureCollection = gjFormat.writeFeaturesObject(features);\n editHistory.current = {\n ...editHistory.current,\n past: [...editHistory.current.past, clone].slice(-10)\n };\n setRevision(r => r + 1);\n };\n\n const btnTooltipProps = {\n tooltipPlacement: 'left' as TooltipPlacement,\n tooltipProps: {\n mouseEnterDelay: 0.5\n }\n };\n\n if (!editLayer) {\n return <>;\n }\n\n if (allowedEditMode.includes('EDIT_GEOMETRY')) {\n return (\n \n \n {\n allowedEditMode.includes('CREATE') ?\n \n }\n pressedIcon={\n \n }\n name=\"draw\"\n digitizeLayer={editLayer}\n tooltip={t('EditFeatureGeometryToolbar.draw')}\n drawType={feature.geometry.type as DrawType}\n onDrawEnd={onDrawEnd}\n {...btnTooltipProps}\n />\n : <>\n }\n {\n allowedEditMode.includes('UPDATE') ?\n \n }\n pressedIcon={\n \n }\n name=\"edit\"\n digitizeLayer={editLayer}\n tooltip={t('EditFeatureGeometryToolbar.edit')}\n onModifyStart={updateRevision}\n onModifyEnd={updateRevision}\n onTranslateEnd={updateRevision}\n {...btnTooltipProps}\n />\n : <>\n }\n {\n allowedEditMode.includes('DELETE') ?\n \n }\n pressedIcon={\n \n }\n name=\"delete\"\n digitizeLayer={editLayer}\n tooltip={t('EditFeatureGeometryToolbar.delete')}\n onFeatureRemove={updateRevision}\n {...btnTooltipProps}\n />\n : <>\n }\n \n \n }\n tooltip={t('EditFeatureGeometryToolbar.undo')}\n onClick={undoEdit}\n disabled={editHistory.current.past?.length === 0}\n {...btnTooltipProps}\n />\n \n }\n tooltip={t('EditFeatureGeometryToolbar.redo')}\n onClick={redoEdit}\n disabled={editHistory.current.future?.length === 0}\n {...btnTooltipProps}\n />\n \n );\n } else {\n return <>;\n }\n};\n\nexport default EditFeatureGeometryToolbar;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState\n} from 'react';\n\nimport {\n faBoxOpen\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport Editor from '@monaco-editor/react';\n\nimport {\n Button,\n Modal,\n ModalProps\n} from 'antd';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport './index.less';\n\nexport type ValueType = string | number | boolean | moment.Moment;\n\nexport type JsonModalProps = {\n value?: string;\n label?: string;\n} & ModalProps;\n\nexport const JsonModal: React.FC = ({\n value,\n label,\n ...passThroughProps\n}): JSX.Element => {\n\n const [isOpen, setIsOpen] = useState(false);\n\n const {\n t\n } = useTranslation();\n\n const onButtonClick = () => {\n setIsOpen(true);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n };\n\n if (!value) {\n return <>;\n }\n\n return (\n <>\n \n )}\n >\n {t('JsonModal.buttonTitle', {\n propertyName: label\n })}\n \n \n \n \n \n );\n};\n\nexport default JsonModal;\n","import React from 'react';\n\nimport {\n Typography\n} from 'antd';\n\nimport {\n isMoment\n} from 'moment';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport JsonModal from '../JsonModal';\n\nexport type ValueType = string | number | boolean | moment.Moment;\n\nexport type DisplayFieldProps = {\n format?: string;\n suffix?: string;\n value?: ValueType | ValueType[];\n label?: string;\n};\n\nexport const DisplayField: React.FC = ({\n format = 'DD.MM.YYYY',\n suffix,\n value,\n label,\n ...passThroughProps\n}): JSX.Element => {\n\n const {\n t\n } = useTranslation();\n\n let displayText: string = '';\n\n if (typeof value === 'string') {\n displayText = value;\n }\n\n if (typeof value === 'boolean') {\n displayText = value ? t('DisplayField.yesText') : t('DisplayField.noText');\n }\n\n if (Number.isFinite(value)) {\n displayText = new Intl.NumberFormat().format(Number(value));\n }\n\n if (isMoment(value)) {\n displayText = value.format(format);\n }\n\n if (Array.isArray(value)) {\n displayText = value.join(', ');\n }\n\n const isJson = (val: ValueType | ValueType[]): val is string => {\n let v = typeof val !== 'string' ? JSON.stringify(val) : val;\n\n try {\n v = JSON.parse(v);\n } catch (e) {\n return false;\n }\n\n return typeof v === 'object' && v !== null;\n };\n\n if (value && isJson(value)) {\n return (\n \n );\n }\n\n return (\n \n {displayText}{displayText && suffix ? ` ${suffix}` : ''}\n \n );\n};\n\nexport default DisplayField;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport {\n Input,\n InputNumber,\n DatePicker,\n Select,\n Switch,\n Checkbox,\n Form,\n FormItemProps\n} from 'antd';\n\nimport {\n FormInstance,\n FormProps\n} from 'antd/lib/form/Form';\n\nimport _debounce from 'lodash/debounce';\n\nimport Logger from '@terrestris/base-util/dist/Logger';\nimport {\n PropertyFormItemEditConfig\n} from '@terrestris/shogun-util/dist/model/Layer';\n\nimport useAppDispatch from '../../../hooks/useAppDispatch';\nimport useAppSelector from '../../../hooks/useAppSelector';\nimport {\n setFormDirty\n} from '../../../store/editFeature';\nimport DisplayField from '../../DisplayField';\n\nimport './index.less';\n\nexport type EditFeatureFormProps = FormProps & {\n formConfig?: PropertyFormItemEditConfig[];\n form: FormInstance;\n};\n\nexport const EditFeatureForm: React.FC = ({\n formConfig,\n form,\n ...passThroughProps\n}): JSX.Element => {\n\n const dispatch = useAppDispatch();\n\n const formDirty = useAppSelector(\n state => state.editFeature.formDirty\n );\n\n const createFormItem = (fieldCfg: PropertyFormItemEditConfig): React.ReactNode => {\n let field: React.ReactNode;\n if (fieldCfg.readOnly) {\n field = createReadOnlyComponent(fieldCfg);\n } else if (fieldCfg.component) {\n field = createFieldComponent(fieldCfg);\n } else {\n Logger.warn('FieldConfig is missing `readOnly`, `component` or `dataType` property.');\n field = (\n \n );\n }\n\n const formItemProps: FormItemProps = {\n rules: []\n };\n\n formItemProps.rules = [{\n required: fieldCfg.required\n }];\n\n if ((fieldCfg.component === 'SWITCH' || fieldCfg.component === 'CHECKBOX') && !fieldCfg.readOnly) {\n formItemProps.valuePropName = 'checked';\n }\n\n if (fieldCfg.component === 'UPLOAD' && !fieldCfg.readOnly) {\n formItemProps.valuePropName = 'fileList';\n }\n\n return (\n \n {field}\n \n );\n };\n\n const createReadOnlyComponent = (fieldConfig: PropertyFormItemEditConfig): React.ReactNode => {\n return (\n \n );\n };\n\n const createFieldComponent = (fieldCfg: PropertyFormItemEditConfig): React.ReactNode => {\n switch (fieldCfg.component) {\n case 'CHECKBOX':\n return (\n \n );\n case 'DATE':\n return (\n \n );\n case 'DISPLAY':\n return (\n \n );\n case 'INPUT':\n return (\n \n );\n case 'NUMBER':\n return (\n \n );\n case 'SELECT':\n return (\n \n );\n case 'SWITCH':\n return (\n \n );\n case 'TEXTAREA':\n return (\n \n );\n // TODO Before we allow uploading we should check all side effects.\n // case 'UPLOAD':\n // return (\n // \n // \n // \n // );\n default:\n Logger.error(`Component type \"${fieldCfg?.component}\" is not supported`);\n return <>;\n }\n };\n\n const onValuesChange = async (changedValues: any) => {\n if (changedValues && !formDirty) {\n dispatch(setFormDirty(true));\n }\n };\n\n return (\n \n { formConfig?.map(createFormItem) }\n \n );\n};\n\nexport default EditFeatureForm;\n","import React from 'react';\n\nimport {\n Tabs,\n TabsProps\n} from 'antd';\n\nimport {\n FormInstance\n} from 'antd/lib/form/Form';\n\nimport {\n Tab\n} from 'rc-tabs/lib/interface';\n\nimport {\n PropertyFormItemEditConfig,\n PropertyFormTabConfig\n} from '@terrestris/shogun-util/dist/model/Layer';\n\nimport EditFeatureForm from '../EditFeatureForm';\n\nexport type EditFeatureTabsProps = TabsProps & {\n tabConfig?: PropertyFormTabConfig[];\n form: FormInstance;\n initialValues?: Record;\n};\n\nexport const EditFeatureTabs: React.FC = ({\n tabConfig,\n form,\n initialValues,\n ...passThroughProps\n}) => {\n\n const items = tabConfig?.map((config, idx) => {\n return {\n label: config.title,\n key: `${idx}`,\n forceRender: true,\n children: (\n \n )\n } as Tab;\n });\n\n return (\n \n );\n};\n\nexport default EditFeatureTabs;\n","import React, {\n useState\n} from 'react';\n\nimport {\n faTrash\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport {\n Button,\n ButtonProps,\n Popconfirm\n} from 'antd';\n\nimport {\n Feature\n} from 'geojson';\n\nimport OlFormatGeoJSON from 'ol/format/GeoJSON';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport {\n Logger\n} from '@terrestris/base-util';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n WmsLayer,\n isWmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useExecuteWfsTransaction from '../../../hooks/useExecuteWfsTransaction';\nimport useWriteWfsTransaction from '../../../hooks/useWriteWfsTransaction';\n\nexport type DeleteButtonProps = ButtonProps & {\n feature: Feature;\n layer: WmsLayer;\n onError?: (error: unknown) => void;\n onSuccess?: () => void;\n};\n\nexport const DeleteButton: React.FC = ({\n feature,\n layer,\n onError = () => {},\n onSuccess = () => {},\n ...passThroughProps\n}) => {\n const [loading, setLoading] = useState(false);\n\n const {\n t\n } = useTranslation();\n\n const map = useMap();\n\n const writeWfsTransaction = useWriteWfsTransaction();\n const executeWfsTransaction = useExecuteWfsTransaction();\n\n const onConfirmDelete = async () => {\n if (!map) {\n return;\n }\n\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n try {\n setLoading(true);\n\n const olFeature = new OlFormatGeoJSON().readFeature(feature);\n\n const transaction = await writeWfsTransaction({\n deleteFeatures: [olFeature],\n layer: layer\n });\n\n if (!transaction) {\n return;\n }\n\n await executeWfsTransaction({\n layer: layer,\n transaction: transaction\n });\n\n layer.getSource()?.refresh();\n\n onSuccess();\n } catch (error) {\n Logger.error(error);\n\n onError(error);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n \n )}\n {...passThroughProps}\n >\n {\n t('DeleteButton.title')\n }\n \n \n );\n};\n\nexport default DeleteButton;\n","import React from 'react';\n\nimport {\n faRotateLeft\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport {\n Button,\n ButtonProps\n} from 'antd';\n\nimport {\n FormInstance\n} from 'antd/lib/form/Form';\n\nimport {\n Feature\n} from 'geojson';\n\nimport OlFormatGeoJson from 'ol/format/GeoJSON';\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\nimport { DigitizeUtil } from '@terrestris/react-geo/dist/Util/DigitizeUtil';\n\nimport useAppDispatch from '../../../hooks/useAppDispatch';\nimport {\n setFormDirty\n} from '../../../store/editFeature';\n\nexport type ResetButtonProps = Omit & {\n feature: Feature;\n form: FormInstance;\n};\n\nexport const ResetButton: React.FC = ({\n feature,\n form,\n ...passThroughProps\n}) => {\n\n const {\n t\n } = useTranslation();\n\n const map = useMap();\n\n const dispatch = useAppDispatch();\n\n const onClick = () => {\n form.resetFields();\n dispatch(setFormDirty(false));\n\n if (map) {\n const editLayer = DigitizeUtil.getDigitizeLayer(map);\n if (editLayer) {\n editLayer.getSource()?.clear();\n const format = new OlFormatGeoJson();\n const olFeat = format.readFeature(feature);\n editLayer.getSource()?.addFeature(olFeat);\n }\n }\n };\n\n return (\n \n )}\n {...passThroughProps}\n >\n {\n t('ResetButton.title')\n }\n \n );\n};\n\nexport default ResetButton;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport './index.less';\n\nexport type FeedbackIconProps = {\n loadComplete: boolean;\n};\n\nexport const FeedbackIcon: React.FC = ({\n loadComplete = false\n}) => {\n\n return (\n
\n
\n
\n );\n};\n\nexport default FeedbackIcon;\n","import React, {\n useState\n} from 'react';\n\nimport {\n faFloppyDisk\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport {\n Button,\n ButtonProps\n} from 'antd';\n\nimport {\n FormInstance\n} from 'antd/lib/form/Form';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport {\n Logger\n} from '@terrestris/base-util';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n DigitizeUtil\n} from '@terrestris/react-geo/dist/Util/DigitizeUtil';\nimport {\n WmsLayer,\n isWmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useAppDispatch from '../../../hooks/useAppDispatch';\nimport useAppSelector from '../../../hooks/useAppSelector';\nimport useExecuteWfsTransaction from '../../../hooks/useExecuteWfsTransaction';\nimport useWriteWfsTransaction from '../../../hooks/useWriteWfsTransaction';\nimport {\n setFormDirty\n} from '../../../store/editFeature';\n\nimport './index.less';\nimport FeedbackIcon from '../../FeedbackIcon';\n\nexport type SaveButtonProps = Omit & {\n form: FormInstance;\n layer: WmsLayer;\n onError?: (error: unknown) => void;\n onSuccess?: (response?: string) => void;\n};\n\nexport const SaveButton: React.FC = ({\n form,\n layer,\n onError = () => {},\n onSuccess = () => {},\n ...passThroughProps\n}) => {\n const [loading, setLoading] = useState(false);\n const [saveCompleted, setSaveCompleted] = useState(false);\n\n const map = useMap();\n\n const writeWfsTransaction = useWriteWfsTransaction();\n const executeWfsTransaction = useExecuteWfsTransaction();\n\n const dispatch = useAppDispatch();\n\n const formDirty = useAppSelector(\n state => state.editFeature.formDirty\n );\n\n const {\n t\n } = useTranslation();\n\n const onClick = async () => {\n if (!map) {\n return;\n }\n\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n const editLayer = DigitizeUtil.getDigitizeLayer(map);\n\n if (!editLayer) {\n Logger.error('Cannot find the digitize layer');\n return;\n }\n\n const features = editLayer.getSource()?.getFeatures();\n\n if (!features || features.length === 0) {\n Logger.error('Cannot save feature without geometry');\n return;\n };\n\n try {\n await form.validateFields();\n } catch (error) {\n Logger.warn('Validation has failed: ', error);\n return;\n }\n\n try {\n setLoading(true);\n\n const transaction = await writeWfsTransaction({\n upsertFeatures: features,\n form: form,\n layer: layer\n });\n\n if (!transaction) {\n return;\n }\n\n const result = await executeWfsTransaction({\n layer: layer,\n transaction: transaction\n });\n\n layer.getSource()?.refresh();\n\n setSaveCompleted(true);\n setTimeout(() => {\n setSaveCompleted(false);\n }, 3000);\n\n onSuccess(result);\n } catch (error) {\n Logger.error(error);\n\n onError(error);\n } finally {\n setLoading(false);\n dispatch(setFormDirty(false));\n }\n };\n\n return (\n \n )}\n {...passThroughProps}\n >\n {\n t('SaveButton.title')\n }\n \n \n );\n};\n\nexport default SaveButton;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport {\n FormInstance\n} from 'antd';\n\nimport {\n Feature\n} from 'geojson';\n\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useAppSelector from '../../../hooks/useAppSelector';\n\nimport DeleteButton from '../DeleteButton';\nimport ResetButton from '../ResetButton';\nimport SaveButton from '../SaveButton';\n\nimport './index.less';\n\nexport type EditFeatureToolbarProps = {\n feature: Feature;\n layer: WmsLayer;\n form: FormInstance;\n onSaveSuccess?: (responseText?: string) => void;\n onSaveError?: (error: unknown) => void;\n onDeleteSuccess?: () => void;\n onDeleteError?: (error: unknown) => void;\n};\n\nexport const EditFeatureToolbar: React.FC = ({\n feature,\n layer,\n form,\n onSaveSuccess = () => {},\n onSaveError = () => {},\n onDeleteSuccess = () => {},\n onDeleteError = () => {}\n}) => {\n const allowedEditMode = useAppSelector(state => state.editFeature.userEditMode);\n\n return (\n \n {\n allowedEditMode.includes('CREATE') ||\n allowedEditMode.includes('UPDATE') ?\n <>\n \n \n : <>\n }\n {\n allowedEditMode.includes('DELETE') &&\n \n }\n
\n );\n};\n\nexport default EditFeatureToolbar;\n","import React, {\n useCallback,\n useEffect,\n useState\n} from 'react';\n\nimport {\n Alert\n} from 'antd';\nimport {\n useForm\n} from 'antd/lib/form/Form';\n\nimport {\n Feature\n} from 'geojson';\n\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport moment from 'moment';\n\nimport {\n equalTo\n} from 'ol/format/filter';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport {\n Logger\n} from '@terrestris/base-util';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport {\n WmsLayer,\n isWmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n PropertyFormItemEditConfig,\n PropertyFormTabConfig\n} from '@terrestris/shogun-util/dist/model/Layer';\n\nimport useAppDispatch from '../../../hooks/useAppDispatch';\nimport useAppSelector from '../../../hooks/useAppSelector';\nimport useExecuteGetFeature from '../../../hooks/useExecuteGetFeature';\nimport useSHOGunAPIClient from '../../../hooks/useSHOGunAPIClient';\n\nimport {\n setFeature\n} from '../../../store/editFeature';\n\nimport EditFeatureGeometryToolbar from '../EditFeatureGeometryToolbar';\nimport EditFeatureTabs from '../EditFeatureTabs';\nimport EditFeatureToolbar from '../EditFeatureToolbar';\n\nexport type EditFeatureFullFormProps = {\n feature: Feature;\n layer: WmsLayer;\n};\n\nexport const EditFeatureFullForm: React.FC = ({\n feature,\n layer\n}) => {\n const {\n t\n } = useTranslation();\n const executeGetFeature = useExecuteGetFeature();\n\n const [tabConfig, setTabConfig] = useState[]>();\n const [initialValues, setInitialValues] = useState>();\n const [errorMsg, setErrorMsg] = useState();\n\n const allowedEditMode = useAppSelector(\n state => state.editFeature.userEditMode\n );\n\n const [form] = useForm();\n const map = useMap();\n const dispatch = useAppDispatch();\n const client = useSHOGunAPIClient();\n\n const reloadFeature = useCallback(async (id: string) => {\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n const updatedFeatures = await executeGetFeature({\n layer: layer,\n filter: equalTo('id', id)\n });\n\n if (\n updatedFeatures?.features[0]\n ) {\n dispatch(setFeature(updatedFeatures?.features[0]));\n }\n }, [dispatch, executeGetFeature, layer]);\n\n const update = useCallback(async () => {\n if (!map || !client) {\n return;\n }\n\n let editFormConfig = layer.get('editFormConfig') as PropertyFormTabConfig[];\n\n if (editFormConfig?.length === 0) {\n Logger.warn(`Layer ${layer.get('name')} has no 'editFormConfig' set`);\n return;\n }\n\n const properties = cloneDeep(feature?.properties) || {};\n\n Object.entries(properties).forEach(([key, value]) => {\n const tabConfigs = editFormConfig?.filter(tabCfg => {\n return tabCfg.children?.find(formCfg => formCfg.propertyName === key);\n });\n\n if (tabConfigs.length > 1) {\n Logger.warn(`Property ${key} is configured in multiple tabs. Is this intended?`);\n }\n\n if (tabConfigs && tabConfigs[0]) {\n const isDate = tabConfigs[0].children?.find(cfg => {\n return cfg.propertyName === key && cfg.component === 'DATE';\n });\n\n if (isDate) {\n properties[key] = moment(value);\n }\n\n const isUpload = tabConfigs[0].children?.find(cfg => {\n return cfg.propertyName === key && cfg.component === 'UPLOAD';\n });\n\n if (isUpload) {\n properties[key] = [{\n name: value,\n status: 'done'\n }];\n }\n }\n });\n\n form.resetFields();\n form.setFieldsValue(properties);\n\n setTabConfig(editFormConfig);\n setInitialValues(properties);\n }, [map, client, layer, feature?.properties, form]);\n\n useEffect(() => {\n update();\n }, [update]);\n\n const onSaveSuccess = (responseText?: string) => {\n if (!responseText) {\n return;\n }\n setErrorMsg(undefined);\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(responseText, 'text/xml');\n\n // get feature id from response\n const featureId = xmlDoc.getElementsByTagName('ogc:FeatureId');\n const idString = featureId.item(0)?.getAttribute('fid');\n const id = idString?.split('.')[1];\n if (id) {\n reloadFeature(id);\n }\n };\n\n const onSaveError = () => {\n setErrorMsg(t('EditFeatureFullForm.saveErrorMsg'));\n };\n\n const onDeleteSuccess = () => {\n setErrorMsg(undefined);\n dispatch(setFeature(null));\n };\n\n const onDeleteError = () => {\n setErrorMsg(t('EditFeatureFullForm.deleteErrorMsg'));\n };\n\n return (\n <>\n \n {\n errorMsg && (\n \n )\n }\n \n \n \n );\n};\n\nexport default EditFeatureFullForm;\n","import {\n useCallback\n} from 'react';\n\nimport {\n Feature\n} from 'geojson';\n\nimport OlSourceImageWMS from 'ol/source/ImageWMS';\nimport OlSourceTileWMS from 'ol/source/TileWMS';\n\nimport Logger from '@terrestris/base-util/dist/Logger';\n\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useSHOGunAPIClient from './useSHOGunAPIClient';\n\nexport type ExecuteWfsLockOpts = {\n layer: WmsLayer;\n feature: Feature;\n};\n\nexport const useExecuteWfsLockFeature = () => {\n const client = useSHOGunAPIClient();\n\n const writeWfsLockFeature = (opts: ExecuteWfsLockOpts) => {\n const featureId = opts.feature.id;\n const featureProperties = opts.feature.properties;\n\n if (!featureId || !featureProperties) {\n Logger.warn('Either the id of the feature or its properties (or even both) aren\\'t available');\n return;\n }\n\n let id: number;\n if (typeof featureId === 'number') {\n id = featureId;\n } else {\n id = parseInt(featureId.split('.')[1], 10);\n }\n\n const match = Object.entries(featureProperties).find(([, value]) => (value === id || value === id.toString()));\n\n if (!match) {\n Logger.warn('Count not detect the id property');\n return;\n }\n\n const idProperty = match[0];\n\n const typeName = opts.layer.getSource()?.getParams().LAYERS;\n\n const lockFeatureDoc = document.createElementNS('http://www.opengis.net/wfs/2.0', 'LockFeature');\n\n lockFeatureDoc.setAttribute('service', 'WFS');\n lockFeatureDoc.setAttribute('version', '2.0.0');\n // Expiry in seconds.\n lockFeatureDoc.setAttribute('expiry', '300');\n lockFeatureDoc.setAttribute('lockAction', 'SOME');\n\n const queryElement = document.createElementNS('http://www.opengis.net/wfs/2.0', 'Query');\n queryElement.setAttribute('typeNames', typeName);\n\n const filterElement = document.createElementNS('http://www.opengis.net/fes/2.0', 'Filter');\n const isEqualToElement = document.createElementNS('http://www.opengis.net/fes/2.0', 'PropertyIsEqualTo');\n\n const valueReferenceElement = document.createElementNS('http://www.opengis.net/fes/2.0', 'ValueReference');\n const valueReferenceValue = document.createTextNode(idProperty);\n valueReferenceElement.appendChild(valueReferenceValue);\n\n const literalElement = document.createElementNS('http://www.opengis.net/fes/2.0', 'Literal');\n const literalValue = document.createTextNode(id.toString());\n literalElement.appendChild(literalValue);\n\n isEqualToElement.appendChild(valueReferenceElement);\n isEqualToElement.appendChild(literalElement);\n\n filterElement.appendChild(isEqualToElement);\n\n queryElement.appendChild(filterElement);\n\n lockFeatureDoc.appendChild(queryElement);\n\n return lockFeatureDoc;\n };\n\n const executeWfsLockFeature = useCallback(async (opts: ExecuteWfsLockOpts) => {\n let url;\n\n const source = opts.layer.getSource();\n if (source instanceof OlSourceImageWMS) {\n url = (source as OlSourceImageWMS).getUrl();\n }\n if (source instanceof OlSourceTileWMS) {\n const urls = (source as OlSourceTileWMS).getUrls();\n url = urls ? urls[0] : undefined;\n }\n\n if (!url) {\n return;\n }\n\n if (url.endsWith('?')) {\n url = url.slice(0, -1);\n }\n\n const lockFeatureDoc = writeWfsLockFeature({\n layer: opts.layer,\n feature: opts.feature\n });\n\n if (!lockFeatureDoc) {\n return;\n }\n\n const defaultHeaders = {\n 'Content-Type': 'application/xml'\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: opts.layer?.get('useBearerToken') ? {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n } : defaultHeaders,\n body: new XMLSerializer().serializeToString(lockFeatureDoc)\n });\n\n if (!response.ok) {\n throw new Error('No successful response while executing a WFS-LockFeature');\n }\n\n const responseText = await response.text();\n\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(responseText, 'text/xml');\n\n // TODO Make detection more robust\n const transactionLockFailed = xmlDoc.getElementsByTagName('wfs:FeaturesNotLocked');\n\n if (transactionLockFailed.length > 0) {\n throw new Error(`Error while locking a feature: ${responseText}`);\n }\n\n return responseText;\n }, [client]);\n\n return executeWfsLockFeature;\n};\n\nexport default useExecuteWfsLockFeature;\n","import {\n useCallback,\n useEffect\n} from 'react';\n\nimport {\n FeatureCollection\n} from 'geojson';\n\nimport MapBrowserEvent from 'ol/MapBrowserEvent';\n\nimport {\n Logger\n} from '@terrestris/base-util';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useSHOGunAPIClient from './useSHOGunAPIClient';\n\nexport const useGetFeatureInfo = (layer?: WmsLayer, onSuccess?: (featureCollection: FeatureCollection) => void, onFailure?: () => void) => {\n const map = useMap();\n const client = useSHOGunAPIClient();\n\n const onSingleClick = useCallback(async (evt: MapBrowserEvent) => {\n if (!map || !layer) {\n return;\n }\n\n const coords = evt.coordinate;\n\n const viewResolution = map.getView().getResolution();\n\n if (!viewResolution) {\n return;\n }\n\n const source = layer.getSource();\n const url = source?.getFeatureInfoUrl(\n coords,\n viewResolution,\n map.getView().getProjection(),\n {\n INFO_FORMAT: 'application/json',\n BUFFER: 10\n }\n );\n\n const defaultHeaders = {\n 'Content-Type': 'application/json'\n };\n\n if (!url) {\n return;\n }\n\n try {\n map.getTargetElement().style.cursor = 'wait';\n\n const response = await fetch(url, {\n method: 'GET',\n headers: layer.get('useBearerToken') ? {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n } : defaultHeaders\n });\n\n if (!response.ok) {\n throw new Error('No successful response');\n }\n\n const featureCollection: FeatureCollection = await response.json();\n\n if (onSuccess) {\n onSuccess(featureCollection);\n }\n } catch (error) {\n Logger.error('Error: ', error);\n\n if (onFailure) {\n onFailure();\n }\n } finally {\n map.getTargetElement().style.cursor = '';\n }\n }, [client, layer, map, onSuccess, onFailure]);\n\n const onPointerMove = useCallback((evt: MapBrowserEvent) => {\n if (!map || !layer) {\n return;\n }\n\n if (evt.dragging) {\n return;\n }\n\n const data = layer.getData(evt.pixel);\n\n if (!(data instanceof Uint8ClampedArray)) {\n return;\n }\n\n const hit = data && data[3] > 0;\n\n map.getTargetElement().style.cursor = hit ? 'pointer' : '';\n }, [layer, map]);\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n map.on('pointermove', onPointerMove);\n map.on('singleclick', onSingleClick);\n\n return () => {\n map.un('pointermove', onPointerMove);\n map.un('singleclick', onSingleClick);\n };\n }, [map, onPointerMove, onSingleClick]);\n};\n\nexport default useGetFeatureInfo;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState\n} from 'react';\n\nimport {\n Button\n} from 'antd';\n\nimport ClientConfiguration from 'clientConfig';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport Logger from '@terrestris/base-util/dist/Logger';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\nimport {\n WmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useAppDispatch from '../../../hooks/useAppDispatch';\nimport useAppSelector from '../../../hooks/useAppSelector';\nimport useExecuteWfsDescribeFeatureType, {\n isGeometryType\n} from '../../../hooks/useExecuteWfsDescribeFeatureType';\nimport useExecuteWfsLockFeature from '../../../hooks/useExecuteWfsTransactionLock';\nimport useGetFeatureInfo from '../../../hooks/useGetFeatureInfo';\n\nimport {\n setFeature\n} from '../../../store/editFeature';\n\nimport './index.less';\n\nexport type EditFeatureSwitchProps = {\n layer: WmsLayer;\n onLockSuccess?: (responseText: string) => void;\n onLockError?: (error: unknown) => void;\n onCreate?: () => void;\n};\n\nexport const EditFeatureSwitch: React.FC = ({\n layer,\n onLockSuccess = () => {},\n onLockError = () => {},\n onCreate = () => {}\n}) => {\n const [loading, setLoading] = useState(false);\n\n const executeWfsDescribeFeatureType = useExecuteWfsDescribeFeatureType();\n const executeWfsLockFeature = useExecuteWfsLockFeature();\n const dispatch = useAppDispatch();\n const map = useMap();\n const {\n t\n } = useTranslation();\n\n const allowedEditMode = useAppSelector(\n state => state.editFeature.userEditMode\n );\n\n useGetFeatureInfo(layer, async (featureCollection) => {\n if (\n featureCollection.features.length &&\n (allowedEditMode.includes('UPDATE') || allowedEditMode.includes('DELETE'))\n ) {\n\n const feature = featureCollection.features[0];\n\n if (!layer || !feature) {\n return;\n }\n\n if (ClientConfiguration.wfsLockFeatureEnabled) {\n try {\n const response = await executeWfsLockFeature({\n layer: layer,\n feature: feature\n });\n\n if (!response) {\n return;\n }\n\n dispatch(setFeature(feature));\n\n onLockSuccess(response);\n } catch (error) {\n onLockError(error);\n }\n } else {\n dispatch(setFeature(feature));\n }\n }\n });\n\n const getGeometryType = async () => {\n if (!map || !layer) {\n return;\n }\n\n try {\n setLoading(true);\n\n const describeFeatureType = await executeWfsDescribeFeatureType(layer);\n\n if (!describeFeatureType) {\n return;\n }\n\n // We expect a single featureType here.\n const geomProperty = describeFeatureType.featureTypes[0]?.properties\n ?.find(property => isGeometryType(property.type));\n\n switch (geomProperty?.type) {\n case 'gml:MultiPoint':\n return 'MultiPoint';\n case 'gml:Point':\n return 'Point';\n case 'gml:MultiLineString':\n return 'MultiLineString';\n case 'gml:LineString':\n return 'LineString';\n case 'gml:MultiPolygon':\n return 'MultiPolygon';\n case 'gml:Polygon':\n return 'Polygon';\n default:\n break;\n }\n } catch (error) {\n Logger.error(error);\n } finally {\n setLoading(false);\n }\n };\n\n const onCreateClick = async () => {\n const geomType = await getGeometryType();\n\n if (!geomType) {\n return;\n }\n\n dispatch(setFeature({\n type: 'Feature',\n properties: {},\n geometry: {\n type: geomType,\n coordinates: []\n }\n }));\n\n onCreate();\n };\n\n return (\n
\n {allowedEditMode.includes('CREATE') && (\n <>\n {\n allowedEditMode.includes('UPDATE') &&\n
{t('EditFeatureSwitch.usageHint')}
\n }\n \n {t('EditFeatureSwitch.createFeature')}\n \n \n )}\n {!allowedEditMode.includes('CREATE') &&\n (allowedEditMode.includes('UPDATE') ||\n allowedEditMode.includes('DELETE')) && (\n
{t('EditFeatureSwitch.limitedUsageHint')}
\n )}\n
\n );\n};\n\nexport default EditFeatureSwitch;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useEffect,\n useState\n} from 'react';\n\nimport {\n Alert, Modal\n} from 'antd';\n\nimport ClientConfiguration from 'clientConfig';\n\nimport OlFeature from 'ol/Feature';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport {\n Logger\n} from '@terrestris/base-util';\n\nimport MapUtil from '@terrestris/ol-util/dist/MapUtil/MapUtil';\n\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport {\n WmsLayer,\n isWmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport useAppDispatch from '../../hooks/useAppDispatch';\nimport useAppSelector from '../../hooks/useAppSelector';\nimport useExecuteWfsTransaction from '../../hooks/useExecuteWfsTransaction';\nimport useWriteWfsTransaction from '../../hooks/useWriteWfsTransaction';\n\nimport {\n reset\n} from '../../store/editFeature';\nimport {\n hide as hideEditFeatureDrawer\n} from '../../store/editFeatureDrawerOpen';\n\nimport MapDrawer, {\n MapDrawerProps\n} from '../MapDrawer';\n\nimport EditFeatureFullForm from './EditFeatureFullForm';\nimport EditFeatureSwitch from './EditFeatureSwitch';\n\nimport './index.less';\n\nexport type EditFeatureDrawerProps = MapDrawerProps & {};\n\nexport const EditFeatureDrawer: React.FC = ({\n ...passThroughProps\n}) => {\n const {\n t\n } = useTranslation();\n\n const [layer, setLayer] = useState();\n const [isFeatureLocked, setIsFeatureLocked] = useState(false);\n const [drawerTitle, setDrawerTitle] = useState(t('EditFeatureDrawer.featureEditor'));\n\n const isDrawerOpen = useAppSelector(state => state.editFeatureDrawerOpen);\n const layerId = useAppSelector(state => state.editFeature.layerId);\n const feature = useAppSelector(state => state.editFeature.feature);\n\n const map = useMap();\n const dispatch = useAppDispatch();\n const writeWfsTransaction = useWriteWfsTransaction();\n const executeWfsTransaction = useExecuteWfsTransaction();\n\n useEffect(() => {\n if (!map || !layerId) {\n return;\n }\n\n const olLayer = MapUtil.getLayerByOlUid(map, layerId);\n\n if (!olLayer || !isWmsLayer(olLayer)) {\n Logger.warn(`Could not find layer with id ${layerId}`);\n return;\n }\n\n setDrawerTitle(`${t('EditFeatureDrawer.featureEditor')} - ${olLayer.get('name')}`);\n setLayer(olLayer);\n }, [map, layerId, t]);\n\n const releaseLock = async () => {\n if (!layer || !feature || !feature.id || !ClientConfiguration.wfsLockFeatureEnabled) {\n return;\n }\n\n try {\n const feat = new OlFeature();\n feat.setId(feature.id);\n\n const transaction = await writeWfsTransaction({\n layer: layer,\n deleteFeatures: [],\n upsertFeatures: [feat]\n });\n\n if (!transaction) {\n return;\n }\n\n await executeWfsTransaction({\n layer: layer,\n transaction: transaction\n });\n } catch (error) {\n Logger.error('Error while releasing the lock on the feature');\n }\n };\n\n const closeDrawer = async () => {\n await releaseLock();\n\n dispatch(hideEditFeatureDrawer());\n dispatch(reset());\n setIsFeatureLocked(false);\n };\n\n const onDrawerClose = () => {\n if (layer && feature) {\n Modal.confirm({\n maskClosable: false,\n title: t('EditFeatureDrawer.closeDrawerWarnTitle'),\n content: t('EditFeatureDrawer.closeDrawerWarnContent'),\n okType: 'danger',\n onOk: closeDrawer\n });\n } else {\n closeDrawer();\n }\n };\n\n const onLockSuccess = () => {\n setIsFeatureLocked(false);\n };\n\n const onLockError = () => {\n setIsFeatureLocked(true);\n };\n\n const onCreate = () => {\n setIsFeatureLocked(false);\n };\n\n return (\n \n {\n !layer && (\n \n )\n }\n {\n isFeatureLocked && (\n \n )\n }\n {\n layer && layerId && !feature &&\n \n }\n {\n layer && feature &&\n \n }\n \n );\n};\n\nexport default EditFeatureDrawer;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect } from 'react';\n\nimport {\n Button, Divider\n} from 'antd';\n\nimport OlControlMousePosition from 'ol/control/MousePosition';\nimport OlControlScaleLine from 'ol/control/ScaleLine';\nimport { createStringXY } from 'ol/coordinate';\n\nimport { useTranslation } from 'react-i18next';\n\nimport ScaleCombo from '@terrestris/react-geo/dist/Field/ScaleCombo/ScaleCombo';\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport './index.less';\nimport useAppSelector from '../../hooks/useAppSelector';\nimport { usePlugins } from '../../hooks/usePlugins';\n\nimport {\n FooterPlacementOrientation,\n isFooterIntegration\n} from '../../plugin';\nimport { Legal } from '../../store/legal';\n\nexport interface FooterProps extends React.ComponentProps<'div'> { }\n\nexport const Footer: React.FC = ({\n ...restProps\n}): JSX.Element => {\n const plugins = usePlugins();\n const { t } = useTranslation();\n\n const legalInformation: Legal = useAppSelector(state => state.legal);\n const map = useMap();\n\n const insertPlugins = (itemPosition: FooterPlacementOrientation, items: JSX.Element[]) => {\n plugins.forEach(plugin => {\n if (isFooterIntegration(plugin.integration) && plugin.integration?.placementOrientation === itemPosition) {\n const {\n key,\n wrappedComponent: WrappedPluginComponent\n } = plugin;\n\n items.splice(plugin.integration?.insertionIndex || 0, 0,\n \n );\n }\n });\n };\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n const existingControl = map\n .getControls()\n .getArray()\n .find(control => control instanceof OlControlScaleLine);\n\n if (existingControl) {\n return;\n }\n\n map.addControl(\n new OlControlScaleLine({\n target: 'scale-line-container'\n })\n );\n }, [map]);\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n const existingControl = map\n .getControls()\n .getArray()\n .find(control => control instanceof OlControlMousePosition);\n\n if (existingControl) {\n return;\n }\n\n map.addControl(\n new OlControlMousePosition({\n coordinateFormat: createStringXY(2),\n projection: map.getView().getProjection(),\n target: 'mouse-position'\n })\n );\n }, [map]);\n\n if (!map) {\n return <>;\n }\n\n const getLeftItems = () => {\n const items = [\n ,\n ,\n \n {t('Footer.scale')}: \n \n \n ,\n \n {t('Footer.refSystem')}: {map.getView().getProjection().getCode()}\n \n ,\n \n {t('Footer.mousePosition')}: \n \n \n ];\n\n insertPlugins('left', items);\n\n return items;\n };\n\n const getRightItems = () => {\n const items = [\n \n {t('Footer.contact')}\n ,\n \n {t('Footer.imprint')}\n ,\n \n {t('Footer.privacypolicy')}\n \n ];\n\n if (plugins.length > 0) {\n insertPlugins('right', items);\n }\n\n return items;\n };\n\n const openContactModal = (): void => {\n window.open(legalInformation.contact, '_blank');\n };\n\n const openImprintModal = (): void => {\n window.open(legalInformation.imprint, '_blank');\n };\n\n const openPrivacyModal = (): void => {\n window.open(legalInformation.privacy, '_blank');\n };\n\n return (\n \n \n {\n getLeftItems()\n }\n \n \n {\n getRightItems()\n }\n \n \n );\n};\n\nexport default Footer;\n","import React, {\n useEffect, useState\n} from 'react';\n\nimport {\n Extent as OlExtent\n} from 'ol/extent';\nimport {\n transformExtent\n} from 'ol/proj';\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport NominatimSearch, {\n NominatimSearchProps\n} from '@terrestris/react-geo/dist/Field/NominatimSearch/NominatimSearch';\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\n\nexport const BasicNominatimSearch: React.FC> = ({\n ...restProps\n}): JSX.Element => {\n const map = useMap();\n const {\n t\n } = useTranslation();\n const [viewBox, setViewBox] = useState();\n\n useEffect(() => {\n const mapViewProjection = map?.getView().getProjection();\n const extent: OlExtent = map?.getView()?.get('extent');\n if (extent) {\n const transformedExtent = transformExtent(extent, mapViewProjection, 'EPSG:4326');\n setViewBox(transformedExtent.toString());\n }\n }, [map]);\n\n if (!map) {\n return <>;\n }\n\n return (\n \n );\n};\n\nexport default BasicNominatimSearch;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import Map from 'ol/Map';\n\nimport { isWmsLayer } from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n SearchConfig\n} from '@terrestris/shogun-util/dist/model/Layer';\n\nexport interface SolrQueryProps {\n searchValue: string;\n map: Map;\n}\n\ntype SolrQuery = {\n query: string;\n fieldList?: string;\n};\n\n/**\n * Generates a solr search query based on the `searchConfiguration` and `searchable` properties of each layer. This\n * currently considers all layers which are part of the layer tree / map.\n */\nexport const generateSolrQuery = ({\n searchValue,\n map\n}: SolrQueryProps): SolrQuery[] => {\n // parse searchValue into an array of search terms,\n // removing special characters and white spaces\n let parts = searchValue.trim()\n .replaceAll(/[()\\\\\\-_./\\/]/g, ' ')\n .split(' ')\n .map(s => s.trim())\n .filter(s => s !== '');\n\n const subQueriesPerLayer: SolrQuery[] = [];\n const layers = map.getAllLayers();\n layers.forEach(layer => {\n if (layer.get('searchable') && isWmsLayer(layer)) {\n const searchConfig = layer.get('searchConfig') as SearchConfig;\n const fullLayerName = layer.getSource()?.getParams().LAYERS;\n if (searchConfig?.attributes) {\n // search only configured attributes\n subQueriesPerLayer.push({\n query: `(featureType:\"${fullLayerName}\" AND (${generateFuzzySearchQuery(parts)}))`,\n fieldList: searchConfig.attributes.join(' ')\n });\n } else {\n // search all attributes of this layer\n subQueriesPerLayer.push({\n query: `(featureType:\"${fullLayerName}\" AND (${generateFuzzySearchQuery(parts)}))`\n });\n }\n }\n });\n return subQueriesPerLayer;\n};\n\n/**\n * Applies operators for wildcard and fuzzy search to a solr (sub)query for multiple search terms.\n * @param searchParts The search input which may consist of multiple search terms, e.g. [\"foo\", \"bar\"]\n */\nconst generateFuzzySearchQuery = (\n searchParts: string[]\n): string => {\n const subQueries = searchParts.map(part => {\n return `(${part.trim()}*^3 OR *${part.trim()}*^2 OR ${part.trim()}~1)`;\n });\n return subQueries.join(' AND ');\n};\n\nexport default generateSolrQuery;\n","import React, {\n useCallback,\n useEffect, useMemo, useRef, useState\n} from 'react';\n\nimport {\n EditOutlined,\n LoadingOutlined,\n SearchOutlined,\n SettingOutlined\n} from '@ant-design/icons';\nimport {\n Button,\n Checkbox,\n Dropdown,\n Empty,\n Input,\n InputProps,\n Tooltip\n} from 'antd';\n\nimport _groupBy from 'lodash/groupBy';\n\nimport { getUid } from 'ol';\nimport {\n Extent as OlExtent\n} from 'ol/extent';\nimport OlFeature from 'ol/Feature';\nimport OlFormatGeoJSON from 'ol/format/GeoJSON';\nimport OlFormatWKT from 'ol/format/WKT';\nimport OlGeometry from 'ol/geom/Geometry';\nimport { transformExtent } from 'ol/proj';\nimport OlStyleCircle from 'ol/style/Circle';\nimport OlStyleFill from 'ol/style/Fill';\nimport OlStyleStroke from 'ol/style/Stroke';\nimport OlStyle from 'ol/style/Style';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport logger from '@terrestris/base-util/dist/Logger';\n\nimport MapUtil from '@terrestris/ol-util/dist/MapUtil/MapUtil';\nimport { NominatimPlace } from '@terrestris/react-geo/dist/Field/NominatimSearch/NominatimSearch';\nimport useMap from '@terrestris/react-geo/dist/Hook/useMap';\nimport SearchResultsPanel, {\n Category as ResultCategory\n} from '@terrestris/react-geo/dist/Panel/SearchResultsPanel/SearchResultsPanel';\n\nimport {\n SearchConfig\n} from '@terrestris/shogun-util/dist/model/Layer';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport './index.less';\n\nimport useAppDispatch from '../../hooks/useAppDispatch';\nimport useAppSelector from '../../hooks/useAppSelector';\nimport useSHOGunAPIClient from '../../hooks/useSHOGunAPIClient';\n\nimport {\n setLayerId\n} from '../../store/editFeature';\n\nimport {\n show as showEditFeatureDrawer\n} from '../../store/editFeatureDrawerOpen';\n\nimport generateSolrQuery from '../../utils/generateSolrQuery';\n\ninterface MultiSearchProps extends InputProps {\n useNominatim: boolean;\n delay?: number;\n minChars?: number;\n solrSearchBasePath?: string;\n useSolrHighlighting?: boolean;\n};\n\nexport type DataSearchResult = {\n [key: string]: string | string[] | number[];\n};\n\nexport type HighlightingResult = {\n [key: string]: string;\n};\n\nexport type HighlightingResults = {\n [key: string]: HighlightingResult;\n};\n\nconst isFulfilled = (p: PromiseSettledResult): p is PromiseFulfilledResult => p.status === 'fulfilled';\n\nexport type SolrQueryConfig = {\n q: string;\n fq?: string;\n defType?: 'lucene' | 'dismax' | 'edismax';\n qf?: string;\n rows?: number;\n hl?: boolean;\n 'hl.fl'?: string;\n 'hl.tag.pre'?: string;\n 'hl.tag.post'?: string;\n 'hl.requireFieldMatch'?: boolean;\n};\n\nexport const MultiSearch: React.FC = ({\n useNominatim,\n useSolrHighlighting = true,\n delay = 1000,\n minChars = 3,\n solrSearchBasePath = '/search/query'\n}): JSX.Element => {\n\n const client = useSHOGunAPIClient();\n const map = useMap();\n const {\n t\n } = useTranslation();\n const dispatch = useAppDispatch();\n\n const clickAwayRef = useRef(null);\n\n const [searchNominatim, setSearchNominatim] = useState(useNominatim);\n const [searchData, setSearchData] = useState(true);\n const [useViewBox, setUseViewBox] = useState(true);\n const [searchValue, setSearchValue] = useState('');\n const [loading, setLoading] = useState(false);\n const [resultsVisible, setResultsVisible] = useState(false);\n const [settingsVisible, setSettingsVisible] = useState(false);\n const [dataSearchResults, setDataSearchResults] = useState([]);\n const [highlightingResults, setHighlightingResults] = useState({});\n const [nominatimResults, setNominatimResults] = useState([]);\n const [searchResults, setSearchResults] = useState([]);\n\n const allowedEditMode = useAppSelector(\n state => state.editFeature.userEditMode\n );\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickAway);\n\n return () => {\n window.removeEventListener('mousedown', handleClickAway);\n };\n }, []);\n\n const handleClickAway = (e: Event) => {\n const parents = [];\n let target = e.target;\n while (target) {\n parents.unshift(target);\n target = (target as Node).parentNode;\n }\n\n if ((clickAwayRef.current && ((clickAwayRef.current as Element).contains(e.target as Node)))) {\n return;\n }\n\n setResultsVisible(false);\n };\n\n const settingsMenu = useMemo(() => {\n return {\n items: [{\n label: (\n setUseViewBox(e.target.checked)}\n >\n {t('MultiSearch.searchInViewBox')}\n \n ),\n key: 'viewbox'\n }, {\n label: (\n setSearchData(e.target.checked)}\n >\n {t('MultiSearch.searchData')}\n \n ),\n key: 'data'\n }, {\n label: (\n setSearchNominatim(e.target.checked)}\n >\n {t('MultiSearch.searchNominatim')}\n \n ),\n key: 'nominatim'\n }]\n };\n }, [searchData, searchNominatim, useViewBox, t]);\n\n const performSearch = useCallback(async () => {\n if (searchValue.length < minChars) {\n resetSearch();\n return;\n }\n\n if (!searchData && !searchNominatim) {\n return;\n }\n\n setLoading(true);\n setNominatimResults([]);\n setDataSearchResults([]);\n setHighlightingResults({});\n\n let response;\n let viewBox: OlExtent | null = null;\n\n if (useViewBox) {\n const mapViewProjection = map?.getView().getProjection();\n const extent = map?.getView()?.calculateExtent();\n if (extent) {\n viewBox = transformExtent(extent, mapViewProjection, 'EPSG:4326');\n }\n }\n\n if (searchData && map) {\n try {\n const searchUrl = new URL(`${window.location.origin}${solrSearchBasePath}`);\n const queriesPerLayer = generateSolrQuery({\n searchValue,\n map\n });\n\n const promises = queriesPerLayer.map(q => {\n const solrQueryConfig: SolrQueryConfig = {\n q: q.query,\n rows: 100,\n defType: 'edismax'\n };\n\n if (q.fieldList) {\n solrQueryConfig.qf = q.fieldList;\n } else {\n solrQueryConfig.qf = 'search';\n }\n\n if (useViewBox && viewBox) {\n const bboxFilter = `geometry:[${viewBox[1]},${viewBox[0]} TO ${viewBox[3]},${viewBox[2]}]`;\n solrQueryConfig.fq = bboxFilter;\n }\n\n if (useSolrHighlighting) {\n solrQueryConfig.hl = true;\n solrQueryConfig['hl.fl'] = '*';\n solrQueryConfig['hl.tag.pre'] = '';\n solrQueryConfig['hl.tag.post'] = '';\n solrQueryConfig['hl.requireFieldMatch'] = true;\n }\n\n const defaultHeaders = {\n 'Content-Type': 'application/json'\n };\n\n return fetch(searchUrl.href, {\n method: 'POST',\n headers: {\n ...defaultHeaders,\n ...getBearerTokenHeader(client?.getKeycloak())\n },\n body: JSON.stringify(solrQueryConfig)\n });\n });\n\n const results = await Promise.allSettled(promises.map(async pr => {\n const res = await pr;\n return res.json();\n }));\n\n const successfulResults = results.filter(isFulfilled);\n const dataResults = successfulResults.flatMap(sR => sR.value?.response?.docs);\n const hlResults = Object.assign({}, ...successfulResults.map(sr => sr.value?.highlighting));\n\n setDataSearchResults(dataResults);\n setHighlightingResults(hlResults);\n } catch (error) {\n setDataSearchResults([]);\n setHighlightingResults({});\n logger.error('Error while fetching the layer search results: ', error);\n } finally {\n if (!searchNominatim) {\n setLoading(false);\n }\n }\n }\n\n if (searchNominatim) {\n try {\n const nominatimUrl = new URL('https://nominatim.terrestris.de/search');\n nominatimUrl.searchParams.set('q', searchValue);\n nominatimUrl.searchParams.set('format', 'json');\n nominatimUrl.searchParams.set('polygon_geojson', '1');\n\n if (useViewBox && viewBox) {\n nominatimUrl.searchParams.set('viewbox', viewBox.toString());\n nominatimUrl.searchParams.set('bounded', '1');\n }\n response = await fetch(nominatimUrl.href);\n setNominatimResults(await response.json());\n }\n catch (error) {\n setNominatimResults([]);\n logger.error('Error while fetching the nominatim results: ', error);\n } finally {\n setLoading(false);\n }\n }\n }, [searchValue, minChars, searchData, searchNominatim, useViewBox, map, solrSearchBasePath, useSolrHighlighting, client]);\n\n const replaceTemplates = (template: string, data: DataSearchResult): string => {\n const pattern = /{\\s*(\\w+?)\\s*}/g; // regex for template string with values in brackets, e.g. {name}\n return template.replace(pattern, (_, token) => data[token]?.toString() || '');\n };\n\n const getFeatureTitle = useCallback((dsResult: DataSearchResult, highlightResult?: HighlightingResult): string => {\n if (!map) {\n return '';\n }\n\n const layer = MapUtil.getLayerByNameParam(map, dsResult.featureType[0] as string);\n const searchConfig = layer?.get('searchConfig') as SearchConfig;\n\n const blacklistedAttributes = [\n 'category',\n 'id',\n 'featureType',\n 'geometry',\n 'search'\n ];\n\n let title: string = '';\n\n if (searchConfig?.displayTemplate) {\n return replaceTemplates(searchConfig.displayTemplate, dsResult);\n }\n\n if (highlightResult) {\n const filteredHighlightKeys = Object.keys(highlightResult).filter(key => !blacklistedAttributes.includes(key));\n if (filteredHighlightKeys.length > 0) {\n const highlightValue = highlightResult[filteredHighlightKeys[0]];\n return `${highlightValue} [${filteredHighlightKeys[0]}]`;\n }\n }\n\n Object.keys(dsResult)\n .filter(key => !blacklistedAttributes.includes(key))\n .forEach(propKey => {\n let propValue = dsResult[propKey]?.toString();\n if (!title && propValue.toLowerCase().indexOf(searchValue?.toLowerCase()) > -1) {\n // show matched value followed by the attribute name in square brackets (e.g. '53111 Bonn [city]')\n title = `${propValue} [${propKey}]`;\n }\n });\n\n if (!title) {\n // fallback -> should never happen after adding of the valid layer search config\n title = dsResult.id as string;\n }\n\n return title;\n }, [searchValue, map]);\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n let updatedResults: ResultCategory[] = [];\n\n if (nominatimResults.length > 0) {\n\n const geoJsonFormat = new OlFormatGeoJSON();\n const nFeats = nominatimResults.map(f => {\n const olFeat = geoJsonFormat.readFeature(f.geojson, {\n dataProjection: 'EPSG:4326',\n featureProjection: map.getView().getProjection()\n });\n olFeat.set('title', f.display_name);\n return olFeat;\n });\n\n const nResults: ResultCategory = {\n title: t('MultiSearch.nominatimTitle'),\n features: nFeats\n };\n updatedResults.push(nResults);\n }\n\n if (dataSearchResults?.length > 0) {\n\n const wktFormat = new OlFormatWKT();\n // 1. group by category\n const categories = _groupBy(dataSearchResults, res => res.category[0]);\n // 2. build features\n Object.keys(categories).forEach(category => {\n const features = categories[category].map(dsResult => {\n if (!dsResult.geometry?.[0]) {\n return;\n }\n const id = dsResult.id as string;\n\n const geometry = wktFormat.readGeometry(dsResult.geometry[0], {\n dataProjection: 'EPSG:4326',\n featureProjection: map.getView().getProjection()\n });\n const olFeat = new OlFeature({\n geometry\n });\n olFeat.set('title', getFeatureTitle(dsResult, highlightingResults?.[id]));\n let ftName;\n if (dsResult.featureType?.[0]) {\n const layer = MapUtil.getLayerByNameParam(map, dsResult.featureType?.[0] as string);\n if (layer) {\n olFeat.set('layer', layer);\n ftName = layer.get('name');\n }\n } else {\n ftName = id.substring(0, id.lastIndexOf('_'));\n }\n olFeat.set('ftName', ftName);\n return olFeat;\n }).filter(f => f) as OlFeature[];\n const resultCategory: ResultCategory = {\n title: category,\n features\n };\n updatedResults.push(resultCategory);\n });\n }\n\n setResultsVisible(true);\n setSearchResults(updatedResults);\n\n }, [dataSearchResults, highlightingResults, nominatimResults, map, getFeatureTitle, t]);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n performSearch();\n }, delay);\n\n return () => clearTimeout(timeout);\n\n }, [performSearch, delay]);\n\n const resetSearch = () => {\n setDataSearchResults([]);\n setNominatimResults([]);\n };\n\n const actionsCreator = (item: any) => {\n const feat = item.feature;\n const layer = feat.get('layer');\n\n if (!layer?.get('editable')) {\n return;\n }\n\n const onEditFeatureBtnClick = () => {\n dispatch(setLayerId(getUid(layer)));\n dispatch(showEditFeatureDrawer());\n setResultsVisible(false);\n };\n\n // button is temporarily disabled\n return [<>];\n // if (\n // allowedEditMode.includes('CREATE') ||\n // allowedEditMode.includes('DELETE') ||\n // allowedEditMode.includes('UPDATE')\n // ) {\n // return [\n // \n // }\n // />\n // \n // ];\n // } else {\n // return [<>];\n // }\n };\n\n const layerStyle = useMemo(() => (\n new OlStyle({\n stroke: new OlStyleStroke({\n color: 'rgb(255,0,0)',\n width: 2\n }),\n fill: new OlStyleFill({\n color: 'rgba(255,255,255, 0.5)'\n }),\n image: new OlStyleCircle({\n radius: 10,\n fill: new OlStyleFill({\n color: 'rgba(255,255,255, 0.5)'\n }),\n stroke: new OlStyleStroke({\n color: 'rgb(255,0,0)',\n width: 3\n })\n })\n })\n ), []);\n\n const resultRenderer = () => {\n if (searchValue.length < 2 || !resultsVisible || loading || !dataSearchResults) {\n return null;\n }\n\n const numTotal = nominatimResults.length + dataSearchResults.length;\n\n if (numTotal === 0) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n };\n\n if (!map) {\n return <>;\n }\n\n return (\n
\n {\n setLoading(event.target.value !== '');\n setSearchValue(event.target.value);\n }}\n allowClear\n addonAfter={\n \n \n \n }\n onFocus={() => setResultsVisible(true)}\n placeholder={t('MultiSearch.searchPlaceholder')}\n prefix={}\n suffix={loading ? : null}\n />\n {resultRenderer()}\n
\n );\n};\n\nexport default MultiSearch;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport {\n InputProps\n} from 'antd/lib/input';\n\nimport logger from '@terrestris/base-util/dist/Logger';\n\nimport useAppSelector from '../../hooks/useAppSelector';\nimport BasicNominatimSearch from '../BasicNominatimSearch';\nimport MultiSearch from '../MultiSearch';\n\nimport './index.less';\n\ninterface SearchFieldProps extends InputProps { };\n\nexport const SearchField: React.FC = (): JSX.Element => {\n\n const useNominatim = useAppSelector((state) => state.searchEngines.includes('nominatim'));\n const useSolr = useAppSelector((state) => state.searchEngines.includes('solr'));\n\n if (!useNominatim && !useSolr) {\n logger.warn('Neither nominatim nor solr search is configured.');\n return <>;\n }\n\n return (\n \n {\n useSolr ?\n :\n \n }\n \n );\n};\n\nexport default SearchField;\n","import md5 from 'js-md5';\n\nexport interface GravatarProps {\n email: string;\n size?: number;\n rating?: 'g' | 'pg' | 'r' | 'x';\n defaultImage?: '404' | 'mp' | 'identicon' | 'monsterid' | 'wavatar' | 'retro' | 'robohash' | 'blank';\n force?: boolean;\n}\n\nconst GRAVATAR_BASE_URL = 'https://www.gravatar.com/avatar/';\n\n/**\n * https://de.gravatar.com/site/implement/images/\n */\nexport const getGravatarUrl = ({\n email = '',\n size = 80,\n rating = 'g',\n defaultImage = 'identicon',\n force = false\n}: GravatarProps): string => {\n const lowerCaseEmail = email.toLowerCase();\n const hash = md5(lowerCaseEmail);\n\n let url = `${GRAVATAR_BASE_URL}${hash}?s=${size}&r=${rating}&d=${defaultImage}`;\n\n if (force) {\n url = `${url}&f=y`;\n }\n\n return url;\n};\n\nexport default getGravatarUrl;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState\n} from 'react';\n\nimport {\n Modal,\n Statistic\n} from 'antd';\n\nimport {\n ModalProps\n} from 'antd/lib/modal';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport useAppSelector from '../../hooks/useAppSelector';\n\nimport {\n useClientVersion\n} from '../../hooks/useVersion';\n\nimport './index.less';\n\ninterface ApplicationInfoProps extends ModalProps {\n opener?: JSX.Element;\n}\n\nexport const ApplicationInfo: React.FC = ({\n opener,\n ...restProps\n}) => {\n const {\n t\n } = useTranslation();\n\n const appInfo = useAppSelector(state => state.appInfo);\n const logoPath = useAppSelector(state => state.logoPath);\n const appDescription = useAppSelector(state => state.description);\n\n const [isVisible, setVisible] = useState(false);\n\n const toggleVisibility = () => {\n setVisible(!isVisible);\n };\n\n let Opener;\n if (opener) {\n Opener = React.cloneElement(\n opener,\n {\n onClick: toggleVisibility\n }\n );\n } else {\n Opener = ;\n }\n\n return (\n <>\n {\n Opener\n }\n \n \n \n {appDescription}\n \n \n {\n (appInfo.version && appInfo.buildTime) &&\n \n }\n \n \n );\n};\n\nexport default ApplicationInfo;\n","export const useClientVersion = () => {\n return PROJECT_VERSION;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport {\n faInfo,\n faUserCog,\n faSignOut,\n faSignIn,\n faAngleDown\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n FontAwesomeIcon\n} from '@fortawesome/react-fontawesome';\n\nimport {\n ItemType\n} from 'antd/lib/menu/hooks/useItems';\n\nimport ClientConfiguration from 'clientConfig';\n\nimport _isEmpty from 'lodash/isEmpty';\n\nimport {\n MenuInfo\n} from 'rc-menu/lib/interface';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport UserChip from '@terrestris/react-geo/dist/UserChip/UserChip';\n\nimport useAppSelector from '../../hooks/useAppSelector';\nimport useSHOGunAPIClient from '../../hooks/useSHOGunAPIClient';\nimport {\n getGravatarUrl\n} from '../../utils/getGravatarUrl';\n\nimport ApplicationInfo from '../ApplicationInfo';\n\nimport './index.less';\n\ninterface OwnProps { }\n\ntype UserProps = OwnProps;\n\nexport const UserMenu: React.FC = (): JSX.Element => {\n const {\n t\n } = useTranslation();\n\n const client = useSHOGunAPIClient();\n const keycloak = client?.getKeycloak();\n\n const user = useAppSelector((state) => state.user);\n\n const onMenuClick = (evt: MenuInfo) => {\n switch (evt.key) {\n case 'settings':\n if (keycloak) {\n keycloak.accountManagement();\n }\n break;\n case 'info':\n // Don't do anything, visible state will be handled by the menu itself.\n break;\n case 'login':\n if (keycloak) {\n keycloak.login();\n }\n break;\n case 'logout':\n if (keycloak) {\n keycloak.logout();\n }\n break;\n default:\n break;\n }\n };\n\n const getMenu = () => {\n const login: ItemType = {\n key: 'login',\n icon: (\n \n ),\n label: t('UserMenu.loginMenuTitle')\n };\n\n const username: ItemType = {\n key: 'username',\n label: (\n \n \n {\n user.providerDetails?.email\n }\n \n \n )\n };\n\n const divider: ItemType = {\n type: 'divider'\n };\n\n const settings: ItemType = {\n key: 'settings',\n icon: (\n \n ),\n label: t('UserMenu.settingsMenuTitle')\n };\n\n const info: ItemType = {\n key: 'info',\n icon: (\n \n ),\n label: (\n \n {t('UserMenu.infoMenuTitle')}\n
\n }\n />\n )\n };\n\n const logout: ItemType = {\n key: 'logout',\n icon: (\n \n ),\n label: (\n \n {t('UserMenu.logoutMenuTitle')}\n \n )\n };\n\n const items: ItemType[] = [];\n\n if (_isEmpty(user)) {\n if (ClientConfiguration.keycloak?.enabled) {\n items.push(login);\n }\n items.push(info);\n } else {\n const accountRoles = keycloak?.tokenParsed?.resource_access?.account?.roles;\n const hasUserManagementAccess = Array.isArray(accountRoles) && accountRoles.indexOf('manage-account') > -1;\n const itemsForLoggedInUser = hasUserManagementAccess ? [\n username,\n divider,\n settings,\n info,\n divider,\n logout\n ] : [\n username,\n divider,\n info,\n divider,\n logout\n ];\n\n items.push(...itemsForLoggedInUser);\n }\n\n return {\n items,\n onClick: onMenuClick\n };\n };\n\n return (\n \n }\n userMenu={getMenu()}\n />\n );\n};\n\nexport default UserMenu;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\n\nimport {\n useAppSelector\n} from '../../hooks/useAppSelector';\nimport {\n usePlugins\n} from '../../hooks/usePlugins';\n\nimport {\n HeaderPlacementOrientation,\n isHeaderIntegration\n} from '../../plugin';\nimport SearchField from '../SearchField';\n\nimport UserMenu from '../UserMenu';\n\nimport './index.less';\n\nexport interface HeaderProps extends React.ComponentProps<'div'> { };\n\nexport const Header: React.FC = ({\n ...restProps\n}): JSX.Element => {\n const title = useAppSelector((state) => state.title);\n const logoPath = useAppSelector((state) => state.logoPath);\n const plugins = usePlugins();\n\n const insertPlugins = (itemPosition: HeaderPlacementOrientation, items: JSX.Element[]) => {\n plugins.forEach(plugin => {\n if (isHeaderIntegration(plugin.integration) && plugin.integration?.placementOrientation === itemPosition) {\n const {\n key,\n wrappedComponent: WrappedPluginComponent\n } = plugin;\n\n items.splice(plugin.integration?.insertionIndex || 0, 0,\n \n );\n }\n });\n };\n\n const getLeftItems = () => {\n const items = [(\n \n ), (\n \n {title}\n \n )];\n\n insertPlugins('left', items);\n\n return items;\n };\n\n const getCenterItems = () => {\n const items = [\n \n ];\n\n insertPlugins('center', items);\n\n return items;\n };\n\n const getRightItems = () => {\n const items = [\n \n \n \n ];\n\n insertPlugins('right', items);\n\n return items;\n };\n\n return (\n \n \n {\n getLeftItems()\n }\n \n \n {\n getCenterItems()\n }\n \n \n {\n getRightItems()\n }\n \n \n );\n};\n\nexport default Header;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState,\n useEffect,\n useCallback\n} from 'react';\n\nimport {\n Alert,\n Spin\n} from 'antd';\n\nimport OlLayer from 'ol/layer/Layer';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport Logger from '@terrestris/base-util/dist/Logger';\n\nimport Layer from '@terrestris/shogun-util/dist/model/Layer';\n\nimport useSHOGunAPIClient from '../../../hooks/useSHOGunAPIClient';\n\nimport './index.less';\n\nexport type LayerConfigurationProps = React.ComponentProps<'pre'> & {\n layer?: OlLayer;\n};\n\nexport const LayerConfiguration: React.FC = ({\n layer,\n ...restProps\n}): JSX.Element => {\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState();\n const [layerConfiguration, setLayerConfiguration] = useState();\n\n const client = useSHOGunAPIClient();\n\n const {\n t\n } = useTranslation();\n\n const getLayerConfiguration = useCallback(async () => {\n try {\n setLoading(true);\n setErrorMessage('');\n\n if (!layer || !layer.get('shogunId')) {\n throw new Error('No layer provided or the layer has no shogunId set');\n }\n\n const conf = await client?.layer().findOne(layer.get('shogunId'));\n\n setLayerConfiguration(conf);\n } catch (error) {\n Logger.error(error);\n setErrorMessage(t('LayerConfiguration.errorMessage'));\n } finally {\n setLoading(false);\n }\n }, [t, client, layer]);\n\n useEffect(() => {\n getLayerConfiguration();\n }, [getLayerConfiguration]);\n\n if (errorMessage) {\n return (\n \n );\n }\n\n return (\n \n \n \n {\n JSON.stringify(layerConfiguration, null, ' ')\n }\n \n \n \n );\n};\n\nexport default LayerConfiguration;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState,\n useEffect,\n useCallback\n} from 'react';\n\nimport {\n Alert,\n Form,\n FormProps,\n Spin\n} from 'antd';\n\nimport OlLayerImage from 'ol/layer/Image';\nimport OlLayer from 'ol/layer/Layer';\nimport OlLayerTile from 'ol/layer/Tile';\nimport OlSourceImageWMS from 'ol/source/ImageWMS';\nimport OlSourceTileWMS from 'ol/source/TileWMS';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport Logger from '@terrestris/base-util/dist/Logger';\nimport UrlUtil from '@terrestris/base-util/dist/UrlUtil/UrlUtil';\n\nimport CapabilitiesUtil from '@terrestris/ol-util/dist/CapabilitiesUtil/CapabilitiesUtil';\n\nimport {\n isWmsLayer\n} from '@terrestris/react-geo/dist/Util/typeUtils';\n\nimport {\n getBearerTokenHeader\n} from '@terrestris/shogun-util/dist/security/getBearerTokenHeader';\n\nimport useSHOGunAPIClient from '../../../hooks/useSHOGunAPIClient';\n\nimport './index.less';\n\nexport type LayerDetailsProps = Partial & {\n layer?: OlLayer;\n};\n\nexport const LayerDetails: React.FC = ({\n layer,\n ...restProps\n}): JSX.Element => {\n const [loading, setLoading] = useState(false);\n const [capabilities, setCapabilities] = useState();\n const [errorMessage, setErrorMessage] = useState();\n\n const client = useSHOGunAPIClient();\n\n const {\n t\n } = useTranslation();\n\n const getCapabilities = useCallback(async () => {\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n try {\n setLoading(true);\n setErrorMessage('');\n setCapabilities(undefined);\n\n const capa = await CapabilitiesUtil.getWmsCapabilitiesByLayer(\n (layer as OlLayerImage | OlLayerTile), {\n headers: {\n ...layer.get('useBearerToken') ? {\n ...getBearerTokenHeader(client?.getKeycloak())\n } : undefined\n }\n });\n\n setCapabilities(capa);\n } catch (error) {\n Logger.error(error);\n setErrorMessage(t('LayerDetails.errorMessage'));\n } finally {\n setLoading(false);\n }\n }, [t, client, layer]);\n\n useEffect(() => {\n getCapabilities();\n }, [getCapabilities]);\n\n const getLayerName = () => {\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n return layer.getSource()?.getParams().LAYERS;\n };\n\n const getCapabilitiesUrl = () => {\n if (!layer || !isWmsLayer(layer)) {\n return;\n }\n\n let layerUrl;\n if (layer.getSource() instanceof OlSourceImageWMS) {\n layerUrl = (layer.getSource() as OlSourceImageWMS).getUrl();\n }\n if (layer.getSource() instanceof OlSourceTileWMS) {\n const urls = (layer.getSource() as OlSourceTileWMS).getUrls();\n layerUrl = urls ? urls[0] : undefined;\n }\n\n if (layerUrl) {\n return UrlUtil.createValidGetCapabilitiesRequest(layerUrl, 'WMS', '1.3.0');\n }\n };\n\n const getCapabilitiesLayer = () => {\n const layers: any[] = capabilities?.Capability?.Layer?.Layer;\n const layerName = getLayerName();\n\n const lay = layers?.find(l => l.Name === layerName);\n\n return lay;\n };\n\n const getBBox = () => {\n const lay = getCapabilitiesLayer();\n\n if (!lay || !lay.EX_GeographicBoundingBox) {\n return;\n }\n\n return [\n lay.EX_GeographicBoundingBox.westBoundLongitude,\n lay.EX_GeographicBoundingBox.southBoundLatitude,\n lay.EX_GeographicBoundingBox.eastBoundLongitude,\n lay.EX_GeographicBoundingBox.northBoundLatitude\n ].join(', ');\n };\n\n const getMinScale = () => {\n const lay = getCapabilitiesLayer();\n\n if (!lay) {\n return;\n }\n\n return lay.MinScaleDenominator;\n };\n\n const getMaxScale = () => {\n const lay = getCapabilitiesLayer();\n\n if (!lay) {\n return;\n }\n\n return lay.MaxScaleDenominator;\n };\n\n const getAbstract = () => {\n const lay = getCapabilitiesLayer();\n\n if (!lay) {\n return;\n }\n\n return lay.Abstract;\n };\n\n const getServiceAbstract = () => {\n return capabilities?.Service?.Abstract;\n };\n\n const getContact = () => {\n return capabilities?.Service?.ContactInformation?.ContactElectronicMailAddress;\n };\n\n const getLayerTitle = () => {\n const lay = getCapabilitiesLayer();\n\n if (!lay) {\n return;\n }\n\n return lay.Title;\n };\n\n const getAccessConstraints = () => {\n return capabilities?.Service?.AccessConstraints;\n };\n\n if (errorMessage) {\n return (\n \n );\n }\n\n return (\n \n \n \n {getLayerName() ? getLayerName() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getLayerTitle() ? getLayerTitle() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getServiceAbstract() ? getServiceAbstract() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getAbstract() ? getAbstract() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getAccessConstraints() ? getAccessConstraints() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getCapabilitiesUrl()}\n \n \n {getContact() ? {getContact()} : {t('LayerDetails.noDataPlaceholder')}}\n \n \n {getMinScale() ? getMinScale() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getMaxScale() ? getMaxScale() : t('LayerDetails.noDataPlaceholder')}\n \n \n {getBBox() ? getBBox() : t('LayerDetails.noDataPlaceholder')}\n \n \n \n );\n};\n\nexport default LayerDetails;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useState,\n useEffect\n} from 'react';\n\nimport {\n FileTextOutlined\n} from '@ant-design/icons';\n\nimport {\n Button,\n Modal,\n ModalProps,\n Tooltip\n} from 'antd';\n\nimport OlLayer from 'ol/layer/Layer';\n\nimport {\n useTranslation\n} from 'react-i18next';\n\nimport MapUtil from '@terrestris/ol-util/dist/MapUtil/MapUtil';\n\nimport {\n useMap\n} from '@terrestris/react-geo/dist/Hook/useMap';\n\nimport useAppDispatch from '../../hooks/useAppDispatch';\nimport useAppSelector from '../../hooks/useAppSelector';\n\nimport {\n hide as hideLayerDetailsModal,\n setLayer as setDetailsLayer\n} from '../../store/layerDetailsModal';\n\nimport LayerConfiguration from './LayerConfiguration';\nimport LayerDetails from './LayerDetails';\n\nimport './index.less';\n\nexport type LayerDetailsModalProps = {} & Partial;\n\nexport const LayerDetailsModal: React.FC = ({\n ...restProps\n}): JSX.Element => {\n const [layer, setLayer] = useState();\n const [configurationVisible, setConfigurationVisible] = useState(false);\n\n const isModalVisible = useAppSelector(state => state.layerDetailsModal.visible);\n const layerId = useAppSelector(state => state.layerDetailsModal.layerId);\n\n const dispatch = useAppDispatch();\n\n const map = useMap();\n\n const {\n t\n } = useTranslation();\n\n useEffect(() => {\n if (!map) {\n return;\n }\n\n if (!layerId) {\n setLayer(undefined);\n return;\n }\n\n const l = MapUtil.getLayerByOlUid(map, layerId);\n\n if (!(l instanceof OlLayer)) {\n return;\n }\n\n setLayer(l);\n }, [map, layerId]);\n\n const closeModal = () => {\n dispatch(hideLayerDetailsModal());\n dispatch(setDetailsLayer(undefined));\n };\n\n const onShowConfigurationClick = () => {\n setConfigurationVisible(!configurationVisible);\n };\n\n return (\n \n {t('LayerDetailsModal.title', {\n layerName: layer?.get('name')\n })}\n \n {\n layer?.get('shogunId') && (\n \n }\n onClick={onShowConfigurationClick}\n />\n \n )\n }\n \n )}\n open={isModalVisible}\n onCancel={closeModal}\n width={800}\n footer={false}\n {...restProps}\n >\n