ol-wfst 4.3.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +240 -173
- package/dist/@types.d.ts +25 -9
- package/dist/@types.d.ts.map +1 -1
- package/dist/Geoserver.d.ts +6 -4
- package/dist/Geoserver.d.ts.map +1 -1
- package/dist/WfsLayer.d.ts +10 -6
- package/dist/WfsLayer.d.ts.map +1 -1
- package/dist/WmsLayer.d.ts +34 -4
- package/dist/WmsLayer.d.ts.map +1 -1
- package/dist/css/ol-wfst.bootstrap5.css +102 -90
- package/dist/css/ol-wfst.bootstrap5.min.css +1 -1
- package/dist/css/ol-wfst.css +432 -54
- package/dist/css/ol-wfst.min.css +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/jsx-runtime.d.ts +4 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/modules/EditControlChanges.d.ts +2 -1
- package/dist/modules/EditControlChanges.d.ts.map +1 -1
- package/dist/modules/EditFieldsModal.d.ts +10 -6
- package/dist/modules/EditFieldsModal.d.ts.map +1 -1
- package/dist/modules/EditOverlay.d.ts +1 -1
- package/dist/modules/EditOverlay.d.ts.map +1 -1
- package/dist/modules/ExtendLineOverlay.d.ts +12 -0
- package/dist/modules/ExtendLineOverlay.d.ts.map +1 -0
- package/dist/modules/LayersControl.d.ts +5 -0
- package/dist/modules/LayersControl.d.ts.map +1 -1
- package/dist/modules/QueryOverlay.d.ts +21 -0
- package/dist/modules/QueryOverlay.d.ts.map +1 -0
- package/dist/modules/base/BaseLayer.d.ts +7 -3
- package/dist/modules/base/BaseLayer.d.ts.map +1 -1
- package/dist/modules/base/WfsSource.d.ts.map +1 -1
- package/dist/modules/editLayer.d.ts.map +1 -1
- package/dist/modules/errors.d.ts +1 -1
- package/dist/modules/errors.d.ts.map +1 -1
- package/dist/modules/helpers.d.ts.map +1 -1
- package/dist/modules/i18n/en.d.ts.map +1 -1
- package/dist/modules/i18n/es.d.ts.map +1 -1
- package/dist/modules/i18n/index.d.ts.map +1 -1
- package/dist/modules/i18n/zh.d.ts.map +1 -1
- package/dist/modules/loading.d.ts.map +1 -1
- package/dist/modules/state.d.ts +9 -1
- package/dist/modules/state.d.ts.map +1 -1
- package/dist/modules/styleFunction.d.ts +36 -3
- package/dist/modules/styleFunction.d.ts.map +1 -1
- package/dist/ol-wfst.d.ts +243 -6
- package/dist/ol-wfst.d.ts.map +1 -1
- package/dist/ol-wfst.js +1855 -386
- package/dist/ol-wfst.js.map +1 -1
- package/dist/ol-wfst.min.js +3 -3
- package/dist/ol-wfst.min.js.map +1 -1
- package/lib/@types.d.ts +25 -9
- package/lib/@types.d.ts.map +1 -1
- package/lib/Geoserver.d.ts +6 -4
- package/lib/Geoserver.d.ts.map +1 -1
- package/lib/WfsLayer.d.ts +10 -6
- package/lib/WfsLayer.d.ts.map +1 -1
- package/lib/WmsLayer.d.ts +34 -4
- package/lib/WmsLayer.d.ts.map +1 -1
- package/lib/defaults.d.ts.map +1 -1
- package/lib/jsx-runtime.d.ts +4 -0
- package/lib/jsx-runtime.d.ts.map +1 -0
- package/lib/modules/EditControlChanges.d.ts +2 -1
- package/lib/modules/EditControlChanges.d.ts.map +1 -1
- package/lib/modules/EditFieldsModal.d.ts +10 -6
- package/lib/modules/EditFieldsModal.d.ts.map +1 -1
- package/lib/modules/EditOverlay.d.ts +1 -1
- package/lib/modules/EditOverlay.d.ts.map +1 -1
- package/lib/modules/ExtendLineOverlay.d.ts +12 -0
- package/lib/modules/ExtendLineOverlay.d.ts.map +1 -0
- package/lib/modules/LayersControl.d.ts +5 -0
- package/lib/modules/LayersControl.d.ts.map +1 -1
- package/lib/modules/QueryOverlay.d.ts +21 -0
- package/lib/modules/QueryOverlay.d.ts.map +1 -0
- package/lib/modules/base/BaseLayer.d.ts +7 -3
- package/lib/modules/base/BaseLayer.d.ts.map +1 -1
- package/lib/modules/base/WfsSource.d.ts.map +1 -1
- package/lib/modules/editLayer.d.ts.map +1 -1
- package/lib/modules/errors.d.ts +1 -1
- package/lib/modules/errors.d.ts.map +1 -1
- package/lib/modules/helpers.d.ts.map +1 -1
- package/lib/modules/i18n/en.d.ts.map +1 -1
- package/lib/modules/i18n/es.d.ts.map +1 -1
- package/lib/modules/i18n/index.d.ts.map +1 -1
- package/lib/modules/i18n/zh.d.ts.map +1 -1
- package/lib/modules/loading.d.ts.map +1 -1
- package/lib/modules/state.d.ts +9 -1
- package/lib/modules/state.d.ts.map +1 -1
- package/lib/modules/styleFunction.d.ts +36 -3
- package/lib/modules/styleFunction.d.ts.map +1 -1
- package/lib/ol-wfst.d.ts +243 -6
- package/lib/ol-wfst.d.ts.map +1 -1
- package/lib/ol-wfst.js +1857 -384
- package/lib/ol-wfst.js.map +1 -1
- package/lib/style/css/ol-gisify.css +432 -54
- package/lib/style/css/ol-wfst.bootstrap5.css +102 -90
- package/lib/style/scss/_variables.scss +2 -1
- package/lib/style/scss/ol-wfst.scss +441 -42
- package/package.json +3 -3
- package/dist/myPragma.d.ts +0 -2
- package/dist/myPragma.d.ts.map +0 -1
- package/lib/myPragma.d.ts +0 -2
- package/lib/myPragma.d.ts.map +0 -1
package/dist/ol-wfst.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ol-wfst - v4.
|
|
2
|
+
* ol-wfst - v4.4.0
|
|
3
3
|
* https://github.com/GastonZalba/ol-wfst#readme
|
|
4
|
-
* Built: Thu
|
|
4
|
+
* Built: Thu Sep 10 2026 23:06:10 GMT-0300 (Argentina Standard Time)
|
|
5
5
|
*/
|
|
6
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("ol/style/Circle.js"),require("ol/style/Fill.js"),require("ol/style/Stroke.js"),require("ol/style/Style.js"),require("ol/control/Control.js"),require("ol/interaction/Draw.js"),require("ol/interaction/Modify.js"),require("ol/interaction/Select.js"),require("ol/interaction/Snap.js"),require("ol/Collection.js"),require("ol/events/Event.js"),require("ol/events/condition.js"),require("ol/Observable.js"),require("ol/layer/Vector.js"),require("ol/layer/Base.js"),require("ol/format/GeoJSON.js"),require("ol/source/Vector.js"),require("ol/proj.js"),require("ol/loadingstrategy.js"),require("ol/layer/Tile.js"),require("ol/source/TileWMS.js"),require("ol/geom.js"),require("ol/format/KML.js"),require("ol/format/WFS.js"),require("ol/style.js"),require("ol/Object.js"),require("ol/geom/Circle.js"),require("ol/geom/GeometryCollection.js"),require("ol/Feature.js"),require("ol/geom/Polygon.js"),require("ol/format/XML.js"),require("ol/xml.js"),require("ol/format/xlink.js"),require("ol/format/xsd.js"),require("ol/extent.js"),require("ol/Overlay.js")):"function"==typeof define&&define.amd?define(["ol/style/Circle.js","ol/style/Fill.js","ol/style/Stroke.js","ol/style/Style.js","ol/control/Control.js","ol/interaction/Draw.js","ol/interaction/Modify.js","ol/interaction/Select.js","ol/interaction/Snap.js","ol/Collection.js","ol/events/Event.js","ol/events/condition.js","ol/Observable.js","ol/layer/Vector.js","ol/layer/Base.js","ol/format/GeoJSON.js","ol/source/Vector.js","ol/proj.js","ol/loadingstrategy.js","ol/layer/Tile.js","ol/source/TileWMS.js","ol/geom.js","ol/format/KML.js","ol/format/WFS.js","ol/style.js","ol/Object.js","ol/geom/Circle.js","ol/geom/GeometryCollection.js","ol/Feature.js","ol/geom/Polygon.js","ol/format/XML.js","ol/xml.js","ol/format/xlink.js","ol/format/xsd.js","ol/extent.js","ol/Overlay.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Wfst=t(e.ol.style.Circle,e.ol.style.Fill,e.ol.style.Stroke,e.ol.style.Style,e.ol.control.Control,e.ol.interaction.Draw,e.ol.interaction.Modify,e.ol.interaction.Select,e.ol.interaction.Snap,e.ol.Collection,e.ol.events.Event,e.ol.events.condition,e.ol.Observable,e.ol.layer.Vector,e.ol.layer.Base,e.ol.format.GeoJSON,e.ol.source.Vector,e.ol.proj,e.ol.loadingstrategy,e.ol.layer.Tile,e.ol.source.TileWMS,e.ol.geom,e.ol.format.KML,e.ol.format.WFS,e.ol.style,e.ol.Object,e.ol.geom.Circle,e.ol.geom.GeometryCollection,e.ol.Feature,e.ol.geom.Polygon,e.ol.format.XML,e.ol.xml,e.ol.format.xlink,e.ol.format.xsd,e.ol.extent,e.ol.Overlay)}(this,(function(e,t,r,o,s,n,i,a,l,c,d,u,h,p,m,g,f,y,v,b,_,S,w,E,C,k,P,F,j,T,A,L,O,M,N,I){"use strict";function x(){}function D(){D.init.call(this)}function G(e){return void 0===e._maxListeners?D.defaultMaxListeners:e._maxListeners}function R(e,t,r,o){var s,n,i,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((n=e._events)?(n.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),i=n[t]):(n=e._events=new x,e._eventsCount=0),i){if("function"==typeof i?i=n[t]=o?[r,i]:[i,r]:o?i.unshift(r):i.push(r),!i.warned&&(s=G(e))&&s>0&&i.length>s){i.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=i.length,a=l,"function"==typeof console.warn?console.warn(a):console.log(a)}}else i=n[t]=r,++e._eventsCount;return e}function V(e,t,r){var o=!1;function s(){e.removeListener(t,s),o||(o=!0,r.apply(e,arguments))}return s.listener=r,s}function U(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function q(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}x.prototype=Object.create(null),D.EventEmitter=D,D.usingDomains=!1,D.prototype.domain=void 0,D.prototype._events=void 0,D.prototype._maxListeners=void 0,D.defaultMaxListeners=10,D.init=function(){this.domain=null,D.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new x,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},D.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},D.prototype.getMaxListeners=function(){return G(this)},D.prototype.emit=function(e){var t,r,o,s,n,i,a,l="error"===e;if(i=this._events)l=l&&null==i.error;else if(!l)return!1;if(a=this.domain,l){if(t=arguments[1],!a){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=i[e]))return!1;var d="function"==typeof r;switch(o=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var o=e.length,s=q(e,o),n=0;n<o;++n)s[n].call(r)}(r,d,this);break;case 2:!function(e,t,r,o){if(t)e.call(r,o);else for(var s=e.length,n=q(e,s),i=0;i<s;++i)n[i].call(r,o)}(r,d,this,arguments[1]);break;case 3:!function(e,t,r,o,s){if(t)e.call(r,o,s);else for(var n=e.length,i=q(e,n),a=0;a<n;++a)i[a].call(r,o,s)}(r,d,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,o,s,n){if(t)e.call(r,o,s,n);else for(var i=e.length,a=q(e,i),l=0;l<i;++l)a[l].call(r,o,s,n)}(r,d,this,arguments[1],arguments[2],arguments[3]);break;default:for(s=new Array(o-1),n=1;n<o;n++)s[n-1]=arguments[n];!function(e,t,r,o){if(t)e.apply(r,o);else for(var s=e.length,n=q(e,s),i=0;i<s;++i)n[i].apply(r,o)}(r,d,this,s)}return!0},D.prototype.addListener=function(e,t){return R(this,e,t,!1)},D.prototype.on=D.prototype.addListener,D.prototype.prependListener=function(e,t){return R(this,e,t,!0)},D.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,V(this,e,t)),this},D.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,V(this,e,t)),this},D.prototype.removeListener=function(e,t){var r,o,s,n,i;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(o=this._events))return this;if(!(r=o[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new x:(delete o[e],o.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(s=-1,n=r.length;n-- >0;)if(r[n]===t||r[n].listener&&r[n].listener===t){i=r[n].listener,s=n;break}if(s<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new x,this;delete o[e]}else!function(e,t){for(var r=t,o=r+1,s=e.length;o<s;r+=1,o+=1)e[r]=e[o];e.pop()}(r,s);o.removeListener&&this.emit("removeListener",e,i||t)}return this},D.prototype.off=function(e,t){return this.removeListener(e,t)},D.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new x,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new x:delete r[e]),this;if(0===arguments.length){for(var o,s=Object.keys(r),n=0;n<s.length;++n)"removeListener"!==(o=s[n])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=new x,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},D.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(t):[]},D.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):U.call(e,t)},D.prototype.listenerCount=U,D.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};let H=null;const B=Object.freeze({el:null,animate:!0,animateClass:"fade",animateInClass:"show",appendTo:"body",backdrop:!0,keyboard:!0,title:!1,header:!0,content:!1,footer:!0,buttons:null,headerClose:!0,construct:!1,transition:300,backdropTransition:150}),z=function e(t){for(let r in t)Array.isArray(t[r])?t[r].forEach((t=>{e(t)})):null!==t[r]&&"object"==typeof t[r]&&Object.freeze(t[r]);return Object.freeze(t)}({dialog:[{text:"Cancel",value:!1,attr:{class:"btn btn-default","data-dismiss":"modal"}},{text:"OK",value:!0,attr:{class:"btn btn-primary","data-dismiss":"modal"}}],alert:[{text:"OK",attr:{class:"btn btn-primary","data-dismiss":"modal"}}],confirm:[{text:"Cancel",value:!1,attr:{class:"btn btn-default","data-dismiss":"modal"}},{text:"OK",value:!0,attr:{class:"btn btn-primary","data-dismiss":"modal"}}]}),$={container:'<div class="modal"></div>',dialog:'<div class="modal-dialog"></div>',content:'<div class="modal-content"></div>',header:'<div class="modal-header"></div>',headerClose:'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>',body:'<div class="modal-body"></div>',footer:'<div class="modal-footer"></div>',backdrop:'<div class="modal-backdrop"></div>'};function W(e,t,r){let o="data",s=e[o]||{};if(void 0===r){if(e[o]&&e[o][t])return e[o][t];var n=e.getAttribute(`${o}-${t}`);return void 0!==n?n:null}return s[t]=r,e[o]=s,e}function Z(e,t){return e.nodeName?e:(e=e.replace(/(\t|\n$)/g,""),H||(H=document.createElement("div")),H.innerHTML="",H.innerHTML=e,!0===t?H.childNodes:H.childNodes[0])}function K(e){let t=[e];for(;e.parentNode;)e=e.parentNode,t.push(e);return t}class J extends D{static set templates(e){this._baseTemplates=e}static get templates(){return Object.assign({},$,J._baseTemplates||{})}static set buttons(e){this._baseButtons=e}static get buttons(){return Object.assign({},z,J._baseButtons||{})}static set options(e){this._baseOptions=e}static get options(){return Object.assign({},B,J._baseOptions||{})}static get version(){return"0.12.0"}static alert(e,t={}){let r=Object.assign({},B,{title:e,content:!1,construct:!0,headerClose:!1,buttons:J.buttons.alert},t);return new J(r)}static confirm(e,t={}){let r=Object.assign({},B,{title:e,content:!1,construct:!0,headerClose:!1,buttons:J.buttons.confirm},t);return new J(r)}constructor(e={}){if(super(),this.id=(65536*(1+Math.random())|0).toString(16)+(65536*(1+Math.random())|0).toString(16),this.el=null,this._html={},this._events={},this._visible=!1,this._pointerInContent=!1,this._options=Object.assign({},J.options,e),this._templates=Object.assign({},J.templates,e.templates||{}),this._html.appendTo=document.querySelector(this._options.appendTo),this._scrollbarWidth=function(){let e,t,r,o=document.createElement("div");return Object.assign(o.style,{visibility:"hidden",width:"100px"}),document.body.appendChild(o),r=o.offsetWidth,o.style.overflow="scroll",e=document.createElement("div"),e.style.width="100%",o.appendChild(e),t=r-e.offsetWidth,document.body.removeChild(o),t}(),null===this._options.buttons&&(this._options.buttons=J.buttons.dialog),this._options.el){let e=this._options.el;if("string"==typeof this._options.el&&(e=document.querySelector(this._options.el),!e))throw new Error(`Selector: DOM Element ${this._options.el} not found.`);W(e,"modal",this),this.el=e}else this._options.construct=!0;this._options.construct?this._render():this._mapDom()}_render(){let e=this._html,t=this._options,r=this._templates,o=!!t.animate&&t.animateClass;return e.container=Z(r.container),e.dialog=Z(r.dialog),e.content=Z(r.content),e.header=Z(r.header),e.headerClose=Z(r.headerClose),e.body=Z(r.body),e.footer=Z(r.footer),o&&e.container.classList.add(o),this._setHeader(),this._setContent(),this._setFooter(),this.el=e.container,e.dialog.appendChild(e.content),e.container.appendChild(e.dialog),this}_mapDom(){let e=this._html,t=this._options;return this.el.classList.contains(t.animateClass)&&(t.animate=!0),e.container=this.el,e.dialog=this.el.querySelector(".modal-dialog"),e.content=this.el.querySelector(".modal-content"),e.header=this.el.querySelector(".modal-header"),e.headerClose=this.el.querySelector(".modal-header .close"),e.body=this.el.querySelector(".modal-body"),e.footer=this.el.querySelector(".modal-footer"),this._setHeader(),this._setContent(),this._setFooter(),this}_setHeader(){let e=this._html,t=this._options;t.header&&e.header&&(t.title.nodeName?e.header.innerHTML=t.title.outerHTML:"string"==typeof t.title&&(e.header.innerHTML=`<h4 class="modal-title">${t.title}</h4>`),null===this.el&&e.headerClose&&t.headerClose&&e.header.appendChild(e.headerClose),t.construct&&e.content.appendChild(e.header))}_setContent(){let e=this._html,t=this._options;t.content&&e.body&&("string"==typeof t.content?e.body.innerHTML=t.content:e.body.innerHTML=t.content.outerHTML,t.construct&&e.content.appendChild(e.body))}_setFooter(){let e=this._html,t=this._options;t.footer&&e.footer&&(t.footer.nodeName?e.footer.ineerHTML=t.footer.outerHTML:"string"==typeof t.footer?e.footer.innerHTML=t.footer:e.footer.children.length||t.buttons.forEach((t=>{let r=document.createElement("button");W(r,"button",t),r.innerHTML=t.text,r.setAttribute("type","button");for(let e in t.attr)r.setAttribute(e,t.attr[e]);e.footer.appendChild(r)})),t.construct&&e.content.appendChild(e.footer))}_setEvents(){this._options;let e=this._html;this._events.keydownHandler=this._handleKeydownEvent.bind(this),document.body.addEventListener("keydown",this._events.keydownHandler),this._events.mousedownHandler=this._handleMousedownEvent.bind(this),e.container.addEventListener("mousedown",this._events.mousedownHandler),this._events.clickHandler=this._handleClickEvent.bind(this),e.container.addEventListener("click",this._events.clickHandler),this._events.resizeHandler=this._handleResizeEvent.bind(this),window.addEventListener("resize",this._events.resizeHandler)}_handleMousedownEvent(e){this._pointerInContent=!1,K(e.target).every((e=>!e.classList||!e.classList.contains("modal-content")||(this._pointerInContent=!0,!1)))}_handleClickEvent(e){K(e.target).every((t=>"HTML"!==t.tagName&&((!0===this._options.backdrop||!t.classList.contains("modal"))&&(!t.classList.contains("modal-content")&&("modal"===t.getAttribute("data-dismiss")?(this.emit("dismiss",this,e,W(e.target,"button")),this.hide(),!1):!(!this._pointerInContent&&t.classList.contains("modal"))||(this.emit("dismiss",this,e,null),this.hide(),!1)))))),this._pointerInContent=!1}_handleKeydownEvent(e){27===e.which&&this._options.keyboard&&(this.emit("dismiss",this,e,null),this.hide())}_handleResizeEvent(e){this._resize()}show(){let e=this._options,t=this._html;return this.emit("show",this),this._checkScrollbar(),this._setScrollbar(),document.body.classList.add("modal-open"),e.construct&&t.appendTo.appendChild(t.container),t.container.style.display="block",t.container.scrollTop=0,!1!==e.backdrop?(this.once("showBackdrop",(()=>{this._setEvents(),e.animate&&t.container.offsetWidth,t.container.classList.add(e.animateInClass),setTimeout((()=>{this._visible=!0,this.emit("shown",this)}),e.transition)})),this._backdrop()):(this._setEvents(),e.animate&&t.container.offsetWidth,t.container.classList.add(e.animateInClass),setTimeout((()=>{this._visible=!0,this.emit("shown",this)}),e.transition)),this._resize(),this}toggle(){this._visible?this.hide():this.show()}_resize(){var e=this._html.container.scrollHeight>document.documentElement.clientHeight;this._html.container.style.paddingLeft=!this.bodyIsOverflowing&&e?this._scrollbarWidth+"px":"",this._html.container.style.paddingRight=this.bodyIsOverflowing&&!e?this._scrollbarWidth+"px":""}_backdrop(){let e=this._html,t=this._templates,r=this._options,o=!!r.animate&&r.animateClass;e.backdrop=Z(t.backdrop),o&&e.backdrop.classList.add(o),e.appendTo.appendChild(e.backdrop),o&&e.backdrop.offsetWidth,e.backdrop.classList.add(r.animateInClass),setTimeout((()=>{this.emit("showBackdrop",this)}),this._options.backdropTransition)}hide(){let e=this._html,t=this._options,r=e.container.classList;if(this.emit("hide",this),r.remove(t.animateInClass),t.backdrop){e.backdrop.classList.remove(t.animateInClass)}return this._removeEvents(),setTimeout((()=>{document.body.classList.remove("modal-open"),document.body.style.paddingRight=this.originalBodyPad}),t.backdropTransition),setTimeout((()=>{t.backdrop&&e.backdrop.parentNode.removeChild(e.backdrop),e.container.style.display="none",t.construct&&e.container.parentNode.removeChild(e.container),this._visible=!1,this.emit("hidden",this)}),t.transition),this}_removeEvents(){this._events.keydownHandler&&document.body.removeEventListener("keydown",this._events.keydownHandler),this._html.container.removeEventListener("mousedown",this._events.mousedownHandler),this._html.container.removeEventListener("click",this._events.clickHandler),window.removeEventListener("resize",this._events.resizeHandler)}_checkScrollbar(){this.bodyIsOverflowing=document.body.clientWidth<window.innerWidth}_setScrollbar(){if(this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing){let e=parseInt(this.originalBodyPad||0,10);document.body.style.paddingRight=e+this._scrollbarWidth+"px"}}}let X={};const Y=new Set,Q=e=>"exceptions"in e?e.exceptions.map((e=>e.text)).join(","):"",ee=(e,t=null,r="")=>{if(Y.has(r))return;Y.add(r);let o=`<b>Error: ${e}</b>`;t&&t.message!==e&&(o+=`. ${t.message}`);const s=J.alert(o,X);s.show(),s.on("hidden",(()=>{Y.delete(r)}))},te={labels:{select:"Select",addElement:"Toggle Draw mode",editElement:"Edit feature",save:"Save",delete:"Delete",cancel:"Cancel",apply:"Apply changes",upload:"Upload",editMode:"Edit Mode",confirmDelete:"Are you sure to delete the feature?",geomTypeNotSupported:"Geometry not supported by layer",editFields:"Edit fields",editGeom:"Edit geometry",selectDrawType:"Geometry type to draw",uploadToLayer:"Upload file to selected layer",uploadFeatures:"Uploaded features to layer",validFeatures:"Valid geometries",invalidFeatures:"Invalid",loading:"Loading...",toggleVisibility:"Toggle layer visibility",close:"Close"},errors:{capabilities:"GeoServer Capabilities could not be downloaded.",wfst:"The GeoServer does not support Transactions",layer:"Could not get data from layer",layerNotFound:"Layer not found",layerNotVisible:"Layer is not visible",noValidGeometry:"No valid geometries found to add to this layer",geoserver:"Failed to get data from GeoServer",badFormat:"Unsupported format",badFile:"Error reading items from file",lockFeature:"Could not lock items on the GeoServer",transaction:"Error when doing Transaction with GeoServer",getFeatures:"Error getting elements from GeoServer"}},re={es:{labels:{select:"Seleccionar",addElement:"Modo dibujo",editElement:"Editar elemento",save:"Guardar",delete:"Eliminar",cancel:"Cancelar",apply:"Aplicar cambios",upload:"Subir",editMode:"Modo Edición",confirmDelete:"¿Estás seguro de borrar el elemento?",geomTypeNotSupported:"Geometría no compatible con la capa",editFields:"Editar campos",editGeom:"Editar geometría",selectDrawType:"Tipo de geometría para dibujar",uploadToLayer:"Subir archivo a la capa seleccionada",uploadFeatures:"Subida de elementos a la capa",validFeatures:"Válidas",invalidFeatures:"Invalidas",loading:"Cargando...",toggleVisibility:"Cambiar visibilidad de la capa",close:"Cerrar"},errors:{capabilities:"No se pudieron obtener las Capabilidades del GeoServer",wfst:"El GeoServer no tiene soporte a Transacciones",layer:"No se pudieron obtener datos de la capa",layerNotFound:"Capa no encontrada",layerNotVisible:"La capa no está visible",noValidGeometry:"No se encontraron geometrías válidas para agregar a esta capa",geoserver:"No se pudieron obtener datos desde el GeoServer",badFormat:"Formato no soportado",badFile:"Error al leer elementos del archivo",lockFeature:"No se pudieron bloquear elementos en el GeoServer",transaction:"Error al hacer transacción con el GeoServer",getFeatures:"Error al obtener elemento desde el GeoServer"}},en:te,zh:{labels:{select:"选择",addElement:"切换绘图类型",editElement:"编辑元素",save:"保存",delete:"删除",cancel:"取消",apply:"确认并应用改变",upload:"上传",editMode:"编辑模式",confirmDelete:"确认删除元素?",geomTypeNotSupported:"图层不支持该几何",editFields:"编辑区域",editGeom:"编辑几何",selectDrawType:"几何类型",uploadToLayer:"通过文件上传图层",uploadFeatures:"上传元素到图层",validFeatures:"合法的几何类型",invalidFeatures:"不合法",loading:"加载中...",toggleVisibility:"切换图层透明度",close:"关闭"},errors:{capabilities:"无法加载GeoServer服务所支持的能力.",wfst:"GeoServer不支持事务",layer:"无法从图层获得数据",layerNotFound:"Layer not found",layerNotVisible:"Layer is not visible",noValidGeometry:"不支持的几何类型无法加载到图层",geoserver:"无法从GeoServer获取数据",badFormat:"不支持的格式",badFile:"读取文件数据出错",lockFeature:"无法锁定GeoServer上的元素.",transaction:"GeoServer处理事务出错.",getFeatures:"从GeoServer获取元素出错."}}};let oe=te;let se;const ne=(e=!0)=>{e?se.classList.add("ol-wfst--tools-control--loading-show"):se.classList.remove("ol-wfst--tools-control--loading-show")},ie=(e,t,r=[])=>{const o=Object.getOwnPropertyDescriptors(t);for(let e of r)delete o[e];Object.defineProperties(e,o)},ae=(e,t=[e])=>{const r=Object.getPrototypeOf(e);return null===r?t:ae(r,[...t,r])},le=(e,t,r=[])=>{var o;const s=null!==(o=((...e)=>{if(0===e.length)return;let t;const r=e.map((e=>ae(e)));for(;r.every((e=>e.length>0));){const e=r.map((e=>e.pop())),o=e[0];if(!e.every((e=>e===o)))break;t=o}return t})(...e))&&void 0!==o?o:Object.prototype,n=Object.create(s),i=ae(s);for(let t of e){let e=ae(t);for(let t=e.length-1;t>=0;t--){let o=e[t];-1===i.indexOf(o)&&(ie(n,o,["constructor",...r]),i.push(o))}}return n.constructor=t,n},ce=e=>e.filter(((t,r)=>e.indexOf(t)==r)),de=new Map,ue=e=>de.get(e),he=(e,t)=>{var r,o;const s=ce([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)]),n={};for(let i of s)n[i]=ce([...null!==(r=null==e?void 0:e[i])&&void 0!==r?r:[],...null!==(o=null==t?void 0:t[i])&&void 0!==o?o:[]]);return n},pe=(e,t)=>{var r,o,s,n;return{property:he(null!==(r=null==e?void 0:e.property)&&void 0!==r?r:{},null!==(o=null==t?void 0:t.property)&&void 0!==o?o:{}),method:he(null!==(s=null==e?void 0:e.method)&&void 0!==s?s:{},null!==(n=null==t?void 0:t.method)&&void 0!==n?n:{})}},me=new Map,ge=(...e)=>{const t=((...e)=>{var t;const r=new Set,o=new Set([...e]);for(;o.size>0;)for(let e of o){const s=[...ae(e.prototype).map((e=>e.constructor)),...null!==(t=ue(e))&&void 0!==t?t:[]].filter((e=>!r.has(e)));for(let e of s)o.add(e);r.add(e),o.delete(e)}return[...r]})(...e).map((e=>me.get(e))).filter((e=>!!e));return 0==t.length?{}:1==t.length?t[0]:t.reduce(((e,t)=>((e,t)=>{var r,o,s,n,i,a;return{class:ce([...null!==(r=null==e?void 0:e.class)&&void 0!==r?r:[],...null!==(o=null==t?void 0:t.class)&&void 0!==o?o:[]]),static:pe(null!==(s=null==e?void 0:e.static)&&void 0!==s?s:{},null!==(n=null==t?void 0:t.static)&&void 0!==n?n:{}),instance:pe(null!==(i=null==e?void 0:e.instance)&&void 0!==i?i:{},null!==(a=null==t?void 0:t.instance)&&void 0!==a?a:{})}})(e,t)))};function fe(...e){var t,r,o;const s=e.map((e=>e.prototype));function n(...t){for(const r of e)ie(this,new r(...t))}n.prototype=le(s,n),Object.setPrototypeOf(n,le(e,null,["prototype"]));let i=n;{const s=ge(...e);for(let e of null!==(t=null==s?void 0:s.class)&&void 0!==t?t:[]){const t=e(i);t&&(i=t)}ye(null!==(r=null==s?void 0:s.static)&&void 0!==r?r:{},i),ye(null!==(o=null==s?void 0:s.instance)&&void 0!==o?o:{},i.prototype)}var a,l;return a=i,l=e,de.set(a,l),i}const ye=(e,t)=>{const r=e.property,o=e.method;if(r)for(let e in r)for(let o of r[e])o(t,e);if(o)for(let e in o)for(let r of o[e])r(t,e,Object.getOwnPropertyDescriptor(t,e))};var ve,be;let _e;!function(e){e.Point="Point",e.LineString="LineString",e.LinearRing="LinearRing",e.Polygon="Polygon",e.MultiPoint="MultiPoint",e.MultiLineString="MultiLineString",e.MultiPolygon="MultiPolygon",e.GeometryCollection="GeometryCollection",e.Circle="Circle"}(ve||(ve={})),function(e){e.Insert="insert",e.Delete="delete",e.Update="update"}(be||(be={}));let Se=null,we=null;var Ee;function Ce(e=null){we=e}function ke(){return we}!function(e){e.Edit="EDIT",e.Draw="DRAW"}(Ee||(Ee={}));const Pe=new Set,Fe={};function je(){return _e}function Te(e){Se=e}function Ae(){return Se}function Le(){return Fe}function Oe(e){return Le()[e]}function Me(e){Pe.add(String(e.getId()))}function Ne(e){Pe.delete(String(e.getId()))}function Ie(e){return Pe.has(String(e.getId()))}class xe extends m{_init(){const e=this.getGeoserver();e.isLoaded()?this.getAndUpdateDescribeFeatureType():e.on("change:capabilities",(async()=>{this.getAndUpdateDescribeFeatureType()}))}async getAndUpdateDescribeFeatureType(){const e=this.get(De.NAME),t=this.get(De.LABEL);try{const t=this.getGeoserver(),r=new URLSearchParams({service:"wfs",version:t.getAdvanced().describeFeatureTypeVersion,request:"DescribeFeatureType",typeName:e,outputFormat:"application/json",exceptions:"application/json"}),o=t.getUrl()+"?"+r.toString(),s=await fetch(o,{headers:t.getHeaders(),credentials:t.getCredentials()});if(!s.ok)throw new Error("");const n=await s.json();if(!n)throw new Error("");if(n.exceptions)throw new Error(Q(n));const i=n.targetNamespace,a=n.featureTypes[0].properties,l=a.find((e=>e.type.indexOf("gml:")>=0));n._parsed={namespace:i,properties:a,geomType:l.localType,geomField:l.name},this.set(De.DESCRIBEFEATURETYPE,n)}catch(r){console.error(r),ee(`${oe.errors.layer} "${t}"`,r,e)}}isVisibleByZoom(){return je().getView().getZoom()>this.getMinZoom()}async transactFeatures(e,t){return this.getGeoserver().transact(e,t,this.get(De.NAME))}async insertFeatures(e){return this.transactFeatures(be.Insert,e)}async maybeLockFeature(e){const t=this.getGeoserver();return t.getUseLockFeature()&&t.hasLockFeature()?await t.lockFeature(e,this.get(De.NAME)):null}getGeoserver(){return this.get(De.GEOSERVER)}getDescribeFeatureType(){return this.get(De.DESCRIBEFEATURETYPE)}}var De;!function(e){e.NAME="name",e.LABEL="label",e.DESCRIBEFEATURETYPE="describeFeatureType",e.ISVISIBLE="isVisible",e.GEOSERVER="geoserver"}(De||(De={}));class Ge extends f{constructor(e){super(Object.assign(Object.assign({},e),{format:new g,loader:async(t,r,o,s,n)=>{try{if(e.strategy==v.bbox){const r=y.transformExtent(t,o.getCode(),e.geoServerAdvanced.projection);this.urlParams.set("bbox",r.toString()+`,${e.geoServerAdvanced.projection}`)}const r=e.geoserverUrl+"?"+this.urlParams.toString(),n=await fetch(r,{headers:e.headers,credentials:e.credentials});if(!n.ok)throw new Error("");const i=await n.json();if(i.exceptions)throw new Error(Q(i));const a=this.getFormat().readFeatures(i,{featureProjection:o.getCode(),dataProjection:e.geoServerAdvanced.projection});a.forEach((t=>{t.set("_layerName_",e.name,!0)})),this.addFeatures(a),s(a)}catch(r){this.removeLoadedExtent(t),ee(oe.errors.geoserver,r,e.name),n()}}})),this.urlParams=new URLSearchParams({SERVICE:"wfs",REQUEST:"GetFeature",OUTPUTFORMAT:"application/json",EXCEPTIONS:"application/json"}),this.urlParams.set("version",e.geoServerAdvanced.getFeatureVersion),this.urlParams.set("typename",e.name),this.urlParams.set("srsName",e.geoServerAdvanced.projection.toString())}}class Re extends(fe(xe,p)){constructor(e){super(Object.assign({name:e.name,label:e.label||e.name,minZoom:e.minZoom},e)),this._loadingCount=0,this._loadedCount=0,e.beforeTransactFeature&&(this.beforeTransactFeature=e.beforeTransactFeature);const t=e.geoserver,r=new Ge(Object.assign(Object.assign({name:e.name,headers:t.getHeaders(),credentials:t.getCredentials(),geoserverUrl:t.getUrl(),geoServerAdvanced:t.getAdvanced()},e.strategy&&{strategy:e.strategy}),{geoserverVendor:e.geoserverVendor}));this._loadingCount=0,this._loadedCount=0,r.on("featuresloadstart",(()=>{this._loadingCount++,1===this._loadingCount&&this.isVisibleByZoom()&&ne()})),r.on(["featuresloadend","featuresloaderror"],(()=>{this._loadedCount++,this._loadingCount===this._loadedCount&&(this._loadingCount=0,this._loadedCount=0,setTimeout((()=>{this.dispatchEvent("layerRendered")}),300))})),this.setSource(r);const o=e.geoserverVendor;Object.keys(o).forEach((e=>{r.urlParams.set(e,o[e])}))}refresh(){this.getSource().refresh()}setCustomParam(e,t=null,r=!0){const o=this.getSource();return null==t?o.urlParams.delete(e):o.urlParams.set(e,t),r&&this.refresh(),o.urlParams}}var Ve=2,Ue=3;class qe extends _{constructor(e){super(Object.assign({url:e.geoserverUrl,serverType:"geoserver",params:Object.assign({SERVICE:"wms",TILED:!0,LAYERS:e.name,EXCEPTIONS:"application/json"},e.geoserverVendor&&e.geoserverVendor),tileLoadFunction:async(t,r)=>{try{const s=await fetch(r,{headers:e.headers,credentials:e.credentials});if(!s.ok)throw new Error("");let n=await s.blob();if("application/json"==n.type){const e=await(o=n,new Promise((e=>{const t=new FileReader;t.onloadend=()=>e(JSON.parse(t.result)),t.readAsText(o)})));throw new Error(Q(e))}t.getImage().src=URL.createObjectURL(n),t.setState(Ve)}catch(r){ee(oe.errors.geoserver,r,e.name),t.setState(Ue)}var o}},e))}}class He extends(fe(xe,b)){constructor(e){super(Object.assign({name:e.name,label:e.label||e.name,minZoom:e.minZoom},e)),this._loadingCount=0,this._loadedCount=0,this._getFullResGeometryById=async e=>{const t=new URLSearchParams({SERVICE:"wfs",VERSION:"2.0.0",INFO_FORMAT:"application/json",REQUEST:"GetFeature",TYPENAME:this.get("name"),MAXFEATURES:"1",OUTPUTFORMAT:"application/json",SRSNAME:je().getView().getProjection().getCode(),FEATUREID:String(e)}),r=this.getSource().getUrls()[0]+"?"+t.toString();try{const e=this.getGeoserver(),t=await fetch(r,{headers:e.getHeaders(),credentials:e.getCredentials()});if(!t.ok)throw new Error(`${oe.errors.getFeatures} ${t.status}`);const o=await t.json();return this._parseFeaturesFromResponse(o)}catch(e){return console.error(e),!1}},e.beforeTransactFeature&&(this.beforeTransactFeature=e.beforeTransactFeature),this._formatGeoJSON=new g;const t=e.geoserver,r=new qe({name:e.name,headers:t.getHeaders(),credentials:t.getCredentials(),geoserverUrl:t.getUrl(),geoServerAdvanced:t.getAdvanced(),geoserverVendor:e.geoserverVendor});this._loadingCount=0,this._loadedCount=0,r.on("tileloadstart",(()=>{this._loadingCount++,1===this._loadingCount&&this.isVisibleByZoom()&&ne()})),r.on(["tileloadend","tileloaderror"],(()=>{this._loadedCount++,this._loadingCount===this._loadedCount&&(this._loadingCount=0,this._loadedCount=0,setTimeout((()=>{this.dispatchEvent("layerRendered")}),300))})),this.setSource(r)}async _getFeaturesByClickEvent(e){const t=e.coordinate,r=je().getView(),o=r.getZoom()>10?10:5,s=this.getSource(),n=s["getFeatureInfoUrl"in s?"getFeatureInfoUrl":"getGetFeatureInfoUrl"](t,r.getResolution(),r.getProjection().getCode(),{INFO_FORMAT:"application/json",BUFFER:o,FEATURE_COUNT:1,EXCEPTIONS:"application/json"}),i=this.getGeoserver();try{const e=await fetch(n,{headers:i.getHeaders(),credentials:i.getCredentials()});if(!e.ok)throw new Error(`${oe.errors.getFeatures} ${e.status}`);const t=await e.json();let r=this._parseFeaturesFromResponse(t);const o=r.map((e=>e.getId())),s=await this._getFullResGeometryById(o);return s&&(r=s),r}catch(e){ee(e.message,e)}}_parseFeaturesFromResponse(e){return this._formatGeoJSON.readFeatures(e)}refresh(){const e=this.getSource();e.refresh();const t=e.getParams();t.t=(new Date).getMilliseconds(),e.updateParams(t)}setCustomParam(e,t=null,r=!0){const o=this.getSource();return o.updateParams({[e]:t}),r&&this.refresh(),o.getParams()}}function Be(e,t={},...r){if("function"==typeof e)return e(t,r);const o=null===e?new DocumentFragment:document.createElement(e);Object.entries(t||{}).forEach((([e,t])=>{null!=t&&void 0!==t&&(e.startsWith("on")&&e.toLowerCase()in window?o.addEventListener(e.toLowerCase().substr(2),t):"className"===e?o.setAttribute("class",t.toString()):"htmlFor"===e?o.setAttribute("for",t.toString()):o.setAttribute(e,t.toString()))}));for(const e of r)e&&(Array.isArray(e)?o.append(...e):void 0===e.nodeType?o.innerHTML+=e:o.appendChild(e));return o}const ze=()=>{const e=document.querySelector(".ol-wfst--tools-control-btn.wfst--active");e&&e.classList.remove("wfst--active")};class $e extends h{constructor(e,t){super(),this._uploads=e,this._uploadFormats=t}addLayerEl(e){const t=document.querySelector(".wfst--tools-control--select-layers"),r=e.get(De.NAME),o=e===Ae()?{checked:!0}:{},s=Be("input",Object.assign({value:r,id:`wfst--${r}`,type:"radio",className:"ol-wfst--tools-control-input",name:"wfst--select-layer"},o,{onChange:t=>this._layerChangeHandler(t,e)})),n=Be("div",{className:`wfst--layer-control \n ${e.getVisible()?"ol-wfst--visible-on":""}\n ${e===Ae()?"ol-wfst--selected-on":""}`,"data-layer":r},Be("div",{className:"ol-wfst--tools-control-visible"},Be("span",{className:"ol-wfst--tools-control-visible-btn ol-wfst--visible-btn-on",title:oe.labels.toggleVisibility,onClick:e=>this._visibilityClickHandler(e)},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='768' height='768' viewBox='0 0 768 768'%3e%3cpath d='M384 288q39 0 67.5 28.5t28.5 67.5-28.5 67.5-67.5 28.5-67.5-28.5-28.5-67.5 28.5-67.5 67.5-28.5zM384 544.5q66 0 113.25-47.25t47.25-113.25-47.25-113.25-113.25-47.25-113.25 47.25-47.25 113.25 47.25 113.25 113.25 47.25zM384 144q118.5 0 214.5 66t138 174q-42 108-138 174t-214.5 66-214.5-66-138-174q42-108 138-174t214.5-66z'%3e%3c/path%3e%3c/svg%3e"})),Be("span",{className:"ol-wfst--tools-control-visible-btn ol-wfst--visible-btn-off",title:oe.labels.toggleVisibility,onClick:e=>this._visibilityClickHandler(e)},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='768' height='768' viewBox='0 0 768 768'%3e%3cpath d='M379.5 288h4.5q39 0 67.5 28.5t28.5 67.5v6zM241.5 313.5q-18 36-18 70.5 0 66 47.25 113.25t113.25 47.25q34.5 0 70.5-18l-49.5-49.5q-12 3-21 3-39 0-67.5-28.5t-28.5-67.5q0-9 3-21zM64.5 136.5l40.5-40.5 567 567-40.5 40.5q-7.5-7.5-47.25-46.5t-60.75-60q-64.5 27-139.5 27-118.5 0-214.5-66t-138-174q16.5-39 51.75-86.25t68.25-72.75q-18-18-50.25-51t-36.75-37.5zM384 223.5q-30 0-58.5 12l-69-69q58.5-22.5 127.5-22.5 118.5 0 213.75 66t137.25 174q-36 88.5-109.5 151.5l-93-93q12-28.5 12-58.5 0-66-47.25-113.25t-113.25-47.25z'%3e%3c/path%3e%3c/svg%3e"}))),Be("label",{htmlFor:`wfst--${r}`},s,Be("span",{title:e.getDescribeFeatureType()._parsed.geomType},e.get(De.LABEL))));return t.appendChild(n),e===Ae()&&s.dispatchEvent(new Event("change")),n}_changeStateSelect(e,t=null){const r=(e,t)=>{Array.from(o.options).forEach((r=>{r.selected=r.value===e,r.disabled="all"!==t&&!t.includes(r.value),r.title=r.disabled?oe.labels.geomTypeNotSupported:""}))},o=document.querySelector(".wfst--tools-control--select-draw");let s;if(o){const n=e.getDescribeFeatureType()._parsed.geomType;t?s=o.value:n===ve.GeometryCollection?(s=ve.LineString,r(s,"all")):n===ve.LinearRing?(s=ve.LineString,r(s,[ve.Circle,ve.LinearRing,ve.Polygon]),o.value=s):(s=n,r(s,[n]))}return s}_visibilityClickHandler(e){const t=e.currentTarget.closest(".wfst--layer-control"),r=t.dataset.layer;t.classList.toggle("ol-wfst--visible-on");const o=Le()[r];t.classList.contains("ol-wfst--visible-on")?o.setVisible(!0):o.setVisible(!1)}_layerChangeHandler(e,t){const r=document.querySelector(".ol-wfst--selected-on"),o=e.currentTarget.closest(".wfst--layer-control");r.classList.remove("ol-wfst--selected-on"),o.classList.add("ol-wfst--selected-on"),Te(t),this._changeStateSelect(t),this.dispatchEvent("changeLayer")}render(){return Be(null,null,Be("div",{className:"wfst--tools-control--head"},this._uploads&&Be("div",null,Be("input",{id:"ol-wfst--upload",type:"file",accept:this._uploadFormats,onChange:e=>this._uploads.process(e)}),Be("label",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-upload",htmlFor:"ol-wfst--upload",title:oe.labels.uploadToLayer},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3e%3cpath d='M240 352h-240v128h480v-128h-240zM448 416h-64v-32h64v32zM112 160l128-128 128 128h-80v160h-96v-160z'%3e%3c/path%3e%3c/svg%3e"}))),Be("div",{className:"ol-wfst--tools-control-draw-cnt"},Be("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-draw",type:"button",title:oe.labels.addElement,onClick:()=>{this.dispatchEvent("drawMode")}},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='768' height='768' viewBox='0 0 768 768'%3e %3cpath d='M663 225l-58.5 58.5-120-120 58.5-58.5q9-9 22.5-9t22.5 9l75 75q9 9 9 22.5t-9 22.5zM96 552l354-354 120 120-354 354h-120v-120z'%3e%3c/path%3e%3c/svg%3e"})),Be("select",{title:oe.labels.selectDrawType,className:"wfst--tools-control--select-draw",onChange:e=>{const t=e.target.value;this._changeStateSelect(Ae(),t),this.dispatchEvent("changeGeom")}},[ve.Point,ve.MultiPoint,ve.LineString,ve.MultiLineString,ve.Polygon,ve.MultiPolygon,ve.Circle].map((e=>Be("option",{value:e},e)))))),Be("div",{className:"wfst--tools-control--select-layers"}))}}let We=new p({source:new f,zIndex:100});const Ze=()=>We;class Ke extends h{constructor(e){super(),this._options=e,this._processUpload=e.processUpload,this._formatWFS=new E,this._formatGeoJSON=new g,this._formatKml=new w({extractStyles:!1,showPointNames:!1}),this._xs=new XMLSerializer}async process(e){const t=je().getView(),r=e.target.files[0];let o;if(!r)return;const s=r.name.split(".").pop().toLowerCase();try{if(this._processUpload&&(o=this._processUpload(r)),!o){const e=await this._fileReader(r);"geojson"===s||"json"===s?o=this._formatGeoJSON.readFeatures(e,{featureProjection:t.getProjection().getCode()}):"kml"===s?o=this._formatKml.readFeatures(e,{featureProjection:t.getProjection().getCode()}):ee(oe.errors.badFormat)}let n=0,i=0;const a=[];for(let e of o)this._checkGeometry(e)||(e=this._fixGeometry(e)),e?(a.push(e),i++):n++;if(i){ze(),this.dispatchEvent(new f.VectorSourceEvent("loadedFeatures",null,a));const e=`\n ${oe.labels.validFeatures}: ${i}<br>\n ${n?`${oe.labels.invalidFeatures}: ${n}`:""}`;this._initModal(e,a)}else ee(oe.errors.noValidGeometry);e.target.value=null}catch(e){ee(oe.errors.badFile,e)}}async _fileReader(e){return new Promise(((t,r)=>{const o=new FileReader;o.addEventListener("load",(async e=>{const r=e.target.result;t(r)})),o.addEventListener("error",(e=>{console.error("Error"+e),r()})),o.readAsText(e)}))}_fixGeometry(e){const t=Ae().getDescribeFeatureType()._parsed.geomType;let r;switch(e.getGeometry().getType()){case ve.Point:if(t===ve.MultiPoint){const t=e.getGeometry().getCoordinates();r=new S.MultiPoint([t])}break;case ve.LineString:if(t===ve.MultiLineString){const t=e.getGeometry().getCoordinates();r=new S.MultiLineString([t])}break;case ve.Polygon:if(t===ve.MultiPolygon){const t=e.getGeometry().getCoordinates();r=new S.MultiPolygon([t])}break;default:r=null}return r?(e.setGeometry(r),e):null}_checkGeometry(e){const t=Ae().getDescribeFeatureType()._parsed.geomType,r=e.getGeometry().getType();return t===ve.GeometryCollection||r===t}_initModal(e,t){const r=`\n <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">\n ${oe.labels.cancel}\n </button>\n <button type="button" class="btn btn-sm btn-primary" data-action="save" data-dismiss="modal">\n ${oe.labels.upload}\n </button>\n `;new J(Object.assign(Object.assign({},this._options.modal),{header:!0,headerClose:!1,title:oe.labels.uploadFeatures+" "+Ae().get(De.NAME),content:e,backdrop:"static",footer:r})).show().on("dismiss",((e,r)=>{"save"===r.target.dataset.action?this.dispatchEvent(new f.VectorSourceEvent("addedFeatures",null,t)):Ze().getSource().clear()}))}}const Je=(e,...t)=>(t.forEach((t=>{Object.keys(t).forEach((r=>{const o=t[r],s=e[r];e[r]=s&&o&&"object"==typeof s&&"object"==typeof o&&!Array.isArray(s)?Je(s,o):o}))})),e);class Xe extends s{constructor(e){super({element:Be("div",{className:"ol-wfst--changes-control"},Be("div",{className:"ol-wfst--changes-control-el"},Be("div",{className:"ol-wfst--changes-control-id"},Be("b",null,oe.labels.editMode)," -"," ",Be("i",null,String(e.getId()))),Be("button",{type:"button",className:"btn btn-sm btn-secondary",onClick:()=>{this.dispatchEvent(new f.VectorSourceEvent("cancel",e))}},oe.labels.cancel),Be("button",{type:"button",className:"btn btn-sm btn-primary",onClick:()=>{this.dispatchEvent(new f.VectorSourceEvent("apply",e))}},oe.labels.apply),Be("button",{type:"button",className:"btn btn-sm btn-danger-outline",onClick:()=>{this.dispatchEvent(new f.VectorSourceEvent("delete",e))}},oe.labels.delete)))})}}function Ye(e){const t=e=>{let t=e.getGeometry();t instanceof S.GeometryCollection&&(t=t.getGeometries()[0]);const r=t.getCoordinates();let o=null;if(o=t instanceof S.Polygon||t instanceof S.MultiLineString?r.flat(1):t instanceof S.MultiPolygon?r.flat(2):r,o&&o.length)return new S.MultiPoint(o)};let r=e.getGeometry(),o=r.getType();switch(r instanceof S.GeometryCollection&&(r=r.getGeometries()[0],o=r.getType()),o){case ve.Point:case ve.MultiPoint:return ke()===Ee.Edit?[new C.Style({image:new C.Circle({radius:6,fill:new C.Fill({color:"#000000"})})}),new C.Style({image:new C.Circle({radius:4,fill:new C.Fill({color:"#ff0000"})})})]:[new C.Style({image:new C.Circle({radius:5,fill:new C.Fill({color:"#ff0000"})})}),new C.Style({image:new C.Circle({radius:2,fill:new C.Fill({color:"#000000"})})})];default:return ke()==Ee.Draw||ke()==Ee.Edit?[new C.Style({stroke:new C.Stroke({color:"rgba( 255, 0, 0, 1)",width:4}),fill:new C.Fill({color:"rgba(255, 0, 0, 0.7)"})}),new C.Style({image:new C.Circle({radius:4,fill:new C.Fill({color:"#ff0000"}),stroke:new C.Stroke({width:2,color:"rgba(5, 5, 5, 0.9)"})}),geometry:e=>t(e)}),new C.Style({stroke:new C.Stroke({color:"rgba(255, 255, 255, 0.7)",width:2})})]:[new C.Style({image:new C.Circle({radius:2,fill:new C.Fill({color:"#000000"})}),geometry:e=>t(e)}),new C.Style({stroke:new C.Stroke({color:"#ff0000",width:4}),fill:new C.Fill({color:"rgba(255, 0, 0, 0.7)"})})]}}class Qe extends h{constructor(e){super(),this._options=e;const t=`\n <button type="button" class="btn btn-sm btn-link btn-third" data-action="delete" data-dismiss="modal">\n ${oe.labels.delete}\n </button>\n <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">\n ${oe.labels.cancel}\n </button>\n <button type="button" class="btn btn-sm btn-primary" data-action="save" data-dismiss="modal">\n ${oe.labels.save}\n </button>\n `;this._modal=new J(Object.assign(Object.assign({},this._options),{header:!0,headerClose:!0,title:"",content:"<div></div>",footer:t})),this._modal.on("dismiss",((e,t)=>{if("save"===t.target.dataset.action){e.el.querySelectorAll("input").forEach((e=>{const t=e.value,r=e.name;this._feature.set(r,t,!0)})),this._feature.changed(),Me(this._feature),this.dispatchEvent(new f.VectorSourceEvent("save",this._feature))}else"delete"===t.target.dataset.action&&this.dispatchEvent(new f.VectorSourceEvent("delete",this._feature))}))}show(e){this._feature=e;const t=`${oe.labels.editElement} ${e.getId()} `,r=e.getProperties(),o=Oe(e.get("_layerName_")).getDescribeFeatureType()._parsed.properties;let s='<form autocomplete="false">';Object.keys(r).forEach((e=>{const t=o.find((t=>t.name===e));if(t){let o;switch(t.type){case"xsd:string":default:o="text";break;case"xsd:number":case"xsd:int":o="number";break;case"xsd:date-time":o="datetime"}o&&(s+=`\n <div class="ol-wfst--input-field-container">\n <label class="ol-wfst--input-field-label" for="${e}">${e}</label>\n <input placeholder="NULL" class="ol-wfst--input-field-input" type="${o}" name="${e}" value="${r[e]||""}">\n </div>`)}})),s+="</form>",this._modal._html.body.innerHTML=s,this._modal._html.header.innerHTML=t,this._modal.show()}}const et=[null,"http://www.opengis.net/fes/2.0","http://www.opengis.net/ows/1.1","http://www.opengis.net/wfs/2.0"],tt=L.makeStructureNS(et,{ServiceIdentification:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},rt,e,t)})),ServiceProvider:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},ot,e,t)})),OperationsMetadata:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},st,e,t)})),FeatureTypeList:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],ct,e,t)})),Filter_Capabilities:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},bt,e,t)}))});const rt=L.makeStructureNS(et,{Title:L.makeObjectPropertySetter(M.readString),Abstract:L.makeObjectPropertySetter(M.readString),Keywords:L.makeObjectPropertySetter(Dt),ServiceType:L.makeObjectPropertySetter(M.readString),ServiceTypeVersion:L.makeObjectPropertySetter(M.readString),Fees:L.makeObjectPropertySetter(M.readString),AccessConstraints:L.makeObjectPropertySetter(M.readString)}),ot=L.makeStructureNS(et,{ProviderName:L.makeObjectPropertySetter(M.readString),ServiceContact:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},nt,e,t)}))}),st=L.makeStructureNS(et,{Operation:L.makeObjectPropertyPusher((function(e,t){const r=function(e,t){return L.pushParseAndPop({},ut,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return})),Constraint:L.makeObjectPropertyPusher(It)}),nt=L.makeStructureNS(et,{IndividualName:L.makeObjectPropertySetter(M.readString),PositionName:L.makeObjectPropertySetter(M.readString),ContactInfo:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},it,e,t)}))}),it=L.makeStructureNS(et,{Phone:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},at,e,t)})),Address:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},lt,e,t)}))}),at=L.makeStructureNS(et,{Voice:L.makeObjectPropertySetter(M.readString),Facsimile:L.makeObjectPropertySetter(M.readString)}),lt=L.makeStructureNS(et,{DeliveryPoint:L.makeObjectPropertySetter(M.readString),City:L.makeObjectPropertySetter(M.readString),AdministrativeArea:L.makeObjectPropertySetter(M.readString),PostalCode:L.makeObjectPropertySetter(M.readString),Country:L.makeObjectPropertySetter(M.readString),ElectronicMailAddress:L.makeObjectPropertySetter(M.readString)}),ct=L.makeStructureNS(et,{FeatureType:L.makeArrayPusher((function(e,t){return L.pushParseAndPop({},dt,e,t)}))}),dt=L.makeStructureNS(et,{Name:L.makeObjectPropertySetter(M.readString),Title:L.makeObjectPropertySetter(M.readString),Abstract:L.makeObjectPropertySetter(M.readString),Keywords:L.makeObjectPropertySetter(Dt),DefaultCRS:L.makeObjectPropertySetter(M.readString),WGS84BoundingBox:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},gt,e,t)})),MetadataURL:L.makeObjectPropertySetter(O.readHref)}),ut=L.makeStructureNS(et,{DCP:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},ft,e,t)})),Parameter:L.makeObjectPropertyPusher((function(e,t){const r=function(e,t){return L.pushParseAndPop({},ht,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return}))}),ht=L.makeStructureNS(et,{AllowedValues:L.makeObjectPropertySetter(Gt)}),pt=L.makeStructureNS(et,{NoValues:L.makeObjectPropertySetter(M.readString),DefaultValue:L.makeObjectPropertySetter(M.readString),AllowedValues:L.makeObjectPropertySetter(Gt)}),mt=L.makeStructureNS(et,{Get:L.makeObjectPropertySetter(O.readHref),Post:L.makeObjectPropertySetter(O.readHref)}),gt=L.makeStructureNS(et,{LowerCorner:L.makeObjectPropertySetter(Rt),UpperCorner:L.makeObjectPropertySetter(Rt)}),ft=L.makeStructureNS(et,{HTTP:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},mt,e,t)}))}),yt=L.makeStructureNS(et,{Keyword:L.makeArrayPusher(M.readString)}),vt=L.makeStructureNS(et,{Value:L.makeArrayPusher(M.readString)}),bt=L.makeStructureNS(et,{Conformance:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},_t,e,t)})),Id_Capabilities:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},St,e,t)})),Scalar_Capabilities:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},wt,e,t)})),Spatial_Capabilities:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},Et,e,t)})),Temporal_Capabilities:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop({},Ct,e,t)})),Functions:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],kt,e,t)}))}),_t=L.makeStructureNS(et,{Constraint:L.makeObjectPropertyPusher(It)}),St=L.makeStructureNS(et,{ResourceIdentifier:L.makeObjectPropertySetter((function(e){return{name:e.getAttribute("name")}}))}),wt=L.makeStructureNS(et,{LogicalOperators:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Tt,e,t)})),ComparisonOperators:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],At,e,t)}))}),Et=L.makeStructureNS(et,{GeometryOperands:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Lt,e,t)})),SpatialOperators:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Ot,e,t)}))}),Ct=L.makeStructureNS(et,{TemporalOperands:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Mt,e,t)})),TemporalOperators:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Nt,e,t)}))}),kt=L.makeStructureNS(et,{Function:L.makeArrayPusher((function(e,t){const r=function(e,t){return L.pushParseAndPop({},Pt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return}))}),Pt=L.makeStructureNS(et,{Returns:L.makeObjectPropertySetter(M.readString),Arguments:L.makeObjectPropertySetter((function(e,t){return L.pushParseAndPop([],Ft,e,t)}))}),Ft=L.makeStructureNS(et,{Argument:L.makeArrayPusher((function(e,t){const r=function(e,t){return L.pushParseAndPop({},jt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return}))}),jt=L.makeStructureNS(et,{Type:L.makeObjectPropertySetter(M.readString)}),Tt=L.makeStructureNS(et,{LogicalOperator:L.makeArrayPusher(xt)}),At=L.makeStructureNS(et,{ComparisonOperator:L.makeArrayPusher(xt)}),Lt=L.makeStructureNS(et,{GeometryOperand:L.makeArrayPusher(xt)}),Ot=L.makeStructureNS(et,{SpatialOperator:L.makeArrayPusher(xt)}),Mt=L.makeStructureNS(et,{TemporalOperand:L.makeArrayPusher(xt)}),Nt=L.makeStructureNS(et,{TemporalOperator:L.makeArrayPusher(xt)});function It(e,t){const r=function(e,t){return L.pushParseAndPop({},pt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r}function xt(e){return e.getAttribute("name")||void 0}function Dt(e,t){return L.pushParseAndPop([],yt,e,t)}function Gt(e,t){return L.pushParseAndPop([],vt,e,t)}function Rt(e){const t=L.getAllTextContent(e,!1).split(" ");if(t.length)return t.map((e=>Number(e)))}const Vt=new class extends A{constructor(){super(),this.version=void 0}readFromNode(e){this.version=e.getAttribute("version").trim();const t=L.pushParseAndPop({version:this.version},tt,e,[]);return t||null}};var Ut;!function(e){e.CAPABILITIES="capabilities",e.PARSED_CAPABILITIES="parsedCapabilities",e.URL="url",e.HEADERS="headers",e.CREDENTIALS="credentials",e.ADVANCED="advanced",e.HASTRASNACTION="hasTransaction",e.HASLOCKFEATURE="hasLockFeature",e.HASDESCRIBEFEATURETYPE="hasDescribeFeatureType",e.USELOCKFEATURE="useLockFeature",e.ISLOADED="isLoaded"}(Ut||(Ut={}));class qt extends I{constructor(e,t=null){super({id:e.getId(),position:t||N.getCenter(e.getGeometry().getExtent()),positioning:"center-center",offset:[0,-40],stopEvent:!0,element:Be("div",null,Be("div",{className:"ol-wfst--edit-button-cnt",onClick:()=>{this.dispatchEvent("editFields")}},Be("button",{className:"ol-wfst--edit-button",type:"button",title:oe.labels.editFields},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='448' height='448' viewBox='0 0 448 448'%3e %3cpath d='M222 296l29-29-38-38-29 29v14h24v24h14zM332 116c-2.25-2.25-6-2-8.25 0.25l-87.5 87.5c-2.25 2.25-2.5 6-0.25 8.25s6 2 8.25-0.25l87.5-87.5c2.25-2.25 2.5-6 0.25-8.25zM352 264.5v47.5c0 39.75-32.25 72-72 72h-208c-39.75 0-72-32.25-72-72v-208c0-39.75 32.25-72 72-72h208c10 0 20 2 29.25 6.25 2.25 1 4 3.25 4.5 5.75 0.5 2.75-0.25 5.25-2.25 7.25l-12.25 12.25c-2.25 2.25-5.25 3-8 2-3.75-1-7.5-1.5-11.25-1.5h-208c-22 0-40 18-40 40v208c0 22 18 40 40 40h208c22 0 40-18 40-40v-31.5c0-2 0.75-4 2.25-5.5l16-16c2.5-2.5 5.75-3 8.75-1.75s5 4 5 7.25zM328 80l72 72-168 168h-72v-72zM439 113l-23 23-72-72 23-23c9.25-9.25 24.75-9.25 34 0l38 38c9.25 9.25 9.25 24.75 0 34z'%3e%3c/path%3e%3c/svg%3e",alt:oe.labels.editFields}))),Be("div",{className:"ol-wfst--edit-button-cnt",onClick:()=>{this.dispatchEvent("editGeom")}},Be("button",{class:"ol-wfst--edit-button",type:"button",title:oe.labels.editGeom},Be("img",{src:"data:image/svg+xml,%3csvg version='1.1' xmlns='http://www.w3.org/2000/svg' width='541' height='512' viewBox='0 0 541 512'%3e %3cpath fill='black' d='M103.306 228.483l129.493-125.249c-17.662-4.272-31.226-18.148-34.98-35.663l-0.055-0.307-129.852 125.248c17.812 4.15 31.53 18.061 35.339 35.662l0.056 0.308z'%3e%3c/path%3e %3cpath fill='black' d='M459.052 393.010c-13.486-8.329-22.346-23.018-22.373-39.779v-0.004c-0.053-0.817-0.082-1.772-0.082-2.733s0.030-1.916 0.089-2.863l-0.007 0.13-149.852 71.94c9.598 8.565 15.611 20.969 15.611 34.779 0 0.014 0 0.029 0 0.043v-0.002c-0.048 5.164-0.94 10.104-2.544 14.711l0.098-0.322z'%3e%3c/path%3e %3cpath fill='black' d='M290.207 57.553c-0.009 15.55-7.606 29.324-19.289 37.819l-0.135 0.093 118.054 46.69c-0.216-1.608-0.346-3.48-0.36-5.379v-0.017c0.033-16.948 9.077-31.778 22.596-39.953l0.209-0.118-122.298-48.056c0.659 2.633 1.098 5.693 1.221 8.834l0.002 0.087z'%3e%3c/path%3e %3cpath fill='black' d='M241.36 410.132l-138.629-160.067c-4.734 17.421-18.861 30.61-36.472 33.911l-0.29 0.045 143.881 166.255c1.668-18.735 14.197-34.162 31.183-40.044l0.327-0.099z'%3e%3c/path%3e %3cpath fill='black' d='M243.446 115.105c-31.785 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.785 0 57.552 25.767 57.552 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM243.446 21.582c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.104-35.97-35.97-35.97v0z'%3e%3c/path%3e %3cpath fill='black' d='M483.224 410.78c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.552 25.767 57.552 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM483.224 317.257c-19.866 0-35.97 16.104-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z'%3e%3c/path%3e %3cpath fill='black' d='M57.553 295.531c-31.785 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.785 0 57.553 25.767 57.553 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM57.553 202.008c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c-0.041-19.835-16.13-35.898-35.97-35.898 0 0 0 0 0 0v0z'%3e%3c/path%3e %3cpath fill='black' d='M256.036 512.072c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.553 25.767 57.553 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM256.036 418.55c-19.866 0-35.97 16.104-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z'%3e%3c/path%3e %3cpath fill='black' d='M435.24 194.239c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.553 25.767 57.553 57.553v0c0 31.785-25.767 57.553-57.553 57.553v0zM435.24 100.716c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z'%3e%3c/path%3e%3c/svg%3e",alt:oe.labels.editGeom}))))})}}const Ht=document.createElement("div");class Bt extends s{constructor(e){super({target:null,element:Ht,render:()=>{this._map||this._init()}}),this._initialized=!1,((e="en",t=null)=>{e in re&&(oe=re[e]),t&&(oe=Object.assign(Object.assign({},oe),t))})(e.language,e.i18n);const t={layers:null,evtType:"singleclick",active:!0,showControl:!0,language:"en",uploadFormats:".geojson,.json,.kml",processUpload:null,modal:{animateClass:"fade",animateInClass:"show",transition:300,backdropTransition:150,templates:{dialog:'<div class="modal-dialog modal-dialog-centered"></div>',headerClose:`<button type="button" class="btn-close" data-dismiss="modal" aria-label="${oe.labels.close}"><span aria-hidden="true">×</span></button>`}}};this._options=Je(t,e),Te(this._options.layers[0]),this._controlWidgetToolsDiv=Ht,this._controlWidgetToolsDiv.className="ol-wfst--tools-control",this._uploads=new Ke(this._options),this._editFields=new Qe(this._options.modal)}getLayers(){return Object.values(Le())}getLayerByName(e=""){const t=Le();return e&&e in t?t[e]:null}async _initMapAndLayers(){try{const e=this._options.layers;if(e.length){let t=0,r=0;e.forEach((e=>{e.getVisible()&&r++,e.on("layerRendered",(()=>{t++,t>=r&&(this._initialized||(this.dispatchEvent("load"),this._initialized=!0),ne(!1))})),e.on("change:describeFeatureType",(()=>{const t=this._layersControl.addLayerEl(e);e.on("change:isVisible",(()=>{const r="ol-wfst--layer-not-visible";e.isVisibleByZoom()?t.classList.remove(r):t.classList.add(r)})),e.set(De.ISVISIBLE,this._currentZoom>e.getMinZoom()),this.dispatchEvent(new zt({type:"describeFeatureType",layer:e,data:e.getDescribeFeatureType()}))})),e._init(),this._map.addLayer(e),function(e){Object.assign(Fe,e)}({[e.get(De.NAME)]:e})})),this._createMapElements(this._options.showControl,this._options.active)}}catch(e){ne(!1),ee(e.message,e)}}_init(){var e,t;this._map=super.getMap(),this._view=this._map.getView(),this._viewport=this._map.getViewport(),e=this._map,_e=e,this._uploads.on("addedFeatures",(({features:e})=>{Ae().insertFeatures(e)})),this._uploads.on("loadedFeatures",(({features:e})=>{this.activateEditMode();const t=Ze().getSource();t.addFeatures(e),this._view.fit(t.getExtent(),{size:this._map.getSize(),maxZoom:21,padding:[100,100,100,100]})})),this._editFields.on("save",(({feature:e})=>{this._collectionModify.remove(e)})),this._editFields.on("delete",(({feature:e})=>{this._deleteFeature(e,!0)})),this._addMapEvents(),t=this._options.modal,X=t,this._controlWidgetToolsDiv.append((se=document.createElement("div"),se.className="ol-wfst--tools-control--loading",se.innerHTML=oe.labels.loading,se)),this._initMapAndLayers()}async _createMapElements(e,t){this._prepareEditLayer(),this._addInteractions(),this._addInteractionHandlers(),e&&this._addMapControl(),this.activateEditMode(t)}_addInteractions(){const s=()=>{this._collectionModify=new c,this._interactionWfsSelect=new a({hitTolerance:10,style:e=>Ye(e),toggleCondition:u.never,filter:(e,t)=>ke()!==Ee.Edit&&t&&t instanceof Re&&t===Ae()}),this._map.addInteraction(this._interactionWfsSelect),this._interactionWfsSelect.on("select",(({selected:e,deselected:t,mapBrowserEvent:r})=>{const o=r.coordinate;e.length&&e.forEach((e=>{if(!Ie(e)){const t=this._interactionWfsSelect.getLayer(e);t.getSource().removeFeature(e),this._addFeatureToEditMode(e,o,t.get(De.NAME))}})),t.length&&ke()!==Ee.Edit&&t.forEach((e=>{this._collectionModify.remove(e)}))}))},n=()=>{this._interactionSelectModify=new a({style:e=>Ye(e),layers:[Ze()],toggleCondition:u.never,removeCondition:()=>ke()===Ee.Edit}),this._map.addInteraction(this._interactionSelectModify),this._collectionModify=this._interactionSelectModify.getFeatures(),this._keyClickWms=this._map.on(this._options.evtType,(async e=>{if(!this._map.hasFeatureAtPixel(e.pixel)&&ke()!==Ee.Edit){const t=Ae();if(!t.getVisible()||!t.isVisibleByZoom()||t instanceof Re)return;const r=await t._getFeaturesByClickEvent(e);if(!(null==r?void 0:r.length))return;this._addFeatureToEditMode(r[0],e.coordinate,t.get(De.NAME))}}))};this._options.layers.find((e=>e instanceof Re))&&s(),this._options.layers.find((e=>e instanceof He))&&n(),this._interactionModify=new i({style:()=>ke()===Ee.Edit?new o({image:new e({radius:6,fill:new t({color:"#ff0000"}),stroke:new r({width:2,color:"rgba(5, 5, 5, 0.9)"})})}):void 0,features:this._collectionModify,condition:e=>u.primaryAction(e)&&ke()===Ee.Edit}),this._map.addInteraction(this._interactionModify),this._interactionSnap=new l({source:Ze().getSource()}),this._map.addInteraction(this._interactionSnap)}_prepareEditLayer(){this._map.addLayer(Ze())}_addMapEvents(){(()=>{document.addEventListener("keydown",(({key:e})=>{if(!document.querySelector("input:focus")&&"Delete"===e){const e=this._collectionModify;e&&e.forEach((e=>{this._deleteFeature(e,!0)}))}}))})(),this._map.on("moveend",(()=>{if(this._currentZoom=this._view.getZoom(),this._currentZoom!==this._lastZoom){const e=Le();Object.keys(e).forEach((t=>{const r=e[t];this._currentZoom>r.getMinZoom()?r.get(De.ISVISIBLE)||r.set(De.ISVISIBLE,!0):r.get(De.ISVISIBLE)&&r.set(De.ISVISIBLE,!1)})),this._lastZoom=this._currentZoom}}))}_addInteractionHandlers(){this._interactionModify.on("modifyend",(e=>{Me(e.features.item(0)),super.dispatchEvent(e)})),this._interactionModify.on("modifystart",(e=>{super.dispatchEvent(e)})),this._onDeselectFeatureEvent(),this._onRemoveFeatureEvent()}_addMapControl(){this._layersControl=new $e(this._options.showUpload?this._uploads:null,this._options.uploadFormats),this._layersControl.on("drawMode",(()=>{if(ke()===Ee.Draw)ze(),this.activateEditMode();else{Ae().isVisibleByZoom()?this.activateDrawMode(Ae()):ee(oe.errors.layerNotVisible)}})),this._layersControl.on("changeGeom",(()=>{ke()===Ee.Draw&&this.activateDrawMode(Ae())})),this._layersControl.on("changeLayer",(()=>{ke()===Ee.Draw&&this.activateDrawMode(Ae())}));const e=this._layersControl.render();this._selectDraw=e.querySelector(".wfst--tools-control--select-draw"),this._controlWidgetToolsDiv.append(e)}_deselectEditFeature(e){this._removeOverlayHelper(e)}_restoreFeatureToLayer(e,t){t=t||e.get("_layerName_");Le()[t].getSource().addFeature(e)}_removeFeatureFromTmpLayer(e){Ze().getSource().removeFeature(e)}_onDeselectFeatureEvent(){const e=e=>{const t=e.get("_layerName_"),r=this._options.layers.find((e=>e.get(De.NAME)===t));r instanceof Re&&this._interactionWfsSelect.getFeatures().remove(e),Ie(e)?r.transactFeatures(be.Update,e):(r instanceof Re&&this._restoreFeatureToLayer(e,t),this._removeFeatureFromTmpLayer(e))};this._keySelect=this._collectionModify.on("remove",(t=>{const r=t.element;this._deselectEditFeature(r),e(r),this._editModeOff()}))}_onRemoveFeatureEvent(){this._keyRemove=Ze().getSource().on("removefeature",(e=>{const t=e.feature;if(!t.get("_delete_"))return;this._keySelect&&h.unByKey(this._keySelect);const r=t.get("_layerName_");this.getLayerByName(r).transactFeatures(be.Delete,t),this._deselectEditFeature(t),this._editModeOff(),this._keySelect&&setTimeout((()=>{this._onDeselectFeatureEvent()}),150)}))}_editModeOn(e){this._editFeatureOriginal=e.clone(),Ce(Ee.Edit),Ze().getSource().changed(),this._removeOverlayHelper(e),this._controlApplyDiscardChanges=new Xe(e),this._controlApplyDiscardChanges.on("cancel",(({feature:e})=>{e.setGeometry(this._editFeatureOriginal.getGeometry()),Ne(e),this._collectionModify.remove(e)})),this._controlApplyDiscardChanges.on("apply",(({feature:e})=>{ne(),this._collectionModify.remove(e)})),this._controlApplyDiscardChanges.on("delete",(({feature:e})=>{this._deleteFeature(e,!0)})),this._map.addControl(this._controlApplyDiscardChanges)}_editModeOff(){Ce(null),this._map.removeControl(this._controlApplyDiscardChanges)}_deleteFeature(e,t){const r=()=>{(Array.isArray(e)?e:[e]).forEach((e=>{e.set("_delete_",!0,!0),Ze().getSource().removeFeature(e)})),this._collectionModify.clear();const t=e.get("_layerName_");this._options.layers.find((e=>e.get(De.NAME)===t))instanceof Re&&this._interactionWfsSelect.getFeatures().remove(e)};if(t){J.confirm(oe.labels.confirmDelete,Object.assign({},this._options.modal)).show().once("dismiss",(function(e,t,o){o&&o.value&&r()}))}else r()}_addFeatureToEditMode(e,t=null,r=null){if(this._collectionModify.getLength())return;r&&e.set("_layerName_",r);if((e?e.getProperties():"")&&e.getGeometry()){Ze().getSource().addFeature(e),this._collectionModify.push(e);const o=new qt(e,t);o.on("editFields",(()=>{this._editFields.show(e)})),o.on("editGeom",(()=>{this._editModeOn(e)})),this._map.addOverlay(o);const s=Oe(r);s&&s.maybeLockFeature(e.getId())}}activateDrawMode(e){const t=e=>{this.activateEditMode(!1),this._interactionDraw&&this._map.removeInteraction(this._interactionDraw);const t=this._selectDraw.value;this._interactionDraw=new n({source:Ze().getSource(),type:t,style:e=>Ye(e),stopClick:!0}),this._map.addInteraction(this._interactionDraw),this._interactionDraw.on("drawstart",(e=>{super.dispatchEvent(e)})),this._interactionDraw.on("drawend",(t=>{const r=t.feature;e.transactFeatures(be.Insert,r),super.dispatchEvent(t)}))};if(this._interactionDraw||e){if(e){if(!e.getVisible())return;(()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-draw");e&&e.classList.add("wfst--active")})(),this._viewport.classList.add("draw-mode"),t(e)}else this._map.removeInteraction(this._interactionDraw),this._viewport.classList.remove("draw-mode");Ce(e?Ee.Draw:null)}}activateEditMode(e=!0){e?((()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-edit");e&&e.classList.add("wfst--active")})(),this.activateDrawMode(!1)):this._collectionModify.clear(),this._interactionSelectModify&&this._interactionSelectModify.setActive(e),this._interactionModify.setActive(e),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(e)}_removeOverlayHelper(e){const t=e.getId();if(!t)return;const r=this._map.getOverlayById(t);r&&this._map.removeOverlay(r)}}class zt extends d{constructor(e){super(e.type),this.layer=e.layer,this.data=e.data}}const $t={WfsLayer:Re,WmsLayer:He,Geoserver:class extends k{constructor(e){super();const t={url:null,advanced:{getCapabilitiesVersion:"2.0.0",getFeatureVersion:"1.0.0",describeFeatureTypeVersion:"1.1.0",lockFeatureVersion:"1.1.0",wfsTransactionVersion:"1.1.0",projection:"EPSG:3857",lockFeatureParams:{expiry:5,lockId:"GeoServer",releaseAction:"SOME"}},headers:{},credentials:"same-origin",useLockFeature:!0};this._options=Je(t,e),this.setAdvanced(this._options.advanced),this.setHeaders(this._options.headers),this.setCredentials(this._options.credentials),this.setUrl(this._options.url),this.setUseLockFeature(this._options.useLockFeature),this._countRequests=0,this._insertFeatures=[],this._updateFeatures=[],this._deleteFeatures=[],this._formatWFS=new E,this._formatGeoJSON=new g,this._formatKml=new w({extractStyles:!1,showPointNames:!1}),this._xs=new XMLSerializer,this.getAndUpdateCapabilities(),this.on("change:parsedCapabilities",(()=>{this._checkGeoserverCapabilities()}))}getCapabilities(){return this.get(Ut.CAPABILITIES)}getParsedCapabilities(){return this.get(Ut.PARSED_CAPABILITIES)}setUrl(e,t=!1){this.set(Ut.URL,e,t)}getUrl(){return this.get(Ut.URL)}setHeaders(e={},t=!1){return this.set(Ut.HEADERS,e,t)}getHeaders(){return this.get(Ut.HEADERS)}setCredentials(e=null,t=!1){this.set(Ut.CREDENTIALS,e,t)}getCredentials(){return this.get(Ut.CREDENTIALS)}setAdvanced(e={},t=!1){this.set(Ut.ADVANCED,e,t)}getAdvanced(){return this.get(Ut.ADVANCED)}hasTransaction(){return this.get(Ut.HASTRASNACTION)}hasLockFeature(){return this.get(Ut.HASLOCKFEATURE)}getUseLockFeature(){return this.get(Ut.USELOCKFEATURE)}setUseLockFeature(e,t=!1){this.set(Ut.USELOCKFEATURE,e,t)}isLoaded(){return this.get(Ut.ISLOADED)}getState(){return this.state_}async getAndUpdateCapabilities(){try{const e=new URLSearchParams({service:"wfs",version:this.getAdvanced().getCapabilitiesVersion,request:"GetCapabilities",exceptions:"application/json"}),t=this.getUrl()+"?"+e.toString(),r=await fetch(t,{headers:this.getHeaders(),credentials:this.getCredentials()});if(!r.ok)throw new Error("");const o=await r.text(),s=(new window.DOMParser).parseFromString(o,"text/xml");this.set(Ut.CAPABILITIES,s);const n=Vt.read(o);return this.set(Ut.PARSED_CAPABILITIES,n),this.state_=s?"ready":"error",s}catch(e){console.error(e);const t="string"==typeof e?e:oe.errors.capabilities;ee(t,e)}}_checkGeoserverCapabilities(){var e,t;if("2.0.0"===this.getAdvanced().getCapabilitiesVersion){const r=null===(t=null===(e=this.getParsedCapabilities())||void 0===e?void 0:e.OperationsMetadata)||void 0===t?void 0:t.Operation;r&&r.forEach((e=>{"Transaction"===e.name?this.set(Ut.HASTRASNACTION,!0):"LockFeature"===e.name?this.set(Ut.HASLOCKFEATURE,!0):"DescribeFeatureType"===e.name&&this.set(Ut.HASDESCRIBEFEATURETYPE,!0)}))}else{const e=this.getCapabilities().getElementsByTagName("ows:Operation");Array.from(e).forEach((e=>{"Transaction"===e.getAttribute("name")?this.set(Ut.HASTRASNACTION,!0):"LockFeature"===e.getAttribute("name")?this.set(Ut.HASLOCKFEATURE,!0):"DescribeFeatureType"===e.getAttribute("name")&&this.set(Ut.HASDESCRIBEFEATURETYPE,!0)}))}if(!this.hasTransaction())throw oe.errors.wfst}async transact(e,t,r){t=Array.isArray(t)?t:[t];const o=[],s=Oe(r);for(const r of t){let t=this._cloneFeature(r);const n=t.getGeometry();n instanceof F?this._transformGeoemtryCollectionToGeometries(t,n):n instanceof P&&this._transformCircleToPolygon(t,n),"beforeTransactFeature"in s&&"function"==typeof s.beforeTransactFeature&&(t=s.beforeTransactFeature(t,e)),t&&o.push(t)}if(!o.length)return ee(oe.errors.noValidGeometry),!1;switch(e){case be.Insert:this._insertFeatures=[...this._insertFeatures,...o];break;case be.Update:this._updateFeatures=[...this._updateFeatures,...o];break;case be.Delete:this._deleteFeatures=[...this._deleteFeatures,...o]}this._countRequests++;const n=this._countRequests;return new Promise(((o,i)=>{setTimeout((async()=>{try{if(n!==this._countRequests)return;let i=je().getView().getProjection().getCode();if(i="EPSG:4326"===i?"urn:x-ogc:def:crs:EPSG:4326":i,!s||!s.getDescribeFeatureType())throw new Error(`${oe.errors.layerNotFound}: "${r}"`);const a=s.getDescribeFeatureType()._parsed,l=r.split(":").length>1?r.split(":").pop():r,c={featureNS:a.namespace,featureType:l,srsName:i,featurePrefix:null,nativeElements:null,version:this.getAdvanced().wfsTransactionVersion},d=this._formatWFS.writeTransaction(this._insertFeatures,this._updateFeatures,this._deleteFeatures,c);let u=this._xs.serializeToString(d);const h=a.geomType,p=a.geomField;if(h===ve.GeometryCollection)if(e===be.Insert)u=u.replace(/<geometry>/g,`<geometry><MultiGeometry xmlns="http://www.opengis.net/gml" srsName="${i}"><geometryMember>`),u=u.replace(/<\/geometry>/g,"</geometryMember></MultiGeometry></geometry>");else if(e===be.Update){const e=`<MultiGeometry xmlns="http://www.opengis.net/gml" srsName="${i}"><geometryMember>`,t="</geometryMember></MultiGeometry>";u=u.replace(/(.*)(<Name>geometry<\/Name><Value>)(.*?)(<\/Value>)(.*)/g,`$1$2${e}$3${t}$4$5`)}e===be.Insert?u=u.replace(/<(\/?)\bgeometry\b>/g,`<$1${p}>`):e===be.Update&&(u=u.replace(/<Name>geometry<\/Name>/g,`<Name>${p}</Name>`)),this.hasLockFeature&&this.getUseLockFeature()&&e!==be.Insert&&(u=u.replace("</Transaction>",`<LockId>${this._options.advanced.lockFeatureParams.lockId}</LockId></Transaction>`));const m=Object.assign({"Content-Type":"text/xml"},this.getHeaders()),g=await fetch(this.getUrl(),{method:"POST",body:u,headers:m,credentials:this._options.credentials});if(!g.ok)throw new Error(oe.errors.transaction+" "+g.status);const f=await g.text(),y=this._formatWFS.readTransactionResponse(f),v=Oe(r);if(!Object.keys(y).length){const e=String(f).match(/<ows:ExceptionText>([\s\S]*?)<\/ows:ExceptionText>/);if(e)throw v instanceof He&&this._removeFeatures(t),new Error(e[1])}e!==be.Delete&&this._removeFeatures(t),v.refresh(),ne(!1),this._insertFeatures=[],this._updateFeatures=[],this._deleteFeatures=[],this._countRequests=0,o(y)}catch(e){ee(e.message,e),ne(!1),this._countRequests=0,i()}}),0)}))}_removeFeatures(e){for(const t of e)Ze().getSource().removeFeature(t)}_transformCircleToPolygon(e,t){const r=T.fromCircle(t);e.setGeometry(r)}_transformGeoemtryCollectionToGeometries(e,t){let r=t.getGeometries()[0];r instanceof P&&(r=T.fromCircle(r)),e.setGeometry(r)}_cloneFeature(e){Ne(e);const t=e.getProperties();delete t.boundedBy,delete t._layerName_;const r=new j(t);return r.setId(e.getId()),r}async lockFeature(e,t,r=0){const o=new URLSearchParams({service:"wfs",version:this.getAdvanced().lockFeatureVersion,request:"LockFeature",typeName:t,expiry:String(this._options.advanced.lockFeatureParams.expiry),LockId:this._options.advanced.lockFeatureParams.lockId,releaseAction:this._options.advanced.lockFeatureParams.releaseAction,exceptions:"application/json",featureid:`${e}`}),s=this.getUrl()+"?"+o.toString();try{const o=await fetch(s,{headers:this._options.headers,credentials:this._options.credentials});if(!o.ok)throw new Error(oe.errors.lockFeature);const n=await o.text();try{const o=JSON.parse(n);if("exceptions"in o){const s=new Error(Q(o));if("CannotLockAllFeatures"!==o.exceptions[0].code)throw s;if(r)throw s;this.lockFeature(e,t,1)}}catch(e){}return n}catch(e){ee(e.message,e)}}}};return Object.assign(Bt,$t),Bt}));
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("ol/style/Fill.js"),require("ol/style/Stroke.js"),require("ol/style/Style.js"),require("ol/control/Control.js"),require("ol/control/FullScreen.js"),require("ol/interaction/Draw.js"),require("ol/interaction/DragBox.js"),require("ol/interaction/Modify.js"),require("ol/interaction/Select.js"),require("ol/interaction/Snap.js"),require("ol/geom/LineString.js"),require("ol/geom/MultiLineString.js"),require("ol/geom/GeometryCollection.js"),require("ol/Collection.js"),require("ol/layer/Vector.js"),require("ol/source/Vector.js"),require("ol/events/Event.js"),require("ol/events/condition.js"),require("ol/Observable.js"),require("ol/coordinate.js"),require("ol/extent.js"),require("ol/layer/Base.js"),require("ol/format/GeoJSON.js"),require("ol/proj.js"),require("ol/loadingstrategy.js"),require("ol/layer/Tile.js"),require("ol/source/TileWMS.js"),require("ol/geom.js"),require("ol/format/KML.js"),require("ol/format/WFS.js"),require("ol/style.js"),require("ol/Object.js"),require("ol/geom/Circle.js"),require("ol/Feature.js"),require("ol/geom/Polygon.js"),require("ol/format/XML.js"),require("ol/xml.js"),require("ol/format/xlink.js"),require("ol/format/xsd.js"),require("ol/Overlay.js")):"function"==typeof define&&define.amd?define(["ol/style/Fill.js","ol/style/Stroke.js","ol/style/Style.js","ol/control/Control.js","ol/control/FullScreen.js","ol/interaction/Draw.js","ol/interaction/DragBox.js","ol/interaction/Modify.js","ol/interaction/Select.js","ol/interaction/Snap.js","ol/geom/LineString.js","ol/geom/MultiLineString.js","ol/geom/GeometryCollection.js","ol/Collection.js","ol/layer/Vector.js","ol/source/Vector.js","ol/events/Event.js","ol/events/condition.js","ol/Observable.js","ol/coordinate.js","ol/extent.js","ol/layer/Base.js","ol/format/GeoJSON.js","ol/proj.js","ol/loadingstrategy.js","ol/layer/Tile.js","ol/source/TileWMS.js","ol/geom.js","ol/format/KML.js","ol/format/WFS.js","ol/style.js","ol/Object.js","ol/geom/Circle.js","ol/Feature.js","ol/geom/Polygon.js","ol/format/XML.js","ol/xml.js","ol/format/xlink.js","ol/format/xsd.js","ol/Overlay.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Wfst=t(e.ol.style.Fill,e.ol.style.Stroke,e.ol.style.Style,e.ol.control.Control,e.ol.control.FullScreen,e.ol.interaction.Draw,e.ol.interaction.DragBox,e.ol.interaction.Modify,e.ol.interaction.Select,e.ol.interaction.Snap,e.ol.geom.LineString,e.ol.geom.MultiLineString,e.ol.geom.GeometryCollection,e.ol.Collection,e.ol.layer.Vector,e.ol.source.Vector,e.ol.events.Event,e.ol.events.condition,e.ol.Observable,e.ol.coordinate,e.ol.extent,e.ol.layer.Base,e.ol.format.GeoJSON,e.ol.proj,e.ol.loadingstrategy,e.ol.layer.Tile,e.ol.source.TileWMS,e.ol.geom,e.ol.format.KML,e.ol.format.WFS,e.ol.style,e.ol.Object,e.ol.geom.Circle,e.ol.Feature,e.ol.geom.Polygon,e.ol.format.XML,e.ol.xml,e.ol.format.xlink,e.ol.format.xsd,e.ol.Overlay)}(this,function(e,t,r,s,o,i,n,a,l,c,d,h,u,p,m,f,g,y,v,_,w,b,S,E,F,C,P,k,O,L,A,M,j,T,x,N,I,D,G,q){"use strict";function R(){}function V(){V.init.call(this)}function B(e){return void 0===e._maxListeners?V.defaultMaxListeners:e._maxListeners}function H(e,t,r,s){var o,i,n,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),n=i[t]):(i=e._events=new R,e._eventsCount=0),n){if("function"==typeof n?n=i[t]=s?[r,n]:[n,r]:s?n.unshift(r):n.push(r),!n.warned&&(o=B(e))&&o>0&&n.length>o){n.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+n.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=n.length,a=l,"function"==typeof console.warn?console.warn(a):console.log(a)}}else n=i[t]=r,++e._eventsCount;return e}function U(e,t,r){var s=!1;function o(){e.removeListener(t,o),s||(s=!0,r.apply(e,arguments))}return o.listener=r,o}function z(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function $(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}R.prototype=Object.create(null),V.EventEmitter=V,V.usingDomains=!1,V.prototype.domain=void 0,V.prototype._events=void 0,V.prototype._maxListeners=void 0,V.defaultMaxListeners=10,V.init=function(){this.domain=null,V.usingDomains&&(void 0).active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new R,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},V.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},V.prototype.getMaxListeners=function(){return B(this)},V.prototype.emit=function(e){var t,r,s,o,i,n,a,l="error"===e;if(n=this._events)l=l&&null==n.error;else if(!l)return!1;if(a=this.domain,l){if(t=arguments[1],!a){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=n[e]))return!1;var d="function"==typeof r;switch(s=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var s=e.length,o=$(e,s),i=0;i<s;++i)o[i].call(r)}(r,d,this);break;case 2:!function(e,t,r,s){if(t)e.call(r,s);else for(var o=e.length,i=$(e,o),n=0;n<o;++n)i[n].call(r,s)}(r,d,this,arguments[1]);break;case 3:!function(e,t,r,s,o){if(t)e.call(r,s,o);else for(var i=e.length,n=$(e,i),a=0;a<i;++a)n[a].call(r,s,o)}(r,d,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,s,o,i){if(t)e.call(r,s,o,i);else for(var n=e.length,a=$(e,n),l=0;l<n;++l)a[l].call(r,s,o,i)}(r,d,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(s-1),i=1;i<s;i++)o[i-1]=arguments[i];!function(e,t,r,s){if(t)e.apply(r,s);else for(var o=e.length,i=$(e,o),n=0;n<o;++n)i[n].apply(r,s)}(r,d,this,o)}return!0},V.prototype.addListener=function(e,t){return H(this,e,t,!1)},V.prototype.on=V.prototype.addListener,V.prototype.prependListener=function(e,t){return H(this,e,t,!0)},V.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,U(this,e,t)),this},V.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,U(this,e,t)),this},V.prototype.removeListener=function(e,t){var r,s,o,i,n;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(s=this._events))return this;if(!(r=s[e]))return this;if(r===t||r.listener&&r.listener===t)0===--this._eventsCount?this._events=new R:(delete s[e],s.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length;i-- >0;)if(r[i]===t||r[i].listener&&r[i].listener===t){n=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0===--this._eventsCount)return this._events=new R,this;delete s[e]}else!function(e,t){for(var r=t,s=r+1,o=e.length;s<o;r+=1,s+=1)e[r]=e[s];e.pop()}(r,o);s.removeListener&&this.emit("removeListener",e,n||t)}return this},V.prototype.off=function(e,t){return this.removeListener(e,t)},V.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new R,this._eventsCount=0):r[e]&&(0===--this._eventsCount?this._events=new R:delete r[e]),this;if(0===arguments.length){for(var s,o=Object.keys(r),i=0;i<o.length;++i)"removeListener"!==(s=o[i])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=new R,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},V.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(t):[]},V.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):z.call(e,t)},V.prototype.listenerCount=z,V.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};let W=null;const Q=Object.freeze({el:null,animate:!0,animateClass:"fade",animateInClass:"show",appendTo:"body",backdrop:!0,keyboard:!0,title:!1,header:!0,content:!1,footer:!0,buttons:null,headerClose:!0,construct:!1,transition:300,backdropTransition:150}),K=function e(t){for(let r in t)Array.isArray(t[r])?t[r].forEach(t=>{e(t)}):null!==t[r]&&"object"==typeof t[r]&&Object.freeze(t[r]);return Object.freeze(t)}({dialog:[{text:"Cancel",value:!1,attr:{class:"btn btn-default","data-dismiss":"modal"}},{text:"OK",value:!0,attr:{class:"btn btn-primary","data-dismiss":"modal"}}],alert:[{text:"OK",attr:{class:"btn btn-primary","data-dismiss":"modal"}}],confirm:[{text:"Cancel",value:!1,attr:{class:"btn btn-default","data-dismiss":"modal"}},{text:"OK",value:!0,attr:{class:"btn btn-primary","data-dismiss":"modal"}}]}),Z={container:'<div class="modal"></div>',dialog:'<div class="modal-dialog"></div>',content:'<div class="modal-content"></div>',header:'<div class="modal-header"></div>',headerClose:'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>',body:'<div class="modal-body"></div>',footer:'<div class="modal-footer"></div>',backdrop:'<div class="modal-backdrop"></div>'};function Y(e,t,r){let s="data",o=e[s]||{};if(void 0===r){if(e[s]&&e[s][t])return e[s][t];var i=e.getAttribute(`${s}-${t}`);return void 0!==i?i:null}return o[t]=r,e[s]=o,e}function X(e,t){return e.nodeName?e:(e=e.replace(/(\t|\n$)/g,""),W||(W=document.createElement("div")),W.innerHTML="",W.innerHTML=e,!0===t?W.childNodes:W.childNodes[0])}function J(e){let t=[e];for(;e.parentNode;)e=e.parentNode,t.push(e);return t}class ee extends V{static set templates(e){this._baseTemplates=e}static get templates(){return Object.assign({},Z,ee._baseTemplates||{})}static set buttons(e){this._baseButtons=e}static get buttons(){return Object.assign({},K,ee._baseButtons||{})}static set options(e){this._baseOptions=e}static get options(){return Object.assign({},Q,ee._baseOptions||{})}static get version(){return"0.12.0"}static alert(e,t={}){let r=Object.assign({},Q,{title:e,content:!1,construct:!0,headerClose:!1,buttons:ee.buttons.alert},t);return new ee(r)}static confirm(e,t={}){let r=Object.assign({},Q,{title:e,content:!1,construct:!0,headerClose:!1,buttons:ee.buttons.confirm},t);return new ee(r)}constructor(e={}){if(super(),this.id=(65536*(1+Math.random())|0).toString(16)+(65536*(1+Math.random())|0).toString(16),this.el=null,this._html={},this._events={},this._visible=!1,this._pointerInContent=!1,this._options=Object.assign({},ee.options,e),this._templates=Object.assign({},ee.templates,e.templates||{}),this._html.appendTo=document.querySelector(this._options.appendTo),this._scrollbarWidth=function(){let e,t,r,s=document.createElement("div");return Object.assign(s.style,{visibility:"hidden",width:"100px"}),document.body.appendChild(s),r=s.offsetWidth,s.style.overflow="scroll",e=document.createElement("div"),e.style.width="100%",s.appendChild(e),t=r-e.offsetWidth,document.body.removeChild(s),t}(),null===this._options.buttons&&(this._options.buttons=ee.buttons.dialog),this._options.el){let e=this._options.el;if("string"==typeof this._options.el&&(e=document.querySelector(this._options.el),!e))throw new Error(`Selector: DOM Element ${this._options.el} not found.`);Y(e,"modal",this),this.el=e}else this._options.construct=!0;this._options.construct?this._render():this._mapDom()}_render(){let e=this._html,t=this._options,r=this._templates,s=!!t.animate&&t.animateClass;return e.container=X(r.container),e.dialog=X(r.dialog),e.content=X(r.content),e.header=X(r.header),e.headerClose=X(r.headerClose),e.body=X(r.body),e.footer=X(r.footer),s&&e.container.classList.add(s),this._setHeader(),this._setContent(),this._setFooter(),this.el=e.container,e.dialog.appendChild(e.content),e.container.appendChild(e.dialog),this}_mapDom(){let e=this._html,t=this._options;return this.el.classList.contains(t.animateClass)&&(t.animate=!0),e.container=this.el,e.dialog=this.el.querySelector(".modal-dialog"),e.content=this.el.querySelector(".modal-content"),e.header=this.el.querySelector(".modal-header"),e.headerClose=this.el.querySelector(".modal-header .close"),e.body=this.el.querySelector(".modal-body"),e.footer=this.el.querySelector(".modal-footer"),this._setHeader(),this._setContent(),this._setFooter(),this}_setHeader(){let e=this._html,t=this._options;t.header&&e.header&&(t.title.nodeName?e.header.innerHTML=t.title.outerHTML:"string"==typeof t.title&&(e.header.innerHTML=`<h4 class="modal-title">${t.title}</h4>`),null===this.el&&e.headerClose&&t.headerClose&&e.header.appendChild(e.headerClose),t.construct&&e.content.appendChild(e.header))}_setContent(){let e=this._html,t=this._options;t.content&&e.body&&("string"==typeof t.content?e.body.innerHTML=t.content:e.body.innerHTML=t.content.outerHTML,t.construct&&e.content.appendChild(e.body))}_setFooter(){let e=this._html,t=this._options;t.footer&&e.footer&&(t.footer.nodeName?e.footer.ineerHTML=t.footer.outerHTML:"string"==typeof t.footer?e.footer.innerHTML=t.footer:e.footer.children.length||t.buttons.forEach(t=>{let r=document.createElement("button");Y(r,"button",t),r.innerHTML=t.text,r.setAttribute("type","button");for(let e in t.attr)r.setAttribute(e,t.attr[e]);e.footer.appendChild(r)}),t.construct&&e.content.appendChild(e.footer))}_setEvents(){this._options;let e=this._html;this._events.keydownHandler=this._handleKeydownEvent.bind(this),document.body.addEventListener("keydown",this._events.keydownHandler),this._events.mousedownHandler=this._handleMousedownEvent.bind(this),e.container.addEventListener("mousedown",this._events.mousedownHandler),this._events.clickHandler=this._handleClickEvent.bind(this),e.container.addEventListener("click",this._events.clickHandler),this._events.resizeHandler=this._handleResizeEvent.bind(this),window.addEventListener("resize",this._events.resizeHandler)}_handleMousedownEvent(e){this._pointerInContent=!1,J(e.target).every(e=>!e.classList||!e.classList.contains("modal-content")||(this._pointerInContent=!0,!1))}_handleClickEvent(e){J(e.target).every(t=>"HTML"!==t.tagName&&((!0===this._options.backdrop||!t.classList.contains("modal"))&&(!t.classList.contains("modal-content")&&("modal"===t.getAttribute("data-dismiss")?(this.emit("dismiss",this,e,Y(e.target,"button")),this.hide(),!1):!(!this._pointerInContent&&t.classList.contains("modal"))||(this.emit("dismiss",this,e,null),this.hide(),!1))))),this._pointerInContent=!1}_handleKeydownEvent(e){27===e.which&&this._options.keyboard&&(this.emit("dismiss",this,e,null),this.hide())}_handleResizeEvent(e){this._resize()}show(){let e=this._options,t=this._html;return this.emit("show",this),this._checkScrollbar(),this._setScrollbar(),document.body.classList.add("modal-open"),e.construct&&t.appendTo.appendChild(t.container),t.container.style.display="block",t.container.scrollTop=0,!1!==e.backdrop?(this.once("showBackdrop",()=>{this._setEvents(),e.animate&&t.container.offsetWidth,t.container.classList.add(e.animateInClass),setTimeout(()=>{this._visible=!0,this.emit("shown",this)},e.transition)}),this._backdrop()):(this._setEvents(),e.animate&&t.container.offsetWidth,t.container.classList.add(e.animateInClass),setTimeout(()=>{this._visible=!0,this.emit("shown",this)},e.transition)),this._resize(),this}toggle(){this._visible?this.hide():this.show()}_resize(){var e=this._html.container.scrollHeight>document.documentElement.clientHeight;this._html.container.style.paddingLeft=!this.bodyIsOverflowing&&e?this._scrollbarWidth+"px":"",this._html.container.style.paddingRight=this.bodyIsOverflowing&&!e?this._scrollbarWidth+"px":""}_backdrop(){let e=this._html,t=this._templates,r=this._options,s=!!r.animate&&r.animateClass;e.backdrop=X(t.backdrop),s&&e.backdrop.classList.add(s),e.appendTo.appendChild(e.backdrop),s&&e.backdrop.offsetWidth,e.backdrop.classList.add(r.animateInClass),setTimeout(()=>{this.emit("showBackdrop",this)},this._options.backdropTransition)}hide(){let e=this._html,t=this._options,r=e.container.classList;if(this.emit("hide",this),r.remove(t.animateInClass),t.backdrop){e.backdrop.classList.remove(t.animateInClass)}return this._removeEvents(),setTimeout(()=>{document.body.classList.remove("modal-open"),document.body.style.paddingRight=this.originalBodyPad},t.backdropTransition),setTimeout(()=>{t.backdrop&&e.backdrop.parentNode.removeChild(e.backdrop),e.container.style.display="none",t.construct&&e.container.parentNode.removeChild(e.container),this._visible=!1,this.emit("hidden",this)},t.transition),this}_removeEvents(){this._events.keydownHandler&&document.body.removeEventListener("keydown",this._events.keydownHandler),this._html.container.removeEventListener("mousedown",this._events.mousedownHandler),this._html.container.removeEventListener("click",this._events.clickHandler),window.removeEventListener("resize",this._events.resizeHandler)}_checkScrollbar(){this.bodyIsOverflowing=document.body.clientWidth<window.innerWidth}_setScrollbar(){if(this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing){let e=parseInt(this.originalBodyPad||0,10);document.body.style.paddingRight=e+this._scrollbarWidth+"px"}}}let te={};const re=new Set,se=e=>"exceptions"in e?e.exceptions.map(e=>e.text).join(","):"",oe=(e,t=null,r="")=>{if(re.has(r))return;re.add(r);let s=`<b>Error: ${e}</b>`;t&&t.message!==e&&(s+=`. ${t.message}`);const o=ee.alert(s,te);o.show(),o.on("hidden",()=>{re.delete(r)})},ie={labels:{select:"Select",selectBox:"Select features by drawing a box",selectFreehand:"Select features by freehand drawing",query:"Query feature info",featureInfo:"Feature info",addElement:"Toggle Draw mode",editElement:"Edit feature",save:"Save",delete:"Delete",cancel:"Cancel",apply:"Apply changes",upload:"Upload",editMode:"Edit Mode",confirmDelete:"Are you sure to delete the feature?",confirmDeleteElements:"Delete the {} selected features?",geomTypeNotSupported:"Geometry not supported by layer",editFields:"Edit fields",editGeom:"Edit geometry",continueLine:"Continue drawing from here",selectDrawType:"Geometry type to draw",uploadToLayer:"Upload file to selected layer",uploadFeatures:"Uploaded features to layer",validFeatures:"Valid geometries",invalidFeatures:"Invalid",loading:"Loading...",toggleVisibility:"Toggle layer visibility",fullscreen:"Fullscreen",close:"Close",multipleValues:"Multiple values",editElements:"Edit features ({})",multipleEditNotice:"Multi-edit active. Changes will be applied to the {} selected features.",geoserverLayers:"Geoserver Layers"},errors:{capabilities:"GeoServer Capabilities could not be downloaded.",wfst:"The GeoServer does not support Transactions",layer:"Could not get data from layer",layerNotFound:"Layer not found",layerNotVisible:"Layer is not visible",noValidGeometry:"No valid geometries found to add to this layer",geoserver:"Failed to get data from GeoServer",badFormat:"Unsupported format",badFile:"Error reading items from file",lockFeature:"Could not lock items on the GeoServer",transaction:"Error when doing Transaction with GeoServer",getFeatures:"Error getting elements from GeoServer"}},ne={es:{labels:{select:"Seleccionar",selectBox:"Seleccionar elementos dibujando una caja",selectFreehand:"Seleccionar elementos dibujando a mano alzada",query:"Consultar información del elemento",featureInfo:"Información del elemento",addElement:"Modo dibujo",editElement:"Editar elemento",save:"Guardar",delete:"Eliminar",cancel:"Cancelar",apply:"Aplicar cambios",upload:"Subir",editMode:"Modo Edición",confirmDelete:"¿Estás seguro de borrar el elemento?",confirmDeleteElements:"¿Borrar los {} elementos?",geomTypeNotSupported:"Geometría no compatible con la capa",editFields:"Editar campos",editGeom:"Editar geometría",continueLine:"Continuar dibujando desde aquí",selectDrawType:"Tipo de geometría para dibujar",uploadToLayer:"Subir archivo a la capa seleccionada",uploadFeatures:"Subida de elementos a la capa",validFeatures:"Válidas",invalidFeatures:"Invalidas",loading:"Cargando...",toggleVisibility:"Cambiar visibilidad de la capa",fullscreen:"Pantalla completa",close:"Cerrar",multipleValues:"Valores múltiples",editElements:"Editar elementos ({})",multipleEditNotice:"Edición múltiple activada. Los cambios se aplicarán a los {} elementos seleccionados.",geoserverLayers:"Capas de GeoServer"},errors:{capabilities:"No se pudieron obtener las Capabilidades del GeoServer",wfst:"El GeoServer no tiene soporte a Transacciones",layer:"No se pudieron obtener datos de la capa",layerNotFound:"Capa no encontrada",layerNotVisible:"La capa no está visible",noValidGeometry:"No se encontraron geometrías válidas para agregar a esta capa",geoserver:"No se pudieron obtener datos desde el GeoServer",badFormat:"Formato no soportado",badFile:"Error al leer elementos del archivo",lockFeature:"No se pudieron bloquear elementos en el GeoServer",transaction:"Error al hacer transacción con el GeoServer",getFeatures:"Error al obtener elemento desde el GeoServer"}},en:ie,zh:{labels:{select:"选择",selectBox:"框选元素",selectFreehand:"手绘选择元素",query:"查询元素信息",featureInfo:"元素信息",addElement:"切换绘图类型",editElement:"编辑元素",save:"保存",delete:"删除",cancel:"取消",apply:"确认并应用改变",upload:"上传",editMode:"编辑模式",confirmDelete:"确认删除元素?",confirmDeleteElements:"确认删除选中的 {} 个元素?",geomTypeNotSupported:"图层不支持该几何",editFields:"编辑区域",editGeom:"编辑几何",continueLine:"从此处继续绘制",selectDrawType:"几何类型",uploadToLayer:"通过文件上传图层",uploadFeatures:"上传元素到图层",validFeatures:"合法的几何类型",invalidFeatures:"不合法",loading:"加载中...",toggleVisibility:"切换图层透明度",fullscreen:"全屏",close:"关闭",multipleValues:"多个值",editElements:"编辑元素({})",multipleEditNotice:"多选编辑已激活。更改将应用于所有 {} 个选定元素。",geoserverLayers:"GeoServer 图层"},errors:{capabilities:"无法加载GeoServer服务所支持的能力.",wfst:"GeoServer不支持事务",layer:"无法从图层获得数据",layerNotFound:"Layer not found",layerNotVisible:"Layer is not visible",noValidGeometry:"不支持的几何类型无法加载到图层",geoserver:"无法从GeoServer获取数据",badFormat:"不支持的格式",badFile:"读取文件数据出错",lockFeature:"无法锁定GeoServer上的元素.",transaction:"GeoServer处理事务出错.",getFeatures:"从GeoServer获取元素出错."}}};let ae=ie;const le=(e,...t)=>{var r;let s=null===(r=ae.labels)||void 0===r?void 0:r[e];return s||(s=ae[e]),s||(console.error("Translation not found",e),s=e),t.length&&t.forEach(e=>{s=s.replace(/{}/,e)}),s};let ce;const de=(e=!0)=>{e?ce.classList.add("ol-wfst--tools-control--loading-show"):ce.classList.remove("ol-wfst--tools-control--loading-show")},he=(e,t,r=[])=>{const s=Object.getOwnPropertyDescriptors(t);for(let e of r)delete s[e];Object.defineProperties(e,s)},ue=(e,t=[e])=>{const r=Object.getPrototypeOf(e);return null===r?t:ue(r,[...t,r])},pe=(e,t,r=[])=>{var s;const o=null!==(s=((...e)=>{if(0===e.length)return;let t;const r=e.map(e=>ue(e));for(;r.every(e=>e.length>0);){const e=r.map(e=>e.pop()),s=e[0];if(!e.every(e=>e===s))break;t=s}return t})(...e))&&void 0!==s?s:Object.prototype,i=Object.create(o),n=ue(o);for(let t of e){let e=ue(t);for(let t=e.length-1;t>=0;t--){let s=e[t];-1===n.indexOf(s)&&(he(i,s,["constructor",...r]),n.push(s))}}return i.constructor=t,i},me=e=>e.filter((t,r)=>e.indexOf(t)==r),fe=new WeakMap,ge=e=>fe.get(e),ye=(e,t)=>{var r,s;const o=me([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)]),i={};for(let n of o)i[n]=me([...null!==(r=null==e?void 0:e[n])&&void 0!==r?r:[],...null!==(s=null==t?void 0:t[n])&&void 0!==s?s:[]]);return i},ve=(e,t)=>{var r,s,o,i;return{property:ye(null!==(r=null==e?void 0:e.property)&&void 0!==r?r:{},null!==(s=null==t?void 0:t.property)&&void 0!==s?s:{}),method:ye(null!==(o=null==e?void 0:e.method)&&void 0!==o?o:{},null!==(i=null==t?void 0:t.method)&&void 0!==i?i:{})}},_e=new Map,we=(...e)=>{const t=((...e)=>{var t;const r=new Set,s=new Set([...e]);for(;s.size>0;)for(let e of s){const o=[...ue(e.prototype).map(e=>e.constructor),...null!==(t=ge(e))&&void 0!==t?t:[]].filter(e=>!r.has(e));for(let e of o)s.add(e);r.add(e),s.delete(e)}return[...r]})(...e).map(e=>_e.get(e)).filter(e=>!!e);return 0==t.length?{}:1==t.length?t[0]:t.reduce((e,t)=>((e,t)=>{var r,s,o,i,n,a;return{class:me([...null!==(r=null==e?void 0:e.class)&&void 0!==r?r:[],...null!==(s=null==t?void 0:t.class)&&void 0!==s?s:[]]),static:ve(null!==(o=null==e?void 0:e.static)&&void 0!==o?o:{},null!==(i=null==t?void 0:t.static)&&void 0!==i?i:{}),instance:ve(null!==(n=null==e?void 0:e.instance)&&void 0!==n?n:{},null!==(a=null==t?void 0:t.instance)&&void 0!==a?a:{})}})(e,t))};function be(...e){var t,r,s;const o=e.map(e=>e.prototype);function i(...t){for(const r of e)he(this,new r(...t))}i.prototype=pe(o,i),Object.setPrototypeOf(i,pe(e,null,["prototype"]));let n=i;{const o=we(...e);for(let e of null!==(t=null==o?void 0:o.class)&&void 0!==t?t:[]){const t=e(n);t&&(n=t)}Se(null!==(r=null==o?void 0:o.static)&&void 0!==r?r:{},n),Se(null!==(s=null==o?void 0:o.instance)&&void 0!==s?s:{},n.prototype)}var a,l;return a=n,l=e,fe.set(a,l),n}const Se=(e,t)=>{const r=e.property,s=e.method;if(r)for(let e in r)for(let s of r[e])s(t,e);if(s)for(let e in s)for(let r of s[e])r(t,e,Object.getOwnPropertyDescriptor(t,e))};var Ee,Fe;let Ce;!function(e){e.Point="Point",e.LineString="LineString",e.LinearRing="LinearRing",e.Polygon="Polygon",e.MultiPoint="MultiPoint",e.MultiLineString="MultiLineString",e.MultiPolygon="MultiPolygon",e.GeometryCollection="GeometryCollection",e.Circle="Circle"}(Ee||(Ee={})),function(e){e.Insert="insert",e.Delete="delete",e.Update="update"}(Fe||(Fe={}));let Pe=null,ke=null;var Oe,Le;!function(e){e.Edit="EDIT",e.Draw="DRAW",e.Query="QUERY"}(Oe||(Oe={})),function(e){e.Single="SINGLE",e.Box="BOX",e.Freehand="FREEHAND"}(Le||(Le={}));let Ae=Le.Single;function Me(e=null){ke=e}function je(){return ke}function Te(){return Ae}const xe=new Set,Ne={};function Ie(){return Ce}function De(e){Pe=e}function Ge(){return Pe}function qe(){return Ne}function Re(e){return qe()[e]}function Ve(e){xe.add(String(e.getId()))}function Be(e){xe.delete(String(e.getId()))}function He(e){return xe.has(String(e.getId()))}class Ue extends b{async _init(){const e=this.getGeoserver();e.isLoaded()?await this.getAndUpdateDescribeFeatureType():await new Promise(t=>{e.once("change:capabilities",async()=>{await this.getAndUpdateDescribeFeatureType(),t()})})}async getAndUpdateDescribeFeatureType(){const e=this.get(ze.NAME),t=this.get(ze.LABEL);try{const t=this.getGeoserver(),r=new URLSearchParams({service:"wfs",version:t.getAdvanced().describeFeatureTypeVersion,request:"DescribeFeatureType",typeName:e,outputFormat:"application/json",exceptions:"application/json"}),s=t.getUrl()+"?"+r.toString(),o=await fetch(s,{headers:t.getHeaders(),credentials:t.getCredentials()});if(!o.ok)throw new Error("");const i=await o.json();if(!i)throw new Error("");if(i.exceptions)throw new Error(se(i));const n=i.targetNamespace,a=i.featureTypes[0].properties,l=a.find(e=>e.type.indexOf("gml:")>=0);i._parsed={namespace:n,properties:a,geomType:l.localType,geomField:l.name},this.set(ze.DESCRIBEFEATURETYPE,i)}catch(r){console.error(r),oe(`${ae.errors.layer} "${t}"`,r,e)}}isVisibleByZoom(){return Ie().getView().getZoom()>this.getMinZoom()}async transactFeatures(e,t){return this.getGeoserver().transact(e,t,this.get(ze.NAME))}async insertFeatures(e){return this.transactFeatures(Fe.Insert,e)}async maybeLockFeature(e){const t=this.getGeoserver();return t.getUseLockFeature()&&t.hasLockFeature()?await t.lockFeature(e,this.get(ze.NAME)):null}getGeoserver(){return this.get(ze.GEOSERVER)}getDescribeFeatureType(){return this.get(ze.DESCRIBEFEATURETYPE)}}var ze;!function(e){e.NAME="name",e.LABEL="label",e.DESCRIBEFEATURETYPE="describeFeatureType",e.ISVISIBLE="isVisible",e.GEOSERVER="geoserver"}(ze||(ze={}));class $e extends f{constructor(e){super(Object.assign(Object.assign({},e),{format:new S,loader:(t,r,s,o,i)=>{(async()=>{try{if(e.strategy==F.bbox){const r=E.transformExtent(t,s.getCode(),e.geoServerAdvanced.projection);this.urlParams.set("bbox",r.toString()+`,${e.geoServerAdvanced.projection}`)}const r=e.geoserverUrl+"?"+this.urlParams.toString(),i=await fetch(r,{headers:e.headers,credentials:e.credentials});if(!i.ok)throw new Error("");const n=await i.json();if(n.exceptions)throw new Error(se(n));const a=this.getFormat().readFeatures(n,{featureProjection:s.getCode(),dataProjection:e.geoServerAdvanced.projection});a.forEach(t=>{t.set("_layerName_",e.name,!0)}),this.addFeatures(a),o(a)}catch(r){this.removeLoadedExtent(t),oe(ae.errors.geoserver,r,e.name),i()}})()}})),this.urlParams=new URLSearchParams({SERVICE:"wfs",REQUEST:"GetFeature",OUTPUTFORMAT:"application/json",EXCEPTIONS:"application/json"}),this.urlParams.set("version",e.geoServerAdvanced.getFeatureVersion),this.urlParams.set("typename",e.name),this.urlParams.set("srsName",e.geoServerAdvanced.projection.toString())}}class We extends(be(Ue,m)){constructor(e){super(Object.assign({name:e.name,label:e.label||e.name,minZoom:e.minZoom},e)),this._loadingCount=0,this._loadedCount=0,e.beforeTransactFeature&&(this.beforeTransactFeature=e.beforeTransactFeature);const t=e.geoserver,r=new $e(Object.assign(Object.assign({name:e.name,headers:t.getHeaders(),credentials:t.getCredentials(),geoserverUrl:t.getUrl(),geoServerAdvanced:t.getAdvanced()},e.strategy&&{strategy:e.strategy}),{geoserverVendor:e.geoserverVendor}));this._loadingCount=0,this._loadedCount=0,r.on("featuresloadstart",()=>{this._loadingCount++,1===this._loadingCount&&this.isVisibleByZoom()&&de()}),r.on(["featuresloadend","featuresloaderror"],()=>{this._loadedCount++,this._loadingCount===this._loadedCount&&(this._loadingCount=0,this._loadedCount=0,setTimeout(()=>{this.dispatchEvent("layerRendered")},300))}),this.setSource(r);const s=e.geoserverVendor;Object.keys(s).forEach(e=>{r.urlParams.set(e,s[e])})}refresh(){this.getSource().refresh()}setCustomParam(e,t=null,r=!0){const s=this.getSource();return null==t?s.urlParams.delete(e):s.urlParams.set(e,t),r&&this.refresh(),s.urlParams}}var Qe=2,Ke=3;class Ze extends P{constructor(e){super(Object.assign({url:e.geoserverUrl,serverType:"geoserver",params:Object.assign({SERVICE:"wms",TILED:!0,LAYERS:e.name,EXCEPTIONS:"application/json"},e.geoserverVendor&&e.geoserverVendor),tileLoadFunction:async(t,r)=>{try{const o=await fetch(r,{headers:e.headers,credentials:e.credentials});if(!o.ok)throw new Error("");let i=await o.blob();if("application/json"==i.type){const e=await(s=i,new Promise(e=>{const t=new FileReader;t.onloadend=()=>e(JSON.parse(t.result)),t.readAsText(s)}));throw new Error(se(e))}t.getImage().src=URL.createObjectURL(i),t.setState(Qe)}catch(r){oe(ae.errors.geoserver,r,e.name),t.setState(Ke)}var s}},e))}}class Ye extends(be(Ue,C)){constructor(e){super(Object.assign({name:e.name,label:e.label||e.name,minZoom:e.minZoom},e)),this._loadingCount=0,this._loadedCount=0,this._getFullResGeometryById=async e=>{const t=new URLSearchParams({SERVICE:"wfs",VERSION:"2.0.0",INFO_FORMAT:"application/json",REQUEST:"GetFeature",TYPENAME:this.get("name"),MAXFEATURES:String(e.length),OUTPUTFORMAT:"application/json",SRSNAME:Ie().getView().getProjection().getCode(),FEATUREID:e.join(",")}),r=this.getSource().getUrls()[0]+"?"+t.toString();try{const t=this.getGeoserver(),s=await fetch(r,{headers:t.getHeaders(),credentials:t.getCredentials()});if(!s.ok)throw new Error(`${ae.errors.getFeatures} ${s.status}`);const o=await s.json(),i={};return this._parseFeaturesFromResponse(o).forEach(e=>{i[String(e.getId())]=e}),e.map(e=>i[String(e)]).filter(Boolean)}catch(e){return console.error(e),!1}},e.beforeTransactFeature&&(this.beforeTransactFeature=e.beforeTransactFeature),e.beforeShowFieldsModal&&(this.beforeShowFieldsModal=e.beforeShowFieldsModal),this._formatGeoJSON=new S;const t=e.geoserver,r=new Ze({name:e.name,headers:t.getHeaders(),credentials:t.getCredentials(),geoserverUrl:t.getUrl(),geoServerAdvanced:t.getAdvanced(),geoserverVendor:e.geoserverVendor});this._loadingCount=0,this._loadedCount=0,r.on("tileloadstart",()=>{this._loadingCount++,1===this._loadingCount&&this.isVisibleByZoom()&&de()}),r.on(["tileloadend","tileloaderror"],()=>{this._loadedCount++,this._loadingCount===this._loadedCount&&(this._loadingCount=0,this._loadedCount=0,setTimeout(()=>{this.dispatchEvent("layerRendered")},300))}),this.setSource(r)}async _getFeaturesByClickEvent(e){const t=e.coordinate,r=Ie().getView(),s=r.getZoom()>10?10:5,o=this.getSource(),i=o["getFeatureInfoUrl"in o?"getFeatureInfoUrl":"getGetFeatureInfoUrl"](t,r.getResolution(),r.getProjection().getCode(),{INFO_FORMAT:"application/json",BUFFER:s,FEATURE_COUNT:1,EXCEPTIONS:"application/json"});return this._requestFeatures(i)}async _getFeaturesInGeometry(e){var t,r,s;this.getDescribeFeatureType()||await this.getAndUpdateDescribeFeatureType();const o=null===(r=null===(t=this.getDescribeFeatureType())||void 0===t?void 0:t._parsed)||void 0===r?void 0:r.geomField;if(!o)return oe(`${ae.errors.layer} "${this.get("name")}"`),[];const i=Ie().getView().getProjection().getCode(),n=this._getNativeSrs(),a=e.clone();if(n!==i)try{a.transform(i,n)}catch(e){console.error(e)}const l=(a.getCoordinates()[0]||[]).map(([e,t])=>`${e} ${t}`).join(", "),c=null!==(s=n.match(/(?:EPSG\s*::?\s*|EPSG\/0\/)(\d+)/i))&&void 0!==s?s:n.match(/(\d+)$/),d=c?`INTERSECTS(${o}, SRID=${c[1]};POLYGON((${l})))`:`INTERSECTS(${o}, POLYGON((${l})))`,h=new URLSearchParams({SERVICE:"wfs",VERSION:"2.0.0",REQUEST:"GetFeature",TYPENAME:this.get("name"),OUTPUTFORMAT:"application/json",SRSNAME:i,CQL_FILTER:d}),u=this.getSource().getUrls()[0]+"?"+h.toString();return this._requestFeatures(u)}_getNativeSrs(){var e;const t=this.getGeoserver(),r=Ie().getView().getProjection().getCode(),s=String(this.get("name")||""),o=s.split(":").pop(),i=null===(e=t.getParsedCapabilities())||void 0===e?void 0:e.FeatureTypeList,n=Array.isArray(i)?i.find(e=>{const t=String((null==e?void 0:e.Name)||"");return t===s||t===o||t.split(":").pop()===o}):void 0,a=((null==n?void 0:n.DefaultCRS)?String(n.DefaultCRS):"").match(/(?:EPSG\s*::?\s*|EPSG\/0\/)(\d+)/i);if(a)return`EPSG:${a[1]}`;const l=t.getAdvanced().projection;return l?String(l):r}async _requestFeatures(e){const t=this.getGeoserver();try{const r=await fetch(e,{headers:t.getHeaders(),credentials:t.getCredentials()});if(!r.ok)throw new Error(`${ae.errors.getFeatures} ${r.status}`);const s=await r.json();let o=this._parseFeaturesFromResponse(s);const i=o.map(e=>e.getId());if(!i.length)return[];const n=await this._getFullResGeometryById(i);return n&&(o=n),o}catch(e){oe(e.message,e)}}_parseFeaturesFromResponse(e){return this._formatGeoJSON.readFeatures(e)}refresh(){const e=this.getSource();e.refresh();const t=e.getParams();t.t=(new Date).getMilliseconds(),e.updateParams(t)}setCustomParam(e,t=null,r=!0){const s=this.getSource();return s.updateParams({[e]:t}),r&&this.refresh(),s.getParams()}}function Xe(e,t){let r=(t=t||{}).children||[];if(r=Array.isArray(r)?r:[r],delete t.children,"function"==typeof e)return e(t,r);const s="fragment"===e?document.createDocumentFragment():document.createElement(e);s instanceof HTMLElement&&Object.entries(t).forEach(([e,t])=>{null!=t&&(e.startsWith("on")&&"function"==typeof t?s.addEventListener(e.slice(2).toLowerCase(),t):"className"===e?s.setAttribute("class",t.toString()):"htmlFor"===e?s.setAttribute("for",t.toString()):s.setAttribute(e,t.toString()))});for(const e of r)e&&(Array.isArray(e)?s.append(...e):e instanceof Node?s.appendChild(e):s.innerHTML+=e);return s}function Je(e,t){return Xe(e,t)}function et(e,t){return Xe(e,t)}function tt(e,t){return Xe("fragment",{children:t})}const rt=()=>{const e=document.querySelector(".ol-wfst--tools-control-btn.wfst--active");e&&e.classList.remove("wfst--active")},st=()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-query");e&&e.classList.remove("wfst--active")},ot=e=>{const t=document.querySelector(".ol-wfst--tools-control-btn-select.wfst--active, .ol-wfst--tools-control-btn-select-box.wfst--active, .ol-wfst--tools-control-btn-select-freehand.wfst--active");t&&t.classList.remove("wfst--active"),st();const r={[Le.Single]:".ol-wfst--tools-control-btn-select",[Le.Box]:".ol-wfst--tools-control-btn-select-box",[Le.Freehand]:".ol-wfst--tools-control-btn-select-freehand"},s=document.querySelector(r[e]);s&&s.classList.add("wfst--active")},it=()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-select.wfst--active, .ol-wfst--tools-control-btn-select-box.wfst--active, .ol-wfst--tools-control-btn-select-freehand.wfst--active");e&&e.classList.remove("wfst--active"),st()};class nt extends v{constructor(e,t){super(),this._uploads=e,this._uploadFormats=t}addLayerEl(e){const t=document.querySelector(".wfst--tools-control--select-layers-list"),r=e.get(ze.NAME),s=e===Ge()?{checked:!0}:{},o=Je("input",Object.assign({value:r,id:`wfst--${r}`,type:"radio",className:"ol-wfst--tools-control-input",name:"wfst--select-layer"},s,{onChange:t=>this._layerChangeHandler(t,e)})),i=Je("div",{className:`wfst--layer-control \n ${e.getVisible()?"ol-wfst--visible-on":""}\n ${e===Ge()?"ol-wfst--selected-on":""}`,"data-layer":r,children:et("label",{htmlFor:`wfst--${r}`,children:[et("div",{className:"ol-wfst--tools-control-visible",children:[Je("span",{className:"ol-wfst--tools-control-visible-btn ol-wfst--visible-btn-on",title:ae.labels.toggleVisibility,onClick:e=>this._visibilityClickHandler(e),children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768">\n<path d="M384 288q39 0 67.5 28.5t28.5 67.5-28.5 67.5-67.5 28.5-67.5-28.5-28.5-67.5 28.5-67.5 67.5-28.5zM384 544.5q66 0 113.25-47.25t47.25-113.25-47.25-113.25-113.25-47.25-113.25 47.25-47.25 113.25 47.25 113.25 113.25 47.25zM384 144q118.5 0 214.5 66t138 174q-42 108-138 174t-214.5 66-214.5-66-138-174q42-108 138-174t214.5-66z"></path>\n</svg>\n',"image/svg+xml").firstChild}),Je("span",{className:"ol-wfst--tools-control-visible-btn ol-wfst--visible-btn-off",title:ae.labels.toggleVisibility,onClick:e=>this._visibilityClickHandler(e),children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768">\n<path d="M379.5 288h4.5q39 0 67.5 28.5t28.5 67.5v6zM241.5 313.5q-18 36-18 70.5 0 66 47.25 113.25t113.25 47.25q34.5 0 70.5-18l-49.5-49.5q-12 3-21 3-39 0-67.5-28.5t-28.5-67.5q0-9 3-21zM64.5 136.5l40.5-40.5 567 567-40.5 40.5q-7.5-7.5-47.25-46.5t-60.75-60q-64.5 27-139.5 27-118.5 0-214.5-66t-138-174q16.5-39 51.75-86.25t68.25-72.75q-18-18-50.25-51t-36.75-37.5zM384 223.5q-30 0-58.5 12l-69-69q58.5-22.5 127.5-22.5 118.5 0 213.75 66t137.25 174q-36 88.5-109.5 151.5l-93-93q12-28.5 12-58.5 0-66-47.25-113.25t-113.25-47.25z"></path>\n</svg>\n',"image/svg+xml").firstChild})]}),o,Je("span",{title:`${e instanceof We?"WFS":"WMS"} - ${e.getDescribeFeatureType()._parsed.geomType}`,children:e.get(ze.LABEL)})]})});return t.appendChild(i),e===Ge()&&o.dispatchEvent(new Event("change")),i}_changeStateSelect(e,t=null){const r=(e,t)=>{Array.from(s.options).forEach(r=>{r.selected=r.value===e,r.disabled="all"!==t&&!t.includes(r.value),r.title=r.disabled?ae.labels.geomTypeNotSupported:""})},s=document.querySelector(".wfst--tools-control--select-draw");let o;if(s){const i=e.getDescribeFeatureType()._parsed.geomType;t?o=s.value:i===Ee.GeometryCollection?(o=Ee.LineString,r(o,"all")):i===Ee.LinearRing?(o=Ee.LineString,r(o,[Ee.Circle,Ee.LinearRing,Ee.Polygon]),s.value=o):(o=i,r(o,[i]))}return o}_visibilityClickHandler(e){const t=e.currentTarget.closest(".wfst--layer-control"),r=t.dataset.layer;t.classList.toggle("ol-wfst--visible-on");const s=qe()[r];t.classList.contains("ol-wfst--visible-on")?s.setVisible(!0):s.setVisible(!1)}_layerChangeHandler(e,t){const r=document.querySelector(".ol-wfst--selected-on"),s=e.currentTarget.closest(".wfst--layer-control");r.classList.remove("ol-wfst--selected-on"),s.classList.add("ol-wfst--selected-on"),De(t),this._changeStateSelect(t),this.dispatchEvent("changeLayer")}render(){return et(tt,{children:[et("div",{className:"wfst--tools-control--head",children:[et("div",{className:"ol-wfst--tools-control-select-cnt",children:[Je("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-select wfst--active",type:"button",title:ae.labels.select,onClick:()=>{this.dispatchEvent("selectModeSingle")},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="289" height="448" viewBox="0 0 289 448">\r\n <path d="M283.25 260.75c4.75 4.5 6 11.5 3.5 17.25-2.5 6-8.25 10-14.75 10h-95.5l50.25 119c3.5 8.25-0.5 17.5-8.5 21l-44.25 18.75c-8.25 3.5-17.5-0.5-21-8.5l-47.75-113-78 78c-3 3-7 4.75-11.25 4.75-2 0-4.25-0.5-6-1.25-6-2.5-10-8.25-10-14.75v-376c0-6.5 4-12.25 10-14.75 1.75-0.75 4-1.25 6-1.25 4.25 0 8.25 1.5 11.25 4.75z"></path>\r\n</svg>\r\n',"image/svg+xml").firstChild}),Je("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-select-box",type:"button",title:ae.labels.selectBox,onClick:()=>{this.dispatchEvent("selectModeBox")},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <rect x="3.5" y="3.5" width="17" height="17" rx="1.5" fill="none" stroke="#000" stroke-width="2" stroke-dasharray="4 2"></rect>\r\n</svg>',"image/svg+xml").firstChild}),Je("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-select-freehand",type:"button",title:ae.labels.selectFreehand,onClick:()=>{this.dispatchEvent("selectModeFreehand")},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"></path>\r\n</svg>',"image/svg+xml").firstChild})]}),Je("div",{className:"ol-wfst--tools-control-query-cnt",children:Je("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-query",type:"button",title:ae.labels.query,onClick:()=>{this.dispatchEvent("queryMode")},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"></path>\r\n</svg>',"image/svg+xml").firstChild})}),et("div",{className:"ol-wfst--tools-control-draw-cnt",children:[Je("button",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-draw",type:"button",title:ae.labels.addElement,onClick:()=>{this.dispatchEvent("drawMode")},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768">\r\n <path d="M663 225l-58.5 58.5-120-120 58.5-58.5q9-9 22.5-9t22.5 9l75 75q9 9 9 22.5t-9 22.5zM96 552l354-354 120 120-354 354h-120v-120z"></path>\r\n</svg>',"image/svg+xml").firstChild}),Je("select",{title:ae.labels.selectDrawType,className:"wfst--tools-control--select-draw",onChange:e=>{const t=e.target.value;this._changeStateSelect(Ge(),t),this.dispatchEvent("changeGeom")},children:[Ee.Point,Ee.MultiPoint,Ee.LineString,Ee.MultiLineString,Ee.Polygon,Ee.MultiPolygon,Ee.Circle].map(e=>Je("option",{value:e,children:e}))})]}),this._uploads&&et("div",{children:[Je("input",{id:"ol-wfst--upload",type:"file",accept:this._uploadFormats,onChange:e=>this._uploads.process(e)}),Je("label",{className:"ol-wfst--tools-control-btn ol-wfst--tools-control-btn-upload",htmlFor:"ol-wfst--upload",title:ae.labels.uploadToLayer,children:(new DOMParser).parseFromString('\r\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">\r\n<path d="M240 352h-240v128h480v-128h-240zM448 416h-64v-32h64v32zM112 160l128-128 128 128h-80v160h-96v-160z"></path>\r\n</svg>\r\n',"image/svg+xml").firstChild})]})]}),et("div",{className:"wfst--tools-control--select-layers",children:[Je("div",{className:"wfst--tools-control--select-layers-title",children:ae.labels.geoserverLayers}),Je("div",{className:"wfst--tools-control--select-layers-list"})]})]})}}let at=new m({source:new f,zIndex:100});const lt=()=>at;class ct extends v{constructor(e){super(),this._options=e,this._processUpload=e.processUpload,this._formatWFS=new L,this._formatGeoJSON=new S,this._formatKml=new O({extractStyles:!1,showPointNames:!1}),this._xs=new XMLSerializer}async process(e){const t=Ie().getView(),r=e.target.files[0];let s;if(!r)return;const o=r.name.split(".").pop().toLowerCase();try{if(this._processUpload&&(s=this._processUpload(r)),!s){const e=await this._fileReader(r);"geojson"===o||"json"===o?s=this._formatGeoJSON.readFeatures(e,{featureProjection:t.getProjection().getCode()}):"kml"===o?s=this._formatKml.readFeatures(e,{featureProjection:t.getProjection().getCode()}):oe(ae.errors.badFormat)}let i=0,n=0;const a=[];for(let e of s)this._checkGeometry(e)||(e=this._fixGeometry(e)),e?(a.push(e),n++):i++;if(n){rt(),this.dispatchEvent(new f.VectorSourceEvent("loadedFeatures",null,a));const e=`\n ${ae.labels.validFeatures}: ${n}<br>\n ${i?`${ae.labels.invalidFeatures}: ${i}`:""}`;this._initModal(e,a)}else oe(ae.errors.noValidGeometry);e.target.value=null}catch(e){oe(ae.errors.badFile,e)}}async _fileReader(e){return new Promise((t,r)=>{const s=new FileReader;s.addEventListener("load",async e=>{const r=e.target.result;t(r)}),s.addEventListener("error",e=>{console.error("Error"+e),r()}),s.readAsText(e)})}_fixGeometry(e){const t=Ge().getDescribeFeatureType()._parsed.geomType;let r;switch(e.getGeometry().getType()){case Ee.Point:if(t===Ee.MultiPoint){const t=e.getGeometry().getCoordinates();r=new k.MultiPoint([t])}break;case Ee.LineString:if(t===Ee.MultiLineString){const t=e.getGeometry().getCoordinates();r=new k.MultiLineString([t])}break;case Ee.Polygon:if(t===Ee.MultiPolygon){const t=e.getGeometry().getCoordinates();r=new k.MultiPolygon([t])}break;default:r=null}return r?(e.setGeometry(r),e):null}_checkGeometry(e){const t=Ge().getDescribeFeatureType()._parsed.geomType,r=e.getGeometry().getType();return t===Ee.GeometryCollection||r===t}_initModal(e,t){const r=`\n <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">\n ${ae.labels.cancel}\n </button>\n <button type="button" class="btn btn-sm btn-primary" data-action="save" data-dismiss="modal">\n ${ae.labels.upload}\n </button>\n `;new ee(Object.assign(Object.assign({},this._options.modal),{header:!0,headerClose:!1,title:ae.labels.uploadFeatures+" "+Ge().get(ze.NAME),content:e,backdrop:"static",footer:r})).show().on("dismiss",(e,r)=>{"save"===r.target.dataset.action?this.dispatchEvent(new f.VectorSourceEvent("addedFeatures",null,t)):lt().getSource().clear()})}}const dt=(e,...t)=>(t.forEach(t=>{Object.keys(t).forEach(r=>{const s=t[r],o=e[r];e[r]=o&&s&&"object"==typeof o&&"object"==typeof s&&!Array.isArray(o)?dt(o,s):s})}),e);class ht extends s{constructor(e){super({element:Je("div",{className:"ol-wfst--changes-control",children:et("div",{className:"ol-wfst--changes-control-el",children:[et("div",{className:"ol-wfst--changes-control-id",children:[Je("b",{children:ae.labels.editMode})," -"," ",Je("i",{children:e.length>1?le("editElements",e.length):String(e[0].getId())})]}),Je("button",{type:"button",className:"btn btn-sm btn-secondary",onClick:()=>{this._dispatch("cancel",e)},children:ae.labels.cancel}),Je("button",{type:"button",className:"btn btn-sm btn-primary",onClick:()=>{this._dispatch("apply",e)},children:ae.labels.apply}),Je("button",{type:"button",className:"btn btn-sm btn-danger-outline",onClick:()=>{this._dispatch("delete",e)},children:ae.labels.delete})]})})})}_dispatch(e,t){const r=new f.VectorSourceEvent(e,t[0]);r.features=t,this.dispatchEvent(r)}}const ut=(e=!1,t)=>{const r=e?10:8,s=e?"rgba(0, 0, 0, 0.40)":"rgba(0, 0, 0, 0.28)",o=e?7:6,i=e?"#4b5563":"#b3b3b3",n=e?2:1.5;return[new A.Style(Object.assign({image:new A.Circle({radius:r,fill:new A.Fill({color:s})})},t?{geometry:t}:{})),new A.Style(Object.assign({image:new A.Circle({radius:o,fill:new A.Fill({color:"#ffffff"}),stroke:new A.Stroke({width:n,color:i})})},t?{geometry:t}:{}))]},pt=e=>{let t=e.getGeometry();t instanceof k.GeometryCollection&&(t=t.getGeometries()[0]);const r=t.getCoordinates();let s=null;if(s=t instanceof k.Polygon||t instanceof k.MultiLineString?r.flat(1):t instanceof k.MultiPolygon?r.flat(2):r,s&&s.length)return new k.MultiPoint(s)};function mt(e,t=!1){let r=e.getGeometry(),s=r.getType();r instanceof k.GeometryCollection&&(r=r.getGeometries()[0],s=r.getType());const o=()=>[new A.Style({image:new A.Circle({radius:9,fill:new A.Fill({color:"rgba(255, 255, 255, 0.9)"}),stroke:new A.Stroke({color:"#ff0000",width:3})}),stroke:new A.Stroke({color:"rgba(255, 255, 255, 0.9)",width:8}),fill:new A.Fill({color:"rgba(255, 255, 255, 0.9)"})})];switch(s){case Ee.Point:case Ee.MultiPoint:return je()===Oe.Edit?ut():[...t?o():[],new A.Style({image:new A.Circle({radius:5,fill:new A.Fill({color:"#ff0000"})})}),new A.Style({image:new A.Circle({radius:2,fill:new A.Fill({color:"#000000"})})})];default:return je()==Oe.Draw||je()==Oe.Edit?[new A.Style({stroke:new A.Stroke({color:"rgba( 255, 0, 0, 1)",width:4}),fill:new A.Fill({color:"rgba(255, 0, 0, 0.7)"})}),...ut(!1,pt),new A.Style({stroke:new A.Stroke({color:"rgba(255, 255, 255, 0.7)",width:2})})]:[...t?o():[],new A.Style({image:new A.Circle({radius:2,fill:new A.Fill({color:"#000000"})}),geometry:e=>pt(e)}),new A.Style({stroke:new A.Stroke({color:"#ff0000",width:4}),fill:new A.Fill({color:"rgba(255, 0, 0, 0.7)"})})]}}class ft extends v{constructor(e){super(),this._options=e,this._modal=new ee(Object.assign(Object.assign({},this._options.modal),{header:!0,headerClose:!0,title:"",content:"<div></div>",footer:`\n <button\n type="button"\n class="btn btn-sm btn-third"\n data-action="delete"\n data-dismiss="modal"\n >\n ${ae.labels.delete}\n </button>\n <button\n type="button"\n class="btn btn-sm btn-secondary"\n data-dismiss="modal"\n >\n ${ae.labels.cancel}\n </button>\n <button\n type="button"\n class="btn btn-sm btn-primary"\n data-action="save"\n data-dismiss="modal"\n >\n ${ae.labels.save}\n </button>\n `})),this._modal.on("dismiss",(e,t)=>{if("save"===t.target.dataset.action){const t=e.el.querySelector("form").elements,r=new Set(Array.from(t).filter(e=>"true"===e.dataset.multiple).map(e=>e.name));Array.from(t).forEach(e=>{const t=e.value,s=e.name;r.has(s)&&""===t||this._features.forEach(e=>{e.get(s)!==t&&e.set(s,t,!0)})}),this._features.forEach(e=>{e.changed(),Ve(e)}),this._dispatch("save",this._features)}else"delete"===t.target.dataset.action&&this._dispatch("delete",this._features)})}show(e){this._features=Array.isArray(e)?e:[e];const t=this._features.length>1,r=t?le("editElements",this._features.length):`${ae.labels.editElement} ${this._features[0].getId()} `,s=Re(this._features[0].get("_layerName_")),o=s.getDescribeFeatureType()._parsed,i=o.properties.filter(e=>e.name!==o.geomField);this._modal._html.body.innerHTML="",this._modal._html.body.append(et("div",{children:[t&&Je("div",{className:"ol-wfst--edit-modal-notice",children:le("multipleEditNotice",this._features.length)}),Je("form",{autocomplete:"false",children:i.flatMap(e=>{const r=e.name,o=this._features.map(e=>e.get(r)),i=Array.from(new Set(o.map(e=>String(null!=e?e:"")))),n=t&&i.length>1,a=n?null:i[0]||null;let l;switch(e.type){case"xsd:double":case"xsd:number":case"xsd:int":l="number";break;case"xsd:date":l="date";break;case"xsd:date-time":l="datetime";break;default:l="text"}let c=Je("input",{placeholder:n?ae.labels.multipleValues:"NULL",className:"ol-wfst--input-field-input"+(n?" ol-wfst--input-multiple":""),type:l,name:r,value:a,"data-multiple":n?"true":null});if(s.beforeShowFieldsModal){const t=s.beforeShowFieldsModal(e,a,c);if(!t)return[];c="string"==typeof t?(new DOMParser).parseFromString(t,"text/html").body.childNodes[0]:t}return n&&(c.dataset.multiple="true",c.classList.add("ol-wfst--input-multiple")),et("div",{className:"ol-wfst--input-field-container",children:[Je("label",{className:"ol-wfst--input-field-label",htmlFor:r,children:r}),c]})})})]})),this._modal._html.header.innerHTML=r,this._modal.show()}_dispatch(e,t){const r=new f.VectorSourceEvent(e,t[0]);r.features=t,this.dispatchEvent(r)}}const gt=[null,"http://www.opengis.net/fes/2.0","http://www.opengis.net/ows/1.1","http://www.opengis.net/wfs/2.0"],yt=I.makeStructureNS(gt,{ServiceIdentification:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},vt,e,t)}),ServiceProvider:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},_t,e,t)}),OperationsMetadata:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},wt,e,t)}),FeatureTypeList:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Ct,e,t)}),Filter_Capabilities:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Nt,e,t)})});const vt=I.makeStructureNS(gt,{Title:I.makeObjectPropertySetter(G.readString),Abstract:I.makeObjectPropertySetter(G.readString),Keywords:I.makeObjectPropertySetter(Jt),ServiceType:I.makeObjectPropertySetter(G.readString),ServiceTypeVersion:I.makeObjectPropertySetter(G.readString),Fees:I.makeObjectPropertySetter(G.readString),AccessConstraints:I.makeObjectPropertySetter(G.readString)}),_t=I.makeStructureNS(gt,{ProviderName:I.makeObjectPropertySetter(G.readString),ServiceContact:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},bt,e,t)})}),wt=I.makeStructureNS(gt,{Operation:I.makeObjectPropertyPusher(function(e,t){const r=function(e,t){return I.pushParseAndPop({},kt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return}),Constraint:I.makeObjectPropertyPusher(Yt)}),bt=I.makeStructureNS(gt,{IndividualName:I.makeObjectPropertySetter(G.readString),PositionName:I.makeObjectPropertySetter(G.readString),ContactInfo:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},St,e,t)})}),St=I.makeStructureNS(gt,{Phone:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Et,e,t)}),Address:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Ft,e,t)})}),Et=I.makeStructureNS(gt,{Voice:I.makeObjectPropertySetter(G.readString),Facsimile:I.makeObjectPropertySetter(G.readString)}),Ft=I.makeStructureNS(gt,{DeliveryPoint:I.makeObjectPropertySetter(G.readString),City:I.makeObjectPropertySetter(G.readString),AdministrativeArea:I.makeObjectPropertySetter(G.readString),PostalCode:I.makeObjectPropertySetter(G.readString),Country:I.makeObjectPropertySetter(G.readString),ElectronicMailAddress:I.makeObjectPropertySetter(G.readString)}),Ct=I.makeStructureNS(gt,{FeatureType:I.makeArrayPusher(function(e,t){return I.pushParseAndPop({},Pt,e,t)})}),Pt=I.makeStructureNS(gt,{Name:I.makeObjectPropertySetter(G.readString),Title:I.makeObjectPropertySetter(G.readString),Abstract:I.makeObjectPropertySetter(G.readString),Keywords:I.makeObjectPropertySetter(Jt),DefaultCRS:I.makeObjectPropertySetter(G.readString),WGS84BoundingBox:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Mt,e,t)}),MetadataURL:I.makeObjectPropertySetter(D.readHref)}),kt=I.makeStructureNS(gt,{DCP:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},jt,e,t)}),Parameter:I.makeObjectPropertyPusher(function(e,t){const r=function(e,t){return I.pushParseAndPop({},Ot,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return})}),Ot=I.makeStructureNS(gt,{AllowedValues:I.makeObjectPropertySetter(er)}),Lt=I.makeStructureNS(gt,{NoValues:I.makeObjectPropertySetter(G.readString),DefaultValue:I.makeObjectPropertySetter(G.readString),AllowedValues:I.makeObjectPropertySetter(er)}),At=I.makeStructureNS(gt,{Get:I.makeObjectPropertySetter(D.readHref),Post:I.makeObjectPropertySetter(D.readHref)}),Mt=I.makeStructureNS(gt,{LowerCorner:I.makeObjectPropertySetter(tr),UpperCorner:I.makeObjectPropertySetter(tr)}),jt=I.makeStructureNS(gt,{HTTP:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},At,e,t)})}),Tt=I.makeStructureNS(gt,{Keyword:I.makeArrayPusher(G.readString)}),xt=I.makeStructureNS(gt,{Value:I.makeArrayPusher(G.readString)}),Nt=I.makeStructureNS(gt,{Conformance:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},It,e,t)}),Id_Capabilities:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Dt,e,t)}),Scalar_Capabilities:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Gt,e,t)}),Spatial_Capabilities:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},qt,e,t)}),Temporal_Capabilities:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop({},Rt,e,t)}),Functions:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Vt,e,t)})}),It=I.makeStructureNS(gt,{Constraint:I.makeObjectPropertyPusher(Yt)}),Dt=I.makeStructureNS(gt,{ResourceIdentifier:I.makeObjectPropertySetter(function(e){return{name:e.getAttribute("name")}})}),Gt=I.makeStructureNS(gt,{LogicalOperators:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],zt,e,t)}),ComparisonOperators:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],$t,e,t)})}),qt=I.makeStructureNS(gt,{GeometryOperands:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Wt,e,t)}),SpatialOperators:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Qt,e,t)})}),Rt=I.makeStructureNS(gt,{TemporalOperands:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Kt,e,t)}),TemporalOperators:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Zt,e,t)})}),Vt=I.makeStructureNS(gt,{Function:I.makeArrayPusher(function(e,t){const r=function(e,t){return I.pushParseAndPop({},Bt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return})}),Bt=I.makeStructureNS(gt,{Returns:I.makeObjectPropertySetter(G.readString),Arguments:I.makeObjectPropertySetter(function(e,t){return I.pushParseAndPop([],Ht,e,t)})}),Ht=I.makeStructureNS(gt,{Argument:I.makeArrayPusher(function(e,t){const r=function(e,t){return I.pushParseAndPop({},Ut,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r;return})}),Ut=I.makeStructureNS(gt,{Type:I.makeObjectPropertySetter(G.readString)}),zt=I.makeStructureNS(gt,{LogicalOperator:I.makeArrayPusher(Xt)}),$t=I.makeStructureNS(gt,{ComparisonOperator:I.makeArrayPusher(Xt)}),Wt=I.makeStructureNS(gt,{GeometryOperand:I.makeArrayPusher(Xt)}),Qt=I.makeStructureNS(gt,{SpatialOperator:I.makeArrayPusher(Xt)}),Kt=I.makeStructureNS(gt,{TemporalOperand:I.makeArrayPusher(Xt)}),Zt=I.makeStructureNS(gt,{TemporalOperator:I.makeArrayPusher(Xt)});function Yt(e,t){const r=function(e,t){return I.pushParseAndPop({},Lt,e,t)}(e,t);if(r)return r.name=e.getAttribute("name"),r}function Xt(e){return e.getAttribute("name")||void 0}function Jt(e,t){return I.pushParseAndPop([],Tt,e,t)}function er(e,t){return I.pushParseAndPop([],xt,e,t)}function tr(e){const t=I.getAllTextContent(e,!1).split(" ");if(t.length)return t.map(e=>Number(e))}const rr=new class extends N{constructor(){super(),this.version=void 0}readFromNode(e){this.version=e.getAttribute("version").trim();const t=I.pushParseAndPop({version:this.version},yt,e,[]);return t||null}};var sr;!function(e){e.CAPABILITIES="capabilities",e.PARSED_CAPABILITIES="parsedCapabilities",e.URL="url",e.HEADERS="headers",e.CREDENTIALS="credentials",e.ADVANCED="advanced",e.HASTRASNACTION="hasTransaction",e.HASLOCKFEATURE="hasLockFeature",e.HASDESCRIBEFEATURETYPE="hasDescribeFeatureType",e.USELOCKFEATURE="useLockFeature",e.ISLOADED="isLoaded"}(sr||(sr={}));class or extends q{constructor(e=null,t=null,r){super({id:null!=r?r:e?e.getId():void 0,position:t||(e?w.getCenter(e.getGeometry().getExtent()):void 0),positioning:"center-center",offset:[0,-40],stopEvent:!0,element:et("div",{children:[Je("div",{className:"ol-wfst--edit-button-cnt",onClick:()=>{this.dispatchEvent("editFields")},children:Je("button",{className:"ol-wfst--edit-button",type:"button",title:ae.labels.editFields,children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="448" height="448" viewBox="0 0 448 448">\r\n <path d="M222 296l29-29-38-38-29 29v14h24v24h14zM332 116c-2.25-2.25-6-2-8.25 0.25l-87.5 87.5c-2.25 2.25-2.5 6-0.25 8.25s6 2 8.25-0.25l87.5-87.5c2.25-2.25 2.5-6 0.25-8.25zM352 264.5v47.5c0 39.75-32.25 72-72 72h-208c-39.75 0-72-32.25-72-72v-208c0-39.75 32.25-72 72-72h208c10 0 20 2 29.25 6.25 2.25 1 4 3.25 4.5 5.75 0.5 2.75-0.25 5.25-2.25 7.25l-12.25 12.25c-2.25 2.25-5.25 3-8 2-3.75-1-7.5-1.5-11.25-1.5h-208c-22 0-40 18-40 40v208c0 22 18 40 40 40h208c22 0 40-18 40-40v-31.5c0-2 0.75-4 2.25-5.5l16-16c2.5-2.5 5.75-3 8.75-1.75s5 4 5 7.25zM328 80l72 72-168 168h-72v-72zM439 113l-23 23-72-72 23-23c9.25-9.25 24.75-9.25 34 0l38 38c9.25 9.25 9.25 24.75 0 34z"></path>\r\n</svg>',"image/svg+xml").firstChild})}),Je("div",{className:"ol-wfst--edit-button-cnt",onClick:()=>{this.dispatchEvent("editGeom")},children:Je("button",{class:"ol-wfst--edit-button",type:"button",title:ae.labels.editGeom,children:(new DOMParser).parseFromString(' <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="541" height="512" viewBox="0 0 541 512">\r\n <path fill="#000" d="M103.306 228.483l129.493-125.249c-17.662-4.272-31.226-18.148-34.98-35.663l-0.055-0.307-129.852 125.248c17.812 4.15 31.53 18.061 35.339 35.662l0.056 0.308z"></path>\r\n <path fill="#000" d="M459.052 393.010c-13.486-8.329-22.346-23.018-22.373-39.779v-0.004c-0.053-0.817-0.082-1.772-0.082-2.733s0.030-1.916 0.089-2.863l-0.007 0.13-149.852 71.94c9.598 8.565 15.611 20.969 15.611 34.779 0 0.014 0 0.029 0 0.043v-0.002c-0.048 5.164-0.94 10.104-2.544 14.711l0.098-0.322z"></path>\r\n <path fill="#000" d="M290.207 57.553c-0.009 15.55-7.606 29.324-19.289 37.819l-0.135 0.093 118.054 46.69c-0.216-1.608-0.346-3.48-0.36-5.379v-0.017c0.033-16.948 9.077-31.778 22.596-39.953l0.209-0.118-122.298-48.056c0.659 2.633 1.098 5.693 1.221 8.834l0.002 0.087z"></path>\r\n <path fill="#000" d="M241.36 410.132l-138.629-160.067c-4.734 17.421-18.861 30.61-36.472 33.911l-0.29 0.045 143.881 166.255c1.668-18.735 14.197-34.162 31.183-40.044l0.327-0.099z"></path>\r\n <path fill="#000" d="M243.446 115.105c-31.785 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.785 0 57.552 25.767 57.552 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM243.446 21.582c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.104-35.97-35.97-35.97v0z"></path>\r\n <path fill="#000" d="M483.224 410.78c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.552 25.767 57.552 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM483.224 317.257c-19.866 0-35.97 16.104-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z"></path>\r\n <path fill="#000" d="M57.553 295.531c-31.785 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.785 0 57.553 25.767 57.553 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM57.553 202.008c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c-0.041-19.835-16.13-35.898-35.97-35.898 0 0 0 0 0 0v0z"></path>\r\n <path fill="#000" d="M256.036 512.072c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.553 25.767 57.553 57.553v0c0 31.786-25.767 57.553-57.553 57.553v0zM256.036 418.55c-19.866 0-35.97 16.104-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z"></path>\r\n <path fill="#000" d="M435.24 194.239c-31.786 0-57.553-25.767-57.553-57.553s25.767-57.553 57.553-57.553c31.786 0 57.553 25.767 57.553 57.553v0c0 31.785-25.767 57.553-57.553 57.553v0zM435.24 100.716c-19.866 0-35.97 16.105-35.97 35.97s16.105 35.97 35.97 35.97c19.866 0 35.97-16.105 35.97-35.97v0c0-19.866-16.105-35.97-35.97-35.97v0z"></path>\r\n</svg>',"image/svg+xml").firstChild})})]})})}}class ir extends q{constructor(e,t,r,s=0,o){super({position:t,positioning:"center-center",stopEvent:!0,element:Je("div",{className:"ol-wfst--extend-button-cnt",children:Je("button",{className:"ol-wfst--extend-button",type:"button",title:ae.labels.continueLine,onClick:()=>{o(r)},children:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>\r\n</svg>',"image/svg+xml").firstChild})})}),this.feature=e,this.side=r,this.component=s}}class nr extends q{constructor(e,t,r){const s=r.getDescribeFeatureType(),o=null==s?void 0:s._parsed,i=(null==o?void 0:o.properties)||[],n=null==o?void 0:o.geomField,a=i.filter(e=>e.name!==n).map(t=>{let r=e.get(t.name);return null==r?r="":"object"==typeof r&&(r=JSON.stringify(r)),et("div",{className:"ol-wfst--query-popup-row",children:[Je("span",{className:"ol-wfst--query-popup-key",children:t.name}),Je("span",{className:"ol-wfst--query-popup-value",children:String(r)})]})});super({id:"ol-wfst--query-overlay",position:t||w.getCenter(e.getGeometry().getExtent()),positioning:"bottom-center",offset:[0,-14],stopEvent:!0,autoPan:!0,element:et("div",{className:"ol-wfst--query-popup",children:[et("div",{className:"ol-wfst--query-popup-head",children:[Je("div",{className:"ol-wfst--query-popup-title",children:ae.labels.featureInfo}),Je("button",{className:"ol-wfst--query-popup-close",type:"button",title:ae.labels.close,onClick:()=>{this.dispatchEvent("close")},children:"×"})]}),et("div",{className:"ol-wfst--query-popup-subtitle",children:[Je("b",{children:r.get(ze.LABEL)}),Je("i",{children:String(e.getId())})]}),Je("div",{className:"ol-wfst--query-popup-body",children:a})]})})}}const ar=document.createElement("div");class lr extends s{constructor(e){super({target:null,element:ar,render:()=>{this._map||this._init()}}),this._initialized=!1,this._queryOverlayId="ol-wfst--query-overlay",this._shiftPressed=!1,this._hoveredFeature=null,this._keySelectBound=!1,this._editFeaturesOriginal={},this._multiOverlayId="ol-wfst--multi-edit-overlay",this._extendOverlays=[],((e="en",t=null)=>{e in ne&&(ae=ne[e]),t&&(ae=Object.assign(Object.assign({},ae),t))})(e.language,e.i18n);const t={layers:null,evtType:"singleclick",active:!0,showControl:!0,fullscreen:!0,language:"en",uploadFormats:".geojson,.json,.kml",processUpload:null,modal:{animateClass:"fade",animateInClass:"show",transition:300,backdropTransition:150,templates:{dialog:'<div class="modal-dialog modal-dialog-centered"></div>',headerClose:`<button type="button" class="btn-close" data-dismiss="modal" aria-label="${ae.labels.close}"><span aria-hidden="true">×</span></button>`}}};this._options=dt(t,e),De(this._options.layers[0]),this._controlWidgetToolsDiv=ar,this._controlWidgetToolsDiv.className="ol-wfst--tools-control",this._uploads=new ct(this._options),this._editFields=new ft(this._options)}getLayers(){return Object.values(qe())}getLayerByName(e=""){const t=qe();return e&&e in t?t[e]:null}async _initMapAndLayers(){try{const e=this._options.layers;if(e.length){let t=0,r=0;de();const s=[];e.forEach(o=>{o.isVisible(this._view)&&r++,o.on("layerRendered",()=>{t++,t>=r&&(this._initialized||(this.dispatchEvent("load"),this._initialized=!0),de(!1))}),o.on("change:describeFeatureType",()=>{if(this._options.showControl&&e.length>1){const e=this._layersControl.addLayerEl(o);o.on("change:isVisible",()=>{const t="ol-wfst--layer-not-visible";o.isVisibleByZoom()?e.classList.remove(t):e.classList.add(t)})}o.set(ze.ISVISIBLE,this._currentZoom>o.getMinZoom()),this.dispatchEvent(new cr({type:"describeFeatureType",layer:o,data:o.getDescribeFeatureType()}))}),s.push(o._init()),this._map.addLayer(o),function(e){Object.assign(Ne,e)}({[o.get(ze.NAME)]:o})}),this._createMapElements(this._options.showControl,this._options.active),await Promise.race([Promise.all(s),new Promise(e=>setTimeout(e,2e4))]),de(!1)}}catch(e){de(!1),oe(e.message,e)}}_init(){var e,t;this._map=super.getMap(),this._view=this._map.getView(),this._viewport=this._map.getViewport(),e=this._map,Ce=e,this._uploads.on("addedFeatures",({features:e})=>{Ge().insertFeatures(e)}),this._uploads.on("loadedFeatures",({features:e})=>{this.activateEditMode();const t=lt().getSource();t.addFeatures(e),this._view.fit(t.getExtent(),{size:this._map.getSize(),maxZoom:21,padding:[100,100,100,100]})}),this._editFields.on("save",async({feature:e,features:t})=>{const r=t||[e];await this._transactEditList(r)&&Array.from(r).forEach(e=>this._collectionModify.remove(e))}),this._editFields.on("delete",({features:e})=>{this._deleteFeature(e,!0)}),this._addMapEvents(),this._addMiddleButtonPan(),t=this._options.modal,te=t,this._layersWidgetDiv=document.createElement("div"),this._layersWidgetDiv.className="ol-wfst--layers-control",this._layersWidgetDiv.append((ce=document.createElement("div"),ce.className="ol-wfst--tools-control--loading",ce.setAttribute("role","progressbar"),ce.setAttribute("aria-label",ae.labels.loading),ce)),this._map.addControl(new s({element:this._layersWidgetDiv})),this._initMapAndLayers()}async _createMapElements(e,t){this._prepareEditLayer(),this._addInteractions(),this._addInteractionHandlers(),this._prepareHighlightLayer(),this._addQueryInteraction(),e&&(this._addMapControl(),this._options.fullscreen&&this._map.addControl(new o({className:"ol-wfst--fullscreen",tipLabel:ae.labels.fullscreen,label:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path>\r\n</svg>',"image/svg+xml").firstChild,labelActive:(new DOMParser).parseFromString('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\r\n <path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"></path>\r\n</svg>',"image/svg+xml").firstChild}))),this.activateEditMode(t)}_addInteractions(){const e=()=>{this._collectionModify=new p,this._interactionWfsSelect=new l({hitTolerance:10,style:e=>mt(e),toggleCondition:y.shiftKeyOnly,filter:(e,t)=>je()!==Oe.Edit&&je()!==Oe.Query&&t&&t instanceof We&&t===Ge()}),this._map.addInteraction(this._interactionWfsSelect),this._interactionWfsSelect.on("select",({selected:e,deselected:t,mapBrowserEvent:r})=>{const s=r.coordinate;this._clearHoverState(),je()!==Oe.Query&&(e.length&&(e.forEach(e=>{if(!He(e)){const t=this._interactionWfsSelect.getLayer(e);t.getSource().removeFeature(e),this._addFeatureToEditMode(e,s,t.get(ze.NAME))}}),this._lockSelectedFeatures()),t.length&&je()!==Oe.Edit&&t.forEach(e=>{this._collectionModify.remove(e)}))})},t=()=>{this._interactionSelectModify=new l({style:e=>mt(e),layers:[lt()],toggleCondition:y.shiftKeyOnly,removeCondition:()=>je()===Oe.Edit}),this._map.addInteraction(this._interactionSelectModify),this._interactionSelectModify.on("select",({selected:e,mapBrowserEvent:t})=>{if(!e.length||!t||y.shiftKeyOnly(t))return;const r=new Set(e);Array.from(this._collectionModify.getArray()).forEach(e=>{r.has(e)||this._collectionModify.remove(e)})}),this._collectionModify=this._interactionSelectModify.getFeatures(),this._keyClickWms=this._map.on(this._options.evtType||"singleclick",async e=>{if(!this._map.hasFeatureAtPixel(e.pixel)&&je()!==Oe.Edit&&je()!==Oe.Query){const t=Ge();if(!t.getVisible()||!t.isVisibleByZoom()||t instanceof We)return;const r=await t._getFeaturesByClickEvent(e);if(!(null==r?void 0:r.length))return;y.shiftKeyOnly(e)||Array.from(this._collectionModify.getArray()).forEach(e=>{this._collectionModify.remove(e)}),this._addFeatureToEditMode(r[0],e.coordinate,t.get(ze.NAME)),this._lockSelectedFeatures()}})};this._options.layers.find(e=>e instanceof We)&&e(),this._options.layers.find(e=>e instanceof Ye)&&t(),this._interactionModify=new a({style:e=>je()===Oe.Edit?ut(!0===e.get("existing")):void 0,features:this._collectionModify,condition:e=>y.primaryAction(e)&&je()===Oe.Edit}),this._map.addInteraction(this._interactionModify),this._interactionSnap=new c({source:lt().getSource()}),this._map.addInteraction(this._interactionSnap),this._addSelectionInteractions()}_addSelectionInteractions(){const s=new r({fill:new e({color:"rgba(255, 200, 0, 0.1)"}),stroke:new t({color:"#ffc800",width:2,lineDash:[6,4]})});this._interactionDragBox=new n({condition:e=>y.primaryAction(e)&&this._isSelectMode(Le.Box),className:"ol-wfst--dragbox"}),this._interactionDragBox.on("boxend",e=>{this._isSelectMode(Le.Box)&&(e.mapBrowserEvent.originalEvent.shiftKey||this._collectionModify.clear(),this._selectByGeometry(this._interactionDragBox.getGeometry()))}),this._map.addInteraction(this._interactionDragBox),this._interactionFreehandSelect=new i({type:Ee.Polygon,freehand:!0,stopClick:!0,style:s,condition:e=>y.primaryAction(e)&&this._isSelectMode(Le.Freehand)}),this._interactionFreehandSelect.on("drawend",e=>{if(!this._isSelectMode(Le.Freehand))return;const t=e.feature.getGeometry(),r=t?t.getCoordinates()[0]:[];!r.length||r.length<4||t.getArea()<=0||(this._shiftPressed||this._collectionModify.clear(),this._selectByGeometry(t))}),this._map.addInteraction(this._interactionFreehandSelect),this._refreshSelectionInteractions()}_isSelectMode(e){return null===je()&&Te()===e}_refreshSelectionInteractions(){const e=null===je();this._interactionDragBox&&this._interactionDragBox.setActive(e&&Te()===Le.Box),this._interactionFreehandSelect&&this._interactionFreehandSelect.setActive(e&&Te()===Le.Freehand)}async _selectByGeometry(e){const t=Ge();if(!t||!t.getVisible()||!t.isVisibleByZoom())return void oe(ae.errors.layerNotVisible);let r;if(t instanceof We){const s=t.getSource().getFeaturesInExtent(e.getExtent());r=Te()===Le.Freehand?s.filter(t=>{const r=t.getGeometry();if(!r)return!1;const s=r.getFlatCoordinates(),o=r.getStride();for(let t=0;t<s.length;t+=o)if(e.intersectsCoordinate([s[t],s[t+1]]))return!0;return!1}):s}else t instanceof Ye&&(r=await t._getFeaturesInGeometry(e));r&&this._selectFeatures(r)}_selectFeatures(e){if(!e||!e.length)return;const t=Ge(),r=t.get(ze.NAME),s=new Set(this._collectionModify.getArray().map(e=>e.getId()));e.forEach(e=>{He(e)||s.has(e.getId())||(t instanceof We&&t.getSource().hasFeature(e)&&t.getSource().removeFeature(e),this._addFeatureToEditMode(e,null,r))}),this._lockSelectedFeatures()}_prepareEditLayer(){this._map.addLayer(lt())}_prepareHighlightLayer(){this._highlightSource=new f,this._highlightLayer=new m({source:this._highlightSource,style:e=>[new A.Style({image:new A.Circle({radius:6,fill:new A.Fill({color:"rgba(0, 170, 255, 0.4)"}),stroke:new A.Stroke({color:"#0066cc",width:2})}),stroke:new A.Stroke({color:"#00aaff",width:4}),fill:new A.Fill({color:"rgba(0, 170, 255, 0.3)"})})],zIndex:100}),this._map.addLayer(this._highlightLayer)}_addQueryInteraction(){this._keyClickQuery=this._map.on(this._options.evtType||"singleclick",async e=>{if(je()!==Oe.Query)return;const t=Ge();if(!t.getVisible()||!t.isVisibleByZoom())return;let r=null;if(t instanceof We){const s=this._map.getFeaturesAtPixel(e.pixel,{hitTolerance:10,layerFilter:e=>e===t});s&&s.length&&(r=s[0])}else if(t instanceof Ye){const s=await t._getFeaturesByClickEvent(e);(null==s?void 0:s.length)&&(r=s[0])}r?this._showQueryResult(r,t,e.coordinate):this._clearQueryResult()})}_showQueryResult(e,t,r){this._clearQueryResult(),this._highlightSource.addFeature(e),this._queryOverlay=new nr(e,r,t),this._queryOverlay.on("close",()=>{this._clearQueryResult()}),this._map.addOverlay(this._queryOverlay)}_removeQueryOverlay(){if(this._queryOverlay)return this._map.removeOverlay(this._queryOverlay),void(this._queryOverlay=null);const e=this._map.getOverlayById(this._queryOverlayId);e&&this._map.removeOverlay(e)}_clearQueryResult(){var e;null===(e=this._highlightSource)||void 0===e||e.clear(),this._removeQueryOverlay()}activateQueryMode(e=!0){var t,r;e?(this._interactionDraw&&(this._map.removeInteraction(this._interactionDraw),this._viewport.classList.remove("draw-mode")),rt(),it(),(()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-query");e&&e.classList.add("wfst--active")})(),this._clearHoverState(),Me(Oe.Query),this._interactionSelectModify&&this._interactionSelectModify.setActive(!1),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(!1),null===(t=this._interactionModify)||void 0===t||t.setActive(!1),this._syncExtendLineOverlays(),this._refreshSelectionInteractions()):(Me(null),st(),ot(Te()),this._interactionSelectModify&&this._interactionSelectModify.setActive(!0),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(!0),null===(r=this._interactionModify)||void 0===r||r.setActive(!0),this._refreshSelectionInteractions()),this._clearQueryResult()}_addMapEvents(){(()=>{document.addEventListener("keydown",({key:e})=>{if(!document.querySelector("input:focus")&&"Delete"===e){const e=this._collectionModify.getArray();e.length&&this._deleteFeature(e,!0)}})})();this._map.on("pointermove",e=>{if(e.dragging)return;if(je()===Oe.Edit)return this._clearHoverState(),void this._updateEditCursor(e);if(null!==je())return void this._clearHoverState();const t=Ge();if(!(t&&t.getVisible()&&t.isVisibleByZoom()&&t instanceof We))return void this._clearHoverState();const r=this._map.getFeaturesAtPixel(e.pixel,{hitTolerance:10,layerFilter:e=>e===t});if(r&&r.length){const e=r[0];e!==this._hoveredFeature&&(this._clearHoverState(),this._hoveredFeature=e,this._hoveredFeature.setStyle(e=>mt(e,!0))),"pointer"!==this._viewport.style.cursor&&(this._viewport.style.cursor="pointer")}else this._clearHoverState()}),this._viewport.addEventListener("pointerdown",e=>{this._shiftPressed=e.shiftKey}),this._viewport.addEventListener("pointerdown",()=>this._clearHoverState()),this._viewport.addEventListener("pointerleave",()=>this._clearHoverState(),{once:!1}),this._map.on("moveend",()=>{if(this._currentZoom=this._view.getZoom(),this._currentZoom!==this._lastZoom){const e=qe();Object.keys(e).forEach(t=>{const r=e[t];this._currentZoom>r.getMinZoom()?r.get(ze.ISVISIBLE)||r.set(ze.ISVISIBLE,!0):r.get(ze.ISVISIBLE)&&r.set(ze.ISVISIBLE,!1)}),this._lastZoom=this._currentZoom}})}_addMiddleButtonPan(){const e=this._viewport;let t=!1,r=0,s=0;e.addEventListener("pointerdown",o=>{(e=>"mouse"===e.pointerType&&1===e.button)(o)&&(o.preventDefault(),o.stopPropagation(),e.setPointerCapture(o.pointerId),t=!0,r=o.clientX,s=o.clientY,this._view.getAnimating()&&this._view.cancelAnimations())},!0),e.addEventListener("pointermove",e=>{if(!t)return;e.preventDefault();const o=[r-e.clientX,e.clientY-s];r=e.clientX,s=e.clientY;const i=this._view.getResolution(),n=this._view.getRotation(),a=Math.cos(n),l=Math.sin(n),c=(o[0]*a-o[1]*l)*i,d=(o[1]*a+o[0]*l)*i;this._view.adjustCenterInternal([c,d])});const o=()=>{t&&(t=!1)};e.addEventListener("pointerup",o),e.addEventListener("pointercancel",o)}_addInteractionHandlers(){this._interactionModify.on("modifyend",e=>{e.features.forEach(e=>{Ve(e)}),super.dispatchEvent(e)}),this._interactionModify.on("modifystart",e=>{super.dispatchEvent(e)}),this._interactionModify.on("modify",()=>{this._updateExtendOverlayPositions()}),this._onDeselectFeatureEvent(),this._onRemoveFeatureEvent()}_addMapControl(){this._layersControl=new nt(this._options.showUpload?this._uploads:null,this._options.uploadFormats),this._layersControl.on("drawMode",()=>{if(je()===Oe.Query&&this.activateQueryMode(!1),je()===Oe.Draw)rt(),this.activateEditMode();else{Ge().isVisibleByZoom()?this.activateDrawMode(Ge()):oe(ae.errors.layerNotVisible)}}),this._layersControl.on("changeGeom",()=>{je()===Oe.Draw&&this.activateDrawMode(Ge())}),this._layersControl.on("changeLayer",()=>{je()===Oe.Draw&&this.activateDrawMode(Ge())}),[["selectModeSingle",Le.Single],["selectModeBox",Le.Box],["selectModeFreehand",Le.Freehand]].forEach(([e,t])=>{this._layersControl.on(e,()=>{je()===Oe.Draw&&(rt(),this.activateEditMode()),je()===Oe.Query&&this.activateQueryMode(!1),Ae=t,ot(t),this._refreshSelectionInteractions()})}),this._layersControl.on("queryMode",()=>{this.activateQueryMode(je()!==Oe.Query)});const e=this._layersControl.render();this._selectDraw=e.querySelector(".wfst--tools-control--select-draw"),this._controlWidgetToolsDiv.append(e.querySelector(".wfst--tools-control--head")),this._options.layers.length>1&&this._layersWidgetDiv.append(e.querySelector(".wfst--tools-control--select-layers"))}_deselectEditFeature(e){this._removeOverlayHelper(e)}_restoreFeatureToLayer(e,t){t=t||e.get("_layerName_");const r=qe()[t];e.setStyle(void 0),r.getSource().addFeature(e)}_removeFeatureFromTmpLayer(e){lt().getSource().removeFeature(e)}_onDeselectFeatureEvent(){const e=e=>{const t=e.get("_layerName_"),r=this._options.layers.find(e=>e.get(ze.NAME)===t);r instanceof We&&this._interactionWfsSelect.getFeatures().remove(e),He(e)?r.transactFeatures(Fe.Update,e):(r instanceof We&&this._restoreFeatureToLayer(e,t),this._removeFeatureFromTmpLayer(e))};this._keySelectBound||(this._keySelectBound=!0,this._keySelect&&v.unByKey(this._keySelect),this._keySelect=this._collectionModify.on("remove",t=>{const r=t.element;this._deselectEditFeature(r),this._syncEditOverlays(),e(r),this._editModeOff()}))}_onRemoveFeatureEvent(){this._keyRemove=lt().getSource().on("removefeature",e=>{const t=e.feature;if(!t.get("_delete_"))return;this._keySelect&&(v.unByKey(this._keySelect),this._keySelectBound=!1);const r=t.get("_layerName_");this.getLayerByName(r).transactFeatures(Fe.Delete,t),this._deselectEditFeature(t),this._editModeOff(),this._keySelect&&setTimeout(()=>{this._onDeselectFeatureEvent()},150)})}_editModeOn(e){(e=Array.isArray(e)?e:[e]).forEach(e=>{this._editFeaturesOriginal[String(e.getId())]=e.clone()}),Me(Oe.Edit),this._syncExtendLineOverlays(),lt().getSource().changed(),this._refreshSelectionInteractions();const t=this._map.getOverlayById(this._multiOverlayId);t&&this._map.removeOverlay(t),e.forEach(e=>{this._removeOverlayHelper(e)}),this._controlApplyDiscardChanges=new ht(e),this._controlApplyDiscardChanges.on("cancel",e=>{const t=e.features;Array.from(t).forEach(e=>{const t=this._editFeaturesOriginal[String(e.getId())];t&&e.setGeometry(t.getGeometry()),Be(e),this._collectionModify.remove(e)})}),this._controlApplyDiscardChanges.on("apply",async e=>{de();const t=e.features;await this._transactEditList(t)&&Array.from(t).forEach(e=>{this._collectionModify.remove(e)})}),this._controlApplyDiscardChanges.on("delete",e=>{this._deleteFeature(e.features,!0)}),this._map.addControl(this._controlApplyDiscardChanges)}_editModeOff(){Me(null),this._destroyExtendLineOverlays(),this._map.removeControl(this._controlApplyDiscardChanges),this._refreshSelectionInteractions()}_getLineEndPoints(e){const t=[],r=(e,s)=>{e instanceof d||e instanceof h?((e,r)=>{e instanceof d?e.getCoordinates().length&&t.push({first:e.getFirstCoordinate(),last:e.getLastCoordinate(),line:e,lineIndex:0,collection:r}):e.getCoordinates().forEach((s,o)=>{s.length&&t.push({first:s[0],last:s[s.length-1],line:e,lineIndex:o,collection:r})})})(e,s):e instanceof u&&e.getGeometriesArray().forEach(t=>{r(t,e)})};return r(e),t}_destroyExtendLineOverlays(){this._extendDraw&&this._finishExtendDraw(),this._extendOverlays.forEach(e=>{this._map.removeOverlay(e)}),this._extendOverlays=[]}_syncExtendLineOverlays(){if(je()!==Oe.Edit||!this._collectionModify)return void this._destroyExtendLineOverlays();const e=this._collectionModify.getArray(),t=[];this._extendOverlays.forEach(r=>{(!e.includes(r.feature)||r.component>=this._getLineEndPoints(r.feature.getGeometry()).length)&&(this._map.removeOverlay(r),t.push(r))}),this._extendOverlays=this._extendOverlays.filter(e=>!t.includes(e)),e.forEach(e=>{this._getLineEndPoints(e.getGeometry()).forEach(({first:t,last:r},s)=>{["start","end"].forEach(o=>{const i=this._extendOverlays.some(t=>t.feature===e&&t.component===s&&t.side===o);if(i)return;const n=new ir(e,"start"===o?t:r,o,s,()=>this._startExtendLineDraw(e,o,s));this._extendOverlays.push(n),this._map.addOverlay(n)})})}),this._updateExtendOverlayPositions()}_updateExtendOverlayPositions(){this._extendOverlays.forEach(e=>{const t=this._getLineEndPoints(e.feature.getGeometry())[e.component];t&&e.setPosition("start"===e.side?t.first:t.last)})}_startExtendLineDraw(e,t,r=0){var s;if(this._extendDraw||je()!==Oe.Edit)return;const o=this._getLineEndPoints(e.getGeometry());if(!o.length||r>=o.length)return;const n="start"===t?o[r].first:o[r].last;null===(s=this._interactionModify)||void 0===s||s.setActive(!1),this._interactionSelectModify&&this._interactionSelectModify.setActive(!1),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(!1),this._extendDraw=new i({type:Ee.LineString,style:e=>mt(e),stopClick:!0}),this._extendDraw.on("drawend",s=>{this._mergeExtendLine(e,t,s.feature,r)}),this._extendDraw.on("drawabort",()=>{this._finishExtendDraw()}),this._map.addInteraction(this._extendDraw),this._extendDraw.appendCoordinates([n])}_mergeExtendLine(e,t,r,s=0){const o=this._getLineEndPoints(e.getGeometry())[s];if(!o)return void this._finishExtendDraw();const i=r.getGeometry().getCoordinates(),{line:n,lineIndex:a}=o;if(n instanceof d){const e=n.getCoordinates();"start"===t?n.setCoordinates([...i.slice(1).reverse(),...e]):n.setCoordinates([...e,...i.slice(1)])}else if(n instanceof h){const e=n.getCoordinates();e[a]="start"===t?[...i.slice(1).reverse(),...e[a]]:[...e[a],...i.slice(1)],n.setCoordinates(e)}i.length>1&&Ve(e),this._finishExtendDraw(),this._syncExtendLineOverlays()}_finishExtendDraw(){var e;this._extendDraw&&(this._map.removeInteraction(this._extendDraw),this._extendDraw=null),je()===Oe.Edit&&(null===(e=this._interactionModify)||void 0===e||e.setActive(!0),this._interactionSelectModify&&this._interactionSelectModify.setActive(!0),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(!0))}async _transactEditList(e){if(!e.length)return!0;const t={};e.forEach(e=>{const r=e.get("_layerName_");t[r]||(t[r]=[]),t[r].push(e)});for(const e of Object.keys(t)){const r=this._options.layers.find(t=>t.get(ze.NAME)===e);if(!r)continue;let s;t[e].forEach(e=>{Be(e)});try{s=await r.transactFeatures(Fe.Update,t[e])}catch(e){return!1}if(!1===s)return!1}return!0}_deleteFeature(e,t){const r=()=>{var t;const r=Array.isArray(e)?e:[e];r.forEach(e=>{e.set("_delete_",!0,!0),lt().getSource().removeFeature(e)}),this._collectionModify.clear(),this._editModeOff(),this._syncEditOverlays();const s=null===(t=r[0])||void 0===t?void 0:t.get("_layerName_");(s?this._options.layers.find(e=>e.get(ze.NAME)===s):null)instanceof We&&r.forEach(e=>{this._interactionWfsSelect.getFeatures().remove(e)})};if(t){const t=Array.isArray(e)?e:[e],s=t.length>1?le("confirmDeleteElements",t.length):ae.labels.confirmDelete;ee.confirm(s,Object.assign({},this._options.modal)).show().once("dismiss",function(e,t,s){s&&s.value&&r()})}else r()}_addFeatureToEditMode(e,t=null,r=null){r&&e.set("_layerName_",r),t&&e.set("_editOverlayCoord_",t);(e?e.getProperties():"")&&e.getGeometry()&&(lt().getSource().addFeature(e),this._collectionModify.push(e),this._syncEditOverlays())}async _lockSelectedFeatures(){const e={};this._collectionModify.getArray().forEach(t=>{const r=t.get("_layerName_");r&&(e[r]||(e[r]=[])).push(t.getId())});const t=[];Object.keys(e).forEach(r=>{const s=Re(r);s&&t.push(s.maybeLockFeature(e[r]))}),t.length&&await Promise.all(t)}_createEditOverlay(e=null,t=null,r=null){t=t||(e?e.get("_editOverlayCoord_"):null);const s=new or(e,t,r);s.on("editFields",()=>{this._editFields.show(this._collectionModify.getArray())}),s.on("editGeom",()=>{this._editModeOn(this._collectionModify.getArray())}),this._map.addOverlay(s)}_syncEditOverlays(){if(je()===Oe.Edit)return;const e=this._map.getOverlayById(this._multiOverlayId);e&&this._map.removeOverlay(e);const t=this._collectionModify.getArray();if(t.length>1){t.forEach(e=>{this._removeOverlayHelper(e)});const e=w.createEmpty();t.forEach(t=>{w.extend(e,t.getGeometry().getExtent())}),this._createEditOverlay(null,w.getCenter(e),this._multiOverlayId)}else if(1===t.length){const e=t[0],r=e.getId();r&&!this._map.getOverlayById(r)&&this._createEditOverlay(e)}}activateDrawMode(e){const t=e=>{this.activateEditMode(!1),this._interactionDraw&&this._map.removeInteraction(this._interactionDraw);const t=this._selectDraw.value;this._interactionDraw=new i({source:lt().getSource(),type:t,style:e=>mt(e),stopClick:!0}),this._map.addInteraction(this._interactionDraw),this._interactionDraw.on("drawstart",e=>{super.dispatchEvent(e)}),this._interactionDraw.on("drawend",t=>{const r=t.feature;e.transactFeatures(Fe.Insert,r),super.dispatchEvent(t)})};if(this._interactionDraw||e){if(e){if(!e.getVisible())return;this._clearHoverState(),(()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-draw");e&&e.classList.add("wfst--active")})(),it(),this._viewport.classList.add("draw-mode"),t(e)}else this._map.removeInteraction(this._interactionDraw),this._viewport.classList.remove("draw-mode"),ot(Te());Me(e?Oe.Draw:null),this._refreshSelectionInteractions()}}activateEditMode(e=!0){e?((()=>{const e=document.querySelector(".ol-wfst--tools-control-btn-edit");e&&e.classList.add("wfst--active"),st()})(),this.activateDrawMode(!1)):(this._collectionModify.clear(),this._clearHoverState()),this._interactionSelectModify&&this._interactionSelectModify.setActive(e),this._interactionModify.setActive(e),this._interactionWfsSelect&&this._interactionWfsSelect.setActive(e),this._refreshSelectionInteractions()}_clearHoverState(){this._viewport&&(this._viewport.style.cursor=""),this._hoveredFeature&&(this._hoveredFeature.setStyle(void 0),this._hoveredFeature=null)}_updateEditCursor(e){if(!this._collectionModify)return;const t=e.pixel;for(const e of this._collectionModify.getArray()){const r=pt(e),s=r?r.getCoordinates():[];if(s.length){for(const e of s){const r=this._map.getPixelFromCoordinate(e);if(_.squaredDistance(r,t)<=144)return void(this._viewport.style.cursor="move")}for(let e=0;e<s.length-1;e++){const r=this._map.getPixelFromCoordinate(s[e]),o=this._map.getPixelFromCoordinate(s[e+1]);if(_.squaredDistanceToSegment(t,[r,o])<=144)return void(this._viewport.style.cursor="copy")}}}}_removeOverlayHelper(e){const t=e.getId();if(!t)return;const r=this._map.getOverlayById(t);r&&this._map.removeOverlay(r)}}class cr extends g{constructor(e){super(e.type),this.layer=e.layer,this.data=e.data}}const dr={WfsLayer:We,WmsLayer:Ye,Geoserver:class extends M{constructor(e){super();const t={url:null,advanced:{getCapabilitiesVersion:"2.0.0",getFeatureVersion:"1.0.0",describeFeatureTypeVersion:"1.1.0",lockFeatureVersion:"1.1.0",wfsTransactionVersion:"1.1.0",projection:"EPSG:3857",lockFeatureParams:{expiry:5,lockId:"WFST-editor",releaseAction:"SOME"}},headers:{},credentials:"same-origin",useLockFeature:!0};this._options=dt(t,e),this.setAdvanced(this._options.advanced),this.setHeaders(this._options.headers),this.setCredentials(this._options.credentials),this.setUrl(this._options.url),this.setUseLockFeature(this._options.useLockFeature),this._countRequests=0,this._insertFeatures=[],this._updateFeatures=[],this._deleteFeatures=[],this._lockedId=this._options.advanced.lockFeatureParams.lockId,this._formatWFS=new L,this._formatGeoJSON=new S,this._formatKml=new O({extractStyles:!1,showPointNames:!1}),this._xs=new XMLSerializer,this.getAndUpdateCapabilities(),this.on("change:parsedCapabilities",()=>{this._checkGeoserverCapabilities()})}getCapabilities(){return this.get(sr.CAPABILITIES)}getParsedCapabilities(){return this.get(sr.PARSED_CAPABILITIES)}setUrl(e,t=!1){this.set(sr.URL,e,t)}getUrl(){return this.get(sr.URL)}setHeaders(e={},t=!1){return this.set(sr.HEADERS,e,t)}getHeaders(){return this.get(sr.HEADERS)}setCredentials(e=null,t=!1){this.set(sr.CREDENTIALS,e,t)}getCredentials(){return this.get(sr.CREDENTIALS)}setAdvanced(e={},t=!1){this.set(sr.ADVANCED,e,t)}getAdvanced(){return this.get(sr.ADVANCED)}hasTransaction(){return this.get(sr.HASTRASNACTION)}hasLockFeature(){return this.get(sr.HASLOCKFEATURE)}getUseLockFeature(){return this.get(sr.USELOCKFEATURE)}setUseLockFeature(e,t=!1){this.set(sr.USELOCKFEATURE,e,t)}isLoaded(){return this.get(sr.ISLOADED)}getState(){return this.state_}async getAndUpdateCapabilities(){try{const e=new URLSearchParams({service:"wfs",version:this.getAdvanced().getCapabilitiesVersion,request:"GetCapabilities",exceptions:"application/json"}),t=this.getUrl()+"?"+e.toString(),r=await fetch(t,{headers:this.getHeaders(),credentials:this.getCredentials()});if(!r.ok)throw new Error("");const s=await r.text(),o=(new window.DOMParser).parseFromString(s,"text/xml");this.set(sr.CAPABILITIES,o);const i=rr.read(s);return this.set(sr.PARSED_CAPABILITIES,i),this.state_=o?"ready":"error",o}catch(e){console.error(e);const t="string"==typeof e?e:ae.errors.capabilities;oe(t,e)}}_checkGeoserverCapabilities(){var e,t;if("2.0.0"===this.getAdvanced().getCapabilitiesVersion){const r=null===(t=null===(e=this.getParsedCapabilities())||void 0===e?void 0:e.OperationsMetadata)||void 0===t?void 0:t.Operation;r&&r.forEach(e=>{"Transaction"===e.name?this.set(sr.HASTRASNACTION,!0):"LockFeature"===e.name?this.set(sr.HASLOCKFEATURE,!0):"DescribeFeatureType"===e.name&&this.set(sr.HASDESCRIBEFEATURETYPE,!0)})}else{const e=this.getCapabilities().getElementsByTagName("ows:Operation");Array.from(e).forEach(e=>{"Transaction"===e.getAttribute("name")?this.set(sr.HASTRASNACTION,!0):"LockFeature"===e.getAttribute("name")?this.set(sr.HASLOCKFEATURE,!0):"DescribeFeatureType"===e.getAttribute("name")&&this.set(sr.HASDESCRIBEFEATURETYPE,!0)})}if(!this.hasTransaction())throw ae.errors.wfst}async transact(e,t,r){t=Array.isArray(t)?t:[t];const s=[],o=Re(r);for(const r of t){let t=this._cloneFeature(r);const i=t.getGeometry();i instanceof u?this._transformGeoemtryCollectionToGeometries(t,i):i instanceof j&&this._transformCircleToPolygon(t,i),"beforeTransactFeature"in o&&"function"==typeof o.beforeTransactFeature&&(t=o.beforeTransactFeature(t,e)),t&&s.push(t)}if(!s.length)return oe(ae.errors.noValidGeometry),!1;switch(e){case Fe.Insert:this._insertFeatures=[...this._insertFeatures,...s];break;case Fe.Update:this._updateFeatures=[...this._updateFeatures,...s];break;case Fe.Delete:this._deleteFeatures=[...this._deleteFeatures,...s]}this._countRequests++;const i=this._countRequests;return new Promise((s,n)=>{setTimeout(async()=>{try{if(i!==this._countRequests)return;let n=Ie().getView().getProjection().getCode();if(n="EPSG:4326"===n?"urn:x-ogc:def:crs:EPSG:4326":n,!o||!o.getDescribeFeatureType())throw new Error(`${ae.errors.layerNotFound}: "${r}"`);const a=o.getDescribeFeatureType()._parsed,l=r.split(":").length>1?r.split(":").pop():r,c={featureNS:a.namespace,featureType:l,srsName:n,featurePrefix:null,nativeElements:null,version:this.getAdvanced().wfsTransactionVersion},d=this._formatWFS.writeTransaction(this._insertFeatures,this._updateFeatures,this._deleteFeatures,c);let h=this._xs.serializeToString(d);const u=a.geomType,p=a.geomField;if(u===Ee.GeometryCollection)if(e===Fe.Insert)h=h.replace(/<geometry>/g,`<geometry><MultiGeometry xmlns="http://www.opengis.net/gml" srsName="${n}"><geometryMember>`),h=h.replace(/<\/geometry>/g,"</geometryMember></MultiGeometry></geometry>");else if(e===Fe.Update){const e=`<MultiGeometry xmlns="http://www.opengis.net/gml" srsName="${n}"><geometryMember>`,t="</geometryMember></MultiGeometry>";h=h.replace(/(.*)(<Name>geometry<\/Name><Value>)(.*?)(<\/Value>)(.*)/g,`$1$2${e}$3${t}$4$5`)}e===Fe.Insert?h=h.replace(/<(\/?)\bgeometry\b>/g,`<$1${p}>`):e===Fe.Update&&(h=h.replace(/<Name>geometry<\/Name>/g,`<Name>${p}</Name>`)),this.hasLockFeature&&this.getUseLockFeature()&&e!==Fe.Insert&&(h=h.replace("</Transaction>",`<LockId>${this._lockedId}</LockId></Transaction>`));const m=Object.assign({"Content-Type":"text/xml"},this.getHeaders()),f=await fetch(this.getUrl(),{method:"POST",body:h,headers:m,credentials:this._options.credentials});if(!f.ok)throw new Error(ae.errors.transaction+" "+f.status);const g=await f.text(),y=this._formatWFS.readTransactionResponse(g),v=Re(r);if(!Object.keys(y).length){const e=String(g).match(/<ows:ExceptionText>([\s\S]*?)<\/ows:ExceptionText>/);if(e)throw v instanceof Ye&&this._removeFeatures(t),new Error(e[1])}e!==Fe.Delete&&this._removeFeatures(t),t.forEach(e=>{Be(e)}),v.refresh(),de(!1),this._insertFeatures=[],this._updateFeatures=[],this._deleteFeatures=[],this._countRequests=0,s(y)}catch(e){oe(e.message,e),de(!1),this._countRequests=0,n()}},0)})}_removeFeatures(e){for(const t of e)lt().getSource().removeFeature(t)}_transformCircleToPolygon(e,t){const r=x.fromCircle(t);e.setGeometry(r)}_transformGeoemtryCollectionToGeometries(e,t){let r=t.getGeometries()[0];r instanceof j&&(r=x.fromCircle(r)),e.setGeometry(r)}_cloneFeature(e){Be(e);const t=e.getProperties();delete t.boundedBy,delete t._layerName_,delete t._editOverlayCoord_;const r=new T(t);return r.setId(e.getId()),r}async lockFeature(e,t,r=0){const s=new URLSearchParams({service:"wfs",version:this.getAdvanced().lockFeatureVersion,request:"LockFeature",typeName:t,expiry:String(this._options.advanced.lockFeatureParams.expiry),handle:this._options.advanced.lockFeatureParams.lockId,releaseAction:this._options.advanced.lockFeatureParams.releaseAction,exceptions:"application/json",featureid:Array.isArray(e)?e.join(","):String(e)}),o=this.getUrl()+"?"+s.toString();try{const s=await fetch(o,{headers:this._options.headers,credentials:this._options.credentials});if(!s.ok)throw new Error(ae.errors.lockFeature);const i=await s.text();try{const s=JSON.parse(i);if("exceptions"in s){const o=new Error(se(s));if("CannotLockAllFeatures"!==s.exceptions[0].code)throw o;if(r)throw o;this.lockFeature(e,t,1)}}catch(e){try{const e=(new window.DOMParser).parseFromString(i,"text/xml"),t=e.getElementsByTagName("wfs:LockId")[0]||e.getElementsByTagNameNS("http://www.opengis.net/wfs","LockId")[0];t&&t.textContent&&(this._lockedId=t.textContent)}catch(e){}}return i}catch(e){oe(e.message,e)}}}};return Object.assign(lr,dr),lr});
|
|
7
7
|
//# sourceMappingURL=ol-wfst.min.js.map
|