@nextgis/ngw-map 3.0.0-alpha.0 → 3.0.0-alpha.2

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.
@@ -1,2 +1,2 @@
1
- var NgwMap=function(e){"use strict";function t(){}function r(){r.init.call(this)}function o(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function n(e,r,n,i){var s,a,l,c;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",r,n.listener?n.listener:n),a=e._events),l=a[r]):(a=e._events=new t,e._eventsCount=0),l){if("function"==typeof l?l=a[r]=i?[n,l]:[l,n]:i?l.unshift(n):l.push(n),!l.warned&&(s=o(e))&&s>0&&l.length>s){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+r+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=r,u.count=l.length,c=u,"function"==typeof console.warn?console.warn(c):console.log(c)}}else l=a[r]=n,++e._eventsCount;return e}function i(e,t,r){var o=!1;function n(){e.removeListener(t,n),o||(o=!0,r.apply(e,arguments))}return n.listener=r,n}function s(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 a(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}t.prototype=Object.create(null),r.EventEmitter=r,r.usingDomains=!1,r.prototype.domain=void 0,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.init=function(){this.domain=null,r.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new t,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.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},r.prototype.getMaxListeners=function(){return o(this)},r.prototype.emit=function(e){var t,r,o,n,i,s,l,c="error"===e;if(s=this._events)c=c&&null==s.error;else if(!c)return!1;if(l=this.domain,c){if(t=arguments[1],!l){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=l,t.domainThrown=!1,l.emit("error",t),!1}if(!(r=s[e]))return!1;var p="function"==typeof r;switch(o=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var o=e.length,n=a(e,o),i=0;i<o;++i)n[i].call(r)}(r,p,this);break;case 2:!function(e,t,r,o){if(t)e.call(r,o);else for(var n=e.length,i=a(e,n),s=0;s<n;++s)i[s].call(r,o)}(r,p,this,arguments[1]);break;case 3:!function(e,t,r,o,n){if(t)e.call(r,o,n);else for(var i=e.length,s=a(e,i),l=0;l<i;++l)s[l].call(r,o,n)}(r,p,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,o,n,i){if(t)e.call(r,o,n,i);else for(var s=e.length,l=a(e,s),c=0;c<s;++c)l[c].call(r,o,n,i)}(r,p,this,arguments[1],arguments[2],arguments[3]);break;default:for(n=new Array(o-1),i=1;i<o;i++)n[i-1]=arguments[i];!function(e,t,r,o){if(t)e.apply(r,o);else for(var n=e.length,i=a(e,n),s=0;s<n;++s)i[s].apply(r,o)}(r,p,this,n)}return!0},r.prototype.on=r.prototype.addListener=function(e,t){return n(this,e,t,!1)},r.prototype.prependListener=function(e,t){return n(this,e,t,!0)},r.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,i(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,i(this,e,t)),this},r.prototype.removeListener=function(e,r){var o,n,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(o=n[e]))return this;if(o===r||o.listener&&o.listener===r)0==--this._eventsCount?this._events=new t:(delete n[e],n.removeListener&&this.emit("removeListener",e,o.listener||r));else if("function"!=typeof o){for(i=-1,s=o.length;s-- >0;)if(o[s]===r||o[s].listener&&o[s].listener===r){a=o[s].listener,i=s;break}if(i<0)return this;if(1===o.length){if(o[0]=void 0,0==--this._eventsCount)return this._events=new t,this;delete n[e]}else!function(e,t){for(var r=t,o=r+1,n=e.length;o<n;r+=1,o+=1)e[r]=e[o];e.pop()}(o,i);n.removeListener&&this.emit("removeListener",e,a||r)}return this},r.prototype.off=function(e,t){return this.removeListener(e,t)},r.prototype.removeAllListeners=function(e){var r,o;if(!(o=this._events))return this;if(!o.removeListener)return 0===arguments.length?(this._events=new t,this._eventsCount=0):o[e]&&(0==--this._eventsCount?this._events=new t:delete o[e]),this;if(0===arguments.length){for(var n,i=Object.keys(o),s=0;s<i.length;++s)"removeListener"!==(n=i[s])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new t,this._eventsCount=0,this}if("function"==typeof(r=o[e]))this.removeListener(e,r);else if(r)do{this.removeListener(e,r[r.length-1])}while(r[0]);return this},r.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):[]},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):s.call(e,t)},r.prototype.listenerCount=s,r.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};const l={brill:'<path d="m6 0-5 6 5 6 5-6z"/>',circle:'<circle cx="6" cy="6" r="6"/>',rect:'<rect width="12" height="12"/>',marker:'<path d="m6 0c-1.85 0-4 1.19-4 4.22 0 2.05 3.08 6.59 4 7.78 0.821-1.19 4-5.62 4-7.78 0-3.03-2.15-4.22-4-4.22z"/>',cross:'<path d="M 2.4,12 6,8.4 9.6,12 12,9.6 8.4,6 12,2.4 9.6,0 6,3.6 2.4,0 0,2.4 3.6,6 0,9.6 Z"/>',star:'<path d="m6 0.25 1.71 4.18 4.29-1.04e-4 -3.43 3.14 0.857 4.18-3.43-3.14-3.43 3.14 0.857-4.18-3.43-3.14 4.29-0.209z"/>',triangle:'<path d="m12 11.7h-12l6-11.2z"/>',plus:'<path d="m7.5 12v-4.5h4.5v-3h-4.5v-4.5h-3v4.5h-4.5v3h4.5v4.5z"/>',minus:'<path d="m12 7.5v-3h-12v3z"/>',asterisk:'<path d="m7.59 12v-3.27l2.83 1.64 1.58-2.74-2.85-1.64 2.83-1.64-1.56-2.74-2.83 1.64v-3.24h-3.17v3.24l-2.85-1.64-1.57 2.74 2.84 1.64-2.84 1.64 1.57 2.74 2.85-1.64v3.27z"/>'},c=12;function u(e,t,r={}){const o=function(e,t=[]){for(;null!==e;e=Object.getPrototypeOf(e)){const r=Object.getOwnPropertyNames(e);for(let e=0;e<r.length;e++)-1==t.indexOf(r[e])&&t.push(r[e])}return t}(e.prototype);const n=void 0===r.replace||r.replace;t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((r=>{const i=-1!==o.indexOf(r);if(!n&&!i||n){const o=Object.getOwnPropertyDescriptor(t.prototype,r);o&&Object.defineProperty(e.prototype,r,o)}}))}))}function p(e){return null!=e}function h(e){return"string"==typeof e?!!e:p(e)}function d(e,t,r=!1){let o=e;const n=t,i=Array.isArray(n);let s=i&&[]||{};return i&&Array.isArray(n)?r?(o=o||[],s=s.concat(o),n.forEach(((e,t)=>{void 0===s[t]?s[t]=e:"object"==typeof e?s[t]=d(o[t],e,r):-1===o.indexOf(e)&&s.push(e)}))):s=n:(o&&"object"==typeof o&&Object.keys(o).forEach((function(e){s[e]=o[e]})),Object.keys(n).forEach((function(e){s[e]="object"==typeof n[e]&&n[e]&&"object"==typeof o[e]&&"object"==typeof n[e]?d(o[e],n[e],r):n[e]}))),s}function f(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}const y=6371;function m(e){return{type:"Polygon",coordinates:[g(e)]}}function g(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const b=Math.PI/180,v=180/Math.PI;function _(e,t,r=10,o=6){const n=r/y*v,i=n/Math.cos(t*b),s=[];for(let a=0;a<o+1;a++){const r=Math.PI*(a/(o/2)),l=e+i*Math.cos(r),c=t+n*Math.sin(r);s.push([l,c])}return s}function w(e,t){t=t>85.06?85.06:t<-85.06?-85.06:t;const r=20037508.34*e/180;let o=Math.log(Math.tan((90+t)*Math.PI/360))/(Math.PI/180);return o=20037508.34*o/180,[r,o]}function O(e,t,r,o){if(e instanceof Array)return t instanceof Array&&t.sort().join("")===e.sort().join("");if(e instanceof Date)return t instanceof Date&&""+e==""+t;if(e instanceof Function){if(!(t instanceof Function))return!1}else if(e instanceof Object)return t instanceof Object&&(e===r?t===o:L(e,t));return e===t}function L(e,t){const r=Object.keys(e).sort(),o=Object.keys(t).sort();if(r.length!==o.length)return!1;if(r.join("")!==o.join(""))return!1;for(let n=0;n<r.length;n++){if(!O(e[r[n]],t[o[n]],e,t))return!1}return!0}function P(e){const t={};return Object.keys(e).forEach((r=>{e[r]instanceof Array||e[r]!==Object(e[r])?void 0!==e[r]&&(t[r]=e[r]):t[r]=P(e[r])})),t}function I(e){return"[object Object]"===Object.prototype.toString.call(e)}function x(e){return e.replace(/([^:]\/)\/+/g,"$1")}var E=Object.defineProperty,A=(e,t,r)=>((e,t,r)=>t in e?E(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const j=class e{constructor(t={}){var r;A(this,"cache",[]);const o=null!=(r=t.namespace)?r:"default";return e.instance[o]?e.instance[o]:(e.instance[o]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r){return this.add(e,t,r,!0)}add(e,t,r,o){const n=this._find(e,r);if(n)return n.value;{let n;n=t instanceof Function?t():t;const i=r&&JSON.parse(JSON.stringify(P(r))),s={key:e,value:n,props:i};return o&&!h(n)?n:(this.cache.push(s),n instanceof Promise?(n.catch((t=>{this.delete(e,r)})),o&&n.then((t=>(h(t)||this.delete(e,r),t))),n):n)}}match(e,t){const r=this._find(e,t);return null==r?void 0:r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){const r="string"==typeof e?this.cache.filter((r=>this._filter(r,e,t))):[e];for(const o of r){const e=this.cache.indexOf(o);-1!==e&&this.cache.splice(e,1)}}_find(e,t){return this.cache.find((r=>this._filter(r,e,t)))}_filter(e,t,r){if(e.key!==t)return!1;if(!r)return!0;return L(e.props||{},P(r))}};A(j,"instance",{});let M=j;var C=Object.defineProperty,k=(e,t,r)=>((e,t,r)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class S extends Error{constructor(e){super(),k(this,"name","NgwError"),k(this,"title"),k(this,"message"),k(this,"detail"),k(this,"exception"),k(this,"status_code"),k(this,"data"),k(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,S.prototype)}}var N=Object.defineProperty,T=(e,t,r)=>((e,t,r)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class F extends S{constructor(e){super(e),T(this,"name","ResourceNotFoundError"),T(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,F.prototype)}}function B(e){return"[object Object]"===Object.prototype.toString.call(e)}const R=["description"];function $(e,t=""){t=t?t+"__":"";const r={};for(const[o,n]of Object.entries(e))if(-1===R.indexOf(o))if(B(n))if("owner_user"===o){const e=$(n,o);Object.assign(r,e)}else"parent"===o&&"id"in n&&(r.parent_id=n.id);else p(n)&&(r[t+o]=n);return r}var D=Object.defineProperty,q=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,U=(e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,z=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&U(e,r,t[r]);if(q)for(var r of q(t))G.call(t,r)&&U(e,r,t[r]);return e},Z=(e,t,r)=>U(e,"symbol"!=typeof t?t+"":t,r);class W{constructor({connector:e,cacheId:t}){Z(this,"cache"),Z(this,"connector"),this.connector=e,this.cache=new M({namespace:t})}getOne(e,t){const r=z({},t);return"string"==typeof e||"number"==typeof e||B(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):B(e)?this._fetchResourceBy(e,r):Promise.resolve(void 0)}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new F}))}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||B(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):Promise.resolve(void 0)}getIdOrFail(e,t){return this.getId(e,t).then((e=>{if(void 0===e)throw new Error;return e}))}getMany(e,t){return this._resourceCacheFilter(e).then((r=>{if(!r.length){const r={};return e.keyname?r.keyname=e.keyname:Object.assign(r,$(e)),this.connector.get("resource.search",t,z({serialization:"full"},r)).then((e=>{if((null==t?void 0:t.cache)&&e)for(const t of e)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):Promise.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",t,{parent:e}).then((e=>{const o=[];for(const n of e)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(n),{id:n.resource.id}),r.push(n),(null==t?void 0:t.recursive)&&n.resource.children&&o.push(this._getChildrenOf(n.resource.id,t,r));return o.length?Promise.all(o).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,o=function*(){var t;const r=this.cache.all(),o=[];for(const n of r){const r=null==(t=n.props)?void 0:t.id;["resource.item","resource"].includes(n.key)&&void 0!==r&&("number"==typeof r?r===e&&o.push(n):(yield this.getId(r))===e&&o.push(n))}for(const e of o)this.cache.delete(e)},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o}_fetchResourceById(e,t){return this.connector.get("resource.item",t,{id:e})}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return Promise.all(this.cache.matchAll("resource.item")).then((t=>(t.filter((t=>{if(t)return e.keyname&&t.resource.keyname?e.keyname===t.resource.keyname:p(e.id)&&p(t.resource.id)?e.id===t.resource.id:L(e,t.resource)})),[])))}}const J=[];function H(e){J.push(e)}class Q extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var K=Object.defineProperty,X=(e,t,r)=>((e,t,r)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Y extends S{constructor(e){super(e),X(this,"name","InsufficientPermissionsError"),X(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,Y.prototype)}}const ee=/\{ *([\w_-]+) *\}/g;function te(e,t){return e.replace(ee,((e,r)=>{let o=t[r];if(void 0===o)throw new Error("No value provided for letiable "+e);return"function"==typeof o&&(o=o(t)),o}))}var re=Object.defineProperty,oe=Object.getOwnPropertySymbols,ne=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,se=(e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function ae(e){return t=this,r=null,o=function*(){const{params:t,name:r,connector:o,requestOptions:n}=e,i=yield o.connect();let s=i&&i[r];if(s){s=[...s];let e=s.shift();if(s.length){const r={};for(let e=0;e<s.length;e++){const o=s[e];if(r[e]=`{${o}}`,void 0===t[o])throw new Error(`\`${o}\` URL API argument is not specified`)}e&&(e=te(e,r))}if(t){const r=[],o=t.paramList;Array.isArray(o)&&o.forEach((([e,t])=>{r.push(`${e}=${t}`)}));for(const e in t)-1===s.indexOf(e)&&r.push(`${e}=${t[e]}`);r.length&&(e=`${e}?${r.join("&")}`)}if(e)return o.makeQuery(e,t,((e,t)=>{for(var r in t||(t={}))ne.call(t,r)&&se(e,r,t[r]);if(oe)for(var r of oe(t))ie.call(t,r)&&se(e,r,t[r]);return e})({cacheName:r},n));throw new Error("Request URL is not set")}},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o}var le=Object.defineProperty,ce=(e,t,r)=>((e,t,r)=>t in e?le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class ue extends Error{constructor(e){super(),ce(this,"name","NetworkError"),Object.setPrototypeOf(this,ue.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let pe;pe=(e,t,r={},o,n)=>{r.method=r.method||"GET";const i=new XMLHttpRequest;i.open(r.method||"GET",e,!0),"blob"===r.responseType&&(i.responseType=r.responseType);const s=()=>{try{return JSON.parse(i.responseText)}catch(e){return i.responseText}};i.onload=()=>{-1!==[401,403,404,422,500].indexOf(i.status)&&o(new S(s())),((e=!1)=>{const n=e?o:t;"blob"===r.responseType?n(i.response):i.responseText?n(s()):o({message:""})})()},i.onerror=t=>{o(0===i.status?new ue(e):t)},i.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const a=r.headers;if(a)for(const c in a){const e=a[c];"string"==typeof e&&i.setRequestHeader(c,e)}let l;if(void 0!==r.withCredentials&&(i.withCredentials=r.withCredentials),r.file){if(l=new FormData,l.append("file",r.file),r.data)for(const c in r.data)l.append(c,l[c])}else l=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;n&&n((()=>{i.abort()})),i.send(l)};var he=Object.defineProperty,de=Object.defineProperties,fe=Object.getOwnPropertyDescriptors,ye=Object.getOwnPropertySymbols,me=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,be=(e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ve=(e,t)=>{for(var r in t||(t={}))me.call(t,r)&&be(e,r,t[r]);if(ye)for(var r of ye(t))ge.call(t,r)&&be(e,r,t[r]);return e},_e=(e,t,r)=>be(e,"symbol"!=typeof t?t+"":t,r),we=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));let Oe=0,Le=0;class Pe{constructor(e){this.options=e,_e(this,"id",Oe++),_e(this,"emitter",new r),_e(this,"user"),_e(this,"resources"),_e(this,"cache"),_e(this,"routeStr","/api/component/pyramid/route"),_e(this,"activeRequests",{}),_e(this,"requestTransform");const t=function(e){return J.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return L(t.options.auth,e.auth)}}))}(e);if(this.cache=new M({namespace:e.cacheId}),t)return t;this.options.route&&(this.routeStr=this.options.route),this.options.requestTransform&&(this.requestTransform=this.options.requestTransform),this.resources=new W({connector:this,cacheId:e.cacheId}),H(this)}static create(e){return new this(e)}clearCache(){this.cache.clean(),this.resources.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,H(this)}connect(){return we(this,null,(function*(){const e=this.options.auth;if(e){const{login:t,password:r}=e;t&&r&&(yield this._login({login:t,password:r}))}return yield this.makeQuery(this.routeStr,{},{cacheName:"route",cache:!0,cacheProps:{id:this.id,auth:e,baseUrl:this.options.baseUrl}})}))}login(e,t){return this.logout(),H(this),this._login(e,t)}logout(){this.abort(),function(e){const t=J.indexOf(e);-1!==t&&J.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return we(this,null,(function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=ve({headers:this.getAuthorizationHeaders(e)},t);return this.makeQuery("/api/component/auth/current_user",{},r)}))}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:`Basic ${t}`}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,o=encodeURIComponent(`${t}:${r}`);return window.btoa(o)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return ve({},this.activeRequests)}apiRequest(e,t={},r={}){var o;return ae({name:e,params:P(t=null!=(o=r.params)?o:t),requestOptions:r,connector:this})}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}makeQuery(e,t){return we(this,arguments,(function*(e,t,r={}){var o;if(!(e=(this.options.baseUrl?this.options.baseUrl:"")+e))throw new Error("Empty `url` not allowed");if(t){const r=((e,t)=>{var r={};for(var o in e)me.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&ye)for(var o of ye(e))t.indexOf(o)<0&&ge.call(e,o)&&(r[o]=e[o]);return r})(t,["paramList"]);e=te(e,r)}e=encodeURI(x(e));const{cache:n,signal:i,method:s="GET",headers:a,cacheName:l,cacheProps:c,responseType:u,withCredentials:p}=r,h=new AbortController,d=h.signal;if(i){if(i.aborted)throw new Q;i.addEventListener("abort",(()=>{h.abort()}))}r.signal=d;const f=()=>we(this,null,(function*(){const t=Le++;this.activeRequests[t]=h;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}}));if(n&&"GET"===s){const r=c||(y=ve({},P({headers:a,withCredentials:p,responseType:u,baseUrl:this.options.baseUrl,userId:null==(o=this.user)?void 0:o.id})),de(y,fe({params:t})));return this.cache.add(l||e,f,r,!1)}var y;return f()}))}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise(((r,o)=>{var n;if(this.user&&((t=t||{}).headers=ve(ve({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,o]=this.requestTransform(e,t);e=r,t=o}let i;pe(e,r,t,o,(e=>{i=e})),null==(n=t.signal)||n.addEventListener("abort",(()=>{void 0!==i&&i(),o(new Q)}))})).catch((e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e}))}_login(e,t){return we(this,null,(function*(){try{const r=yield this.getUserInfo(e,t);return this.user=r,this.emitter.emit("login",r),r}catch(r){throw this.emitter.emit("login:error",r),r}}))}_cleanActiveRequest(e){delete this.activeRequests[e]}_handleHttpError(e){if(e&&e instanceof S){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new F(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new Y(e)}return e}}_e(Pe,"errors",{NgwError:S,ResourceNotFoundError:F});var Ie=Object.defineProperty,xe=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,je=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Me=(e,t)=>{for(var r in t||(t={}))Ee.call(t,r)&&je(e,r,t[r]);if(xe)for(var r of xe(t))Ae.call(t,r)&&je(e,r,t[r]);return e};function Ce(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const o=`^${n=t,n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var n;return null!==new RegExp(o,r?"i":"").exec(e)}const ke={gt:(e,t)=>e>t,lt:(e,t)=>e<t,ge:(e,t)=>e>=t,le:(e,t)=>e<=t,eq:(e,t)=>e===t,ne:(e,t)=>e!==t,in:(e,t)=>-1!==t.indexOf(e),notin:(e,t)=>-1===t.indexOf(e),like:(e,t)=>Ce(e,t),ilike:(e,t)=>Ce(e,t,!0)};function Se(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Ne(e,t){const r="string"==typeof t[0]?t[0]:"all",o=t=>{if(Se(t)){const[r,o,n]=t,i=ke[o];if(i){if(("like"===o||"ilike"===o)&&"string"==typeof r){let t="";const o=r.replace(/^%?(\w+)%?$/,((o,i)=>(t=e[i],r.replace(i,n))));return i(t,o)}return i(e[r],n)}return!1}return Ne(e,t)},n=t.filter((e=>Array.isArray(e)));return"any"===r?n.some(o):n.every(o)}var Te=Object.defineProperty,Fe=Object.defineProperties,Be=Object.getOwnPropertyDescriptors,Re=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,qe=(e,t,r)=>t in e?Te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ve=(e,t)=>{for(var r in t||(t={}))$e.call(t,r)&&qe(e,r,t[r]);if(Re)for(var r of Re(t))De.call(t,r)&&qe(e,r,t[r]);return e},Ge=(e,t)=>Fe(e,Be(t)),Ue=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const ze={srs:4326,geom_format:"geojson"};function Ze(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function We(e,t){const{extensions:r,geom:o,fields:n,srs:i,ilike:s,like:a}=t,l=r?r.join(","):"";"*"!==l&&(e.extensions=l),void 0!==n&&(e.fields=Array.isArray(n)?n.join(","):""),void 0!==o&&(e.geom=o?"yes":"no",o||(delete e.srs,delete e.geom_format)),p(s)?e.ilike=s:p(a)&&(e.like=a),p(i)&&(e.srs=i)}function Je(e){return Ue(this,null,(function*(){const t=Qe(e),r=yield Promise.all(t),o=[],n=[];for(const e of r)for(const t of e)o.includes(t.id)||(n.push(t),o.push(t.id));return e.offset||e.limit?n.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:n.length):n}))}function He(e){const[t,r,o]=e;let n="",i="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,o)=>(n=t,i=o,r)))}__${r}`,n+o+i]}function Qe(e,t=[],r=[]){var o;const{filters:n}=e,i=null!=(o=e.paramList)?o:[],s="string"==typeof n[0]?n[0]:"all",a=n.filter((e=>Array.isArray(e)));if("any"===s)for(const l of a)Se(l)?t.push(Xe(Ge(Ve({},e),{paramList:[...r,...i,He(l)]}))):Qe(Ge(Ve({},e),{filters:l}),t,[...r]);else if("all"===s){const o=[],n=[];for(const e of a)Se(e)?o.push(He(e)):n.push(e);if(n.length)for(const i of n)Qe(Ge(Ve({},e),{filters:i}),t,[...r,...o]);else t.push(Xe(Ge(Ve({},e),{paramList:[...r,...i,...o]})))}return t}function Ke(e){return`POLYGON((${e.map((([e,t])=>{const[r,o]=w(e,t).map((e=>Math.round(1*(e+Number.EPSILON))/1));return r+" "+o})).join(", ")}))`}function Xe(e){const t=Ve({},ze),{limit:r,cache:o,signal:n,offset:i,orderBy:s,paramList:a,connector:l,geomFormat:c,intersects:u,resourceId:p}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,i&&(t.offset=i),c&&(t.geom_format=c),We(t,e),s&&(t.order_by=s.join(",")),Array.isArray(u)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(u)?g(u):u;t.intersects=Ke(e)}else"string"==typeof u&&(t.intersects=u);a&&(t.paramList=a);const h=Ve({id:p},t);return l.get("feature_layer.feature.collection",{cache:o,signal:n},h)}var Ye=Object.defineProperty,et=Object.defineProperties,tt=Object.getOwnPropertyDescriptors,rt=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable,it=(e,t,r)=>t in e?Ye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,st=(e,t)=>{for(var r in t||(t={}))ot.call(t,r)&&it(e,r,t[r]);if(rt)for(var r of rt(t))nt.call(t,r)&&it(e,r,t[r]);return e},at=(e,t)=>et(e,tt(t)),lt=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function ct(e){return lt(this,null,(function*(){const t=st({},ze);We(t,e);const r=st({id:e.resourceId,fid:e.featureId},t),o=yield e.connector.get("feature_layer.feature.item",e,r);return at(st({},o),{toGeojson:()=>lt(this,null,(function*(){if(o.geom)return Ze(o);{const t=(yield ct(at(st({},e),{geom:!0,fields:null,extensions:null}))).geom;return Ze(at(st({},o),{geom:t}))}}))})}))}var ut=Object.defineProperty,pt=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable,ft=(e,t,r)=>t in e?ut(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,yt=(e,t,r)=>ft(e,"symbol"!=typeof t?t+"":t,r);class mt{constructor(e){this.options=e,yt(this,"name"),yt(this,"resourceId"),yt(this,"item"),yt(this,"_extent"),this.resourceId=e.resourceId;const t=e.item;this.item=t,this.name=e.labelField&&t.fields?t.fields[e.labelField]:String(t.id)}extent(e){return this._extent?Promise.resolve(this._extent):this.options.connector.get("feature_layer.feature.item_extent",e,{id:this.resourceId,fid:this.item.id}).then((e=>{const{minLat:t,minLon:r,maxLat:o,maxLon:n}=e.extent,i=[r,t,n,o];return this._extent=i,i}))}geoJson(e){return this.item.geom?Promise.resolve(Ze(this.item)):ct(((e,t)=>{for(var r in t||(t={}))ht.call(t,r)&&ft(e,r,t[r]);if(pt)for(var r of pt(t))dt.call(t,r)&&ft(e,r,t[r]);return e})({resourceId:this.resourceId,featureId:this.item.id,connector:this.options.connector,geom:!0,fields:null,extensions:null},e)).then((e=>(this.item.geom=e.geom,Ze(this.item))))}}function gt(e,t,r,o){return!!_t(e,t,r,wt)}function bt(e,t,r,o){return _t(e,t,r,Ot)}function vt(e,t="children"){let r=[];const o=("function"==typeof t?t:e=>e[t])(e);return o&&(Array.isArray(o)?r=o:r.push(o)),o?r:void 0}function _t(e,t=(e=>!!e),r="children",o,n){return o(e,"function"==typeof t?t:e=>Ne(e,t),r)}function wt(e,t=(e=>!!e),r,o=[]){let n=[];if(Array.isArray(e))n=e;else{if(t(e))return e;const o=vt(e,r);o&&(n=o)}for(let i=0;i<n.length;i++)if(n[i]){const e=wt(n[i],t,r,o);if(e)return e}}function Ot(e,t=(e=>!!e),r,o=[]){let n=[];if(Array.isArray(e))n=e;else{t(e)&&o.push(e);const i=vt(e,r);i&&(n=i)}for(let i=0;i<n.length;i++)n[i]&&Ot(n[i],t,r,o);return o}function Lt(e,t=(e=>!!e),r,o=[]){let n=[];if(Array.isArray(e))n=e;else{if(!t(e))return!1;const o=vt(e,r);o&&(n=o)}for(let i=0;i<n.length;i++)if(n[i]){if(!Lt(n[i],t,r,o))return!1}return!0}var Pt=Object.defineProperty,It=(e,t,r)=>((e,t,r)=>t in e?Pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class xt{constructor(e){It(this,"item"),It(this,"_children",[]),It(this,"_parent"),this.item=e}setParent(e){this._parent=e}addChild(e){this._children.push(e)}getParent(){return this._parent}getParents(e){const t=this.getParent();return t?bt(t,e,(e=>e.tree.getParent())):[]}getRoot(){let e=this.getParent(),t=e;for(;e;)e=e.tree.getParent(),e&&(t=e);return t}find(e){return _t(this._children,e,(e=>e.tree.getChildren()),wt)}every(e){return!!_t(this._children,e,(e=>e.tree.getChildren()),Lt)}some(e){return gt(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return bt(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}var Et=Object.defineProperty,At=(e,t,r)=>((e,t,r)=>t in e?Et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class jt{constructor(e,t,o){At(this,"options"),At(this,"emitter",new r),At(this,"name"),At(this,"item"),At(this,"_blocked",!1),At(this,"_container"),At(this,"_value"),At(this,"_removeEventsListener"),this.item=t,this.options=Object.assign({},o),this.name=e,this._value=this.getProperty()}getProperty(){return"function"==typeof this.options.getProperty?this.options.getProperty.call(this,this.item):this.options.value}getParents(){return this.item.tree.getParents()||[]}getParent(){return this.item.tree.getParent()}getChildren(){return this.item.tree.getChildren()}isGroup(){return this.item.tree.getDescendants().length}isBlocked(){if(void 0!==this._blocked)return this._blocked;const e=this.item.tree.getParents();return this._blocked=this._calculateBlockedStatus(e),this._blocked}set(e,t){this._value=this._prepareValue(e),this.update(this._value,t),this._fireChangeEvent(this._value,t)}get(){return this.getValue()}update(e,t){this._callOnSet(e,t)}getContainer(){return this._container}destroy(){if(this._container){const e=this._container.parentNode;e&&e.removeChild(this._container)}this._removeEventsListener&&this._removeEventsListener()}getValue(){return void 0!==this._value?this._value:this.getProperty()}_prepareValue(e){return e}_callOnSet(e,t){this.options.onSet&&this.options.onSet.call(this,e,t,this.item)}_fireChangeEvent(e,t){if(this.emitter){e=void 0!==e?e:this.getValue(),this.emitter.emit("change",{value:e,options:t});this.item.tree.getParents().forEach((r=>{const o=r.properties&&r.properties.property(this.name);o&&o.emitter.emit("change-tree",{value:e,options:t,item:this.item})}))}}_calculateBlockedStatus(e){return e.some((e=>{var t;const r=null==(t=e.properties)?void 0:t.property(this.name);return!!r&&!r.get()}))}}var Mt=Object.defineProperty,Ct=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Nt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Tt=(e,t)=>{for(var r in t||(t={}))kt.call(t,r)&&Nt(e,r,t[r]);if(Ct)for(var r of Ct(t))St.call(t,r)&&Nt(e,r,t[r]);return e};const Ft=class e extends jt{constructor(t,r,o){super(t,r,Tt(Tt({},e.options),o)),this.set(this.get())}update(e,t){if(e){if(t&&t.bubble||this.options.bubble){this.unBlock(t);const r=this.getParent(),o=r&&r.properties&&r.properties.property(this.name);o&&o.set(e,Object.assign({},t,{bubble:!0,propagation:!1}))}this.isBlocked()||this._turnOn(t)}else this._turnOff(t);(t&&t.propagation||this.options.propagation)&&this._propagation(e,t)}getHierarchyValue(){return this.get()&&this.getParents().every((e=>{const t=e.properties&&e.properties.get(this.name);return t&&t.get()}))}block(e){this._blocked=!0,this._block(e)}unBlock(e){this._blocked=!1,this.getValue()&&this._unBlock(e)}blockChild(e){this.item.tree.getDescendants().forEach((t=>this._blockChild(t,e)))}unblockChild(e){this.item.tree.getChildren().forEach((t=>this._unBlockChild(t,e)))}_prepareValue(e){return e}_turnOff(e){this.options.turnOff&&this.options.turnOff.call(this,e),this._callOnSet(!1,e),this.options.hierarchy&&this.isGroup()&&this.blockChild(e)}_turnOn(e){this.options.turnOn&&this.options.turnOn.call(this,e),this._callOnSet(!0,e),this.options.hierarchy&&this.isGroup()&&this.unblockChild(e)}_block(e){this._turnOff(e)}_unBlock(e){this._turnOn(e)}_blockChild(e,t){const r=e.properties&&e.properties.property(this.name);r&&r.block&&r.block(t)}_unBlockChild(e,t){const r=e.properties&&e.properties.property(this.name);r&&r.unBlock&&r.unBlock(t)}_propagation(e,t){if(this.isGroup()){const r=this.item.tree.getChildren();for(let o=0;o<r.length;o++){const n=r[o],i=n.properties&&n.properties.property(this.name);i&&i.set(e,Tt(Tt({},t),{propagation:!0,bubble:!1}))}}}};Nt(Ft,"options"+"",{hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"});let Bt=Ft;var Rt=Object.defineProperty,$t=Object.getOwnPropertySymbols,Dt=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,Vt=(e,t,r)=>t in e?Rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gt=(e,t,r)=>Vt(e,"symbol"!=typeof t?t+"":t,r);const Ut=class e{constructor(e,t){this.item=e,Gt(this,"options",{}),Gt(this,"_properties",{}),Gt(this,"_propertiesList",[]),t&&t.forEach(this._setPropertyHandler.bind(this))}add(e){this._setPropertyHandler(e)}update(){this.list().forEach((e=>e.update()))}get(e){const t=this.property(e);return t?t.get():void 0}set(e,t,r){const o=this.property(e);o&&o.getValue()!==t&&o.set(t,r)}property(e){return this._properties[e]}list(){return this._propertiesList.map((e=>this._properties[e]))}destroy(){for(const e in this._properties){const t=this.property(e);t&&t.destroy&&t.destroy()}this._properties={},this._propertiesList=[]}_setPropertyHandler(e){const t=this._getHandler(e);if(t&&e.name){const r=((e,t)=>{for(var r in t||(t={}))Dt.call(t,r)&&Vt(e,r,t[r]);if($t)for(var r of $t(t))qt.call(t,r)&&Vt(e,r,t[r]);return e})({},e);this._properties[e.name]=new t(e.name,this.item,r),this._propertiesList.push(e.name)}}_getHandler(t){const r=t.handler;return!r&&t.type?"boolean"===t.type?e.handlers.CheckProperty:e.handlers.BaseProperty:r}};Gt(Ut,"handlers",{CheckProperty:Bt});let zt=Ut;var Zt=Object.defineProperty,Wt=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Ht=Object.prototype.propertyIsEnumerable,Qt=(e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Kt=(e,t,r)=>Qt(e,"symbol"!=typeof t?t+"":t,r);let Xt=0;class Yt{constructor(e){Kt(this,"options",{}),Kt(this,"properties"),Kt(this,"tree"),Kt(this,"id",Xt),Xt+=1,this.options=((e,t)=>{for(var r in t||(t={}))Jt.call(t,r)&&Qt(e,r,t[r]);if(Wt)for(var r of Wt(t))Ht.call(t,r)&&Qt(e,r,t[r]);return e})({},e),this.tree=new xt(this)}initProperties(){this.properties=new zt(this,this.options.properties)}}var er=Object.defineProperty,tr=Object.defineProperties,rr=Object.getOwnPropertyDescriptors,or=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,ir=Object.prototype.propertyIsEnumerable,sr=(e,t,r)=>t in e?er(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ar=(e,t)=>{for(var r in t||(t={}))nr.call(t,r)&&sr(e,r,t[r]);if(or)for(var r of or(t))ir.call(t,r)&&sr(e,r,t[r]);return e},lr=(e,t)=>tr(e,rr(t));function cr(e){const t=e.extent_bottom,r=e.extent_left,o=e.extent_top,n=e.extent_right;if(t&&r&&o&&n){const e=[r,t,n,o];return e[3]>82&&(e[3]=82),e[1]<-82&&(e[1]=-82),e}}function ur({resourceId:e,connector:t,cache:r=!0,signal:o}){return t.get("layer.extent",{cache:r,signal:o},{id:e}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:o,minLon:n}=e.extent;return[n,o,r,t]}}))}function pr(e){return e.connector.getResource(e.resourceId,{signal:e.signal,cache:e.cache}).then((t=>{if(t)return hr(t,e.connector,e)}))}function hr(e,t,r){if(e.webmap)return Promise.resolve(cr(e.webmap));{const o=e.resource;return o.cls&&-1!==o.cls.indexOf("style")?t.getResource(o.parent.id,r).then((e=>{if(e)return ur(lr(ar({},r),{resourceId:e.resource.id,connector:t}))})):ur(lr(ar({},r),{resourceId:o.id,connector:t}))}}var dr=Object.defineProperty,fr=(e,t,r)=>((e,t,r)=>t in e?dr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),yr=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class mr{constructor(){fr(this,"item"),fr(this,"connector"),fr(this,"_extent")}getExtent(){return yr(this,null,(function*(){return this.getBounds()}))}getBounds(e){return yr(this,null,(function*(){return this._extent?this._extent:this.item?(this._extent=yield hr(this.item,this.connector,e),this._extent):void 0}))}}var gr=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function br(e,t){return gr(this,null,(function*(){const r=e.resource,o=r;let{keyname:n,resourceId:i}=e;if(r&&("string"==typeof r?n=r:i="number"==typeof r?r:o.resource&&void 0!==o.resource&&"resource"in o?r.resource.id:yield br(r,t)),!i&&n){const e=yield t.getResource(n);e&&(i=e.resource.id)}return i}))}const vr={tms:"TILE"};var _r=Object.defineProperty,wr=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Pr=(e,t,r)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ir=(e,t)=>{for(var r in t||(t={}))Or.call(t,r)&&Pr(e,r,t[r]);if(wr)for(var r of wr(t))Lr.call(t,r)&&Pr(e,r,t[r]);return e},xr=(e,t,r)=>Pr(e,"symbol"!=typeof t?t+"":t,r);const Er="https://qms.nextgis.com";function Ar(e,t=Er,r={}){let o;if("webMap"in e){const n=e,{webMap:i,url:s}=n,a=((e,t)=>{var r={};for(var o in e)Or.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&wr)for(var o of wr(e))t.indexOf(o)<0&&Lr.call(e,o)&&(r[o]=e[o]);return r})(n,["webMap","url"]);o=i,s&&(t=s),a&&(r=a)}else o=e;t||(t=Er);class n{constructor(e,t){xr(this,"qms"),xr(this,"options"),xr(this,"map"),this.map=e;const o=Ir(Ir({},r),t);this.options=o,this.options.baselayer=!0,o.qms&&(this.qms=o.qms)}addLayer(e){return r=this,i=null,s=function*(){if(!this.qms&&e.qmsId)try{this.qms=yield function(e){return new Promise(((t,r)=>{const o=new XMLHttpRequest;o.onreadystatechange=()=>{if(4===o.readyState&&200===o.status&&o.responseText)try{t(JSON.parse(o.responseText))}catch(e){r(e)}},o.open("GET",x(e),!0),o.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=vr[r.type||"tms"],a=o.mapAdapter.layerAdapters[t];if(a&&(i=n,s=a,["showLayer","hideLayer"].forEach((e=>{const t=Object.getOwnPropertyDescriptor(s.prototype,e);t&&Object.defineProperty(i.prototype,e,t)})),"TILE"===t)){if(e=Ir(Ir({order:0,maxZoom:o.options.maxZoom,minZoom:o.options.minZoom},this.options),function(e){const t=("https:"===location.protocol?"https":"http")+"://";let r=e.url.replace(/^(https?|ftp):\/\//,t);return e.y_origin_top||(r=r.replace("{y}","{-y}")),{url:r,name:e.name,attribution:e.copyright_text,maxZoom:e.z_max,minZoom:e.z_min}}(r)),r.origin_url){const[t,o]=function(e){const t=[];return[e=e.replace(/{switch:(.*?)}/,((e,r)=>("string"==typeof r&&r.split(",").forEach((e=>t.push(e))),"{s}"))),t]}(r.origin_url);o.length&&(e.subdomains=o,e.url=t)}return this.options=e,new a(this.map,e).addLayer(e)}}var i,s},new Promise(((e,t)=>{var o=e=>{try{a(s.next(e))}catch(r){t(r)}},n=e=>{try{a(s.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,n);a((s=s.apply(r,i)).next())}));var r,i,s}}return n}var jr=Object.defineProperty,Mr=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,Sr=(e,t,r)=>t in e?jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Nr=(e,t)=>{for(var r in t||(t={}))Cr.call(t,r)&&Sr(e,r,t[r]);if(Mr)for(var r of Mr(t))kr.call(t,r)&&Sr(e,r,t[r]);return e},Tr=(e,t,r)=>Sr(e,"symbol"!=typeof t?t+"":t,r);class Fr{constructor(e){Tr(this,"options",{url:"https://qms.nextgis.com"}),Tr(this,"url"),this.options=Nr(Nr({},this.options),e),this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return Ar({webMap:e,url:this.url})}}Tr(Fr,"utils",{createQmsAdapter:Ar});var Br=Object.defineProperty,Rr=Object.defineProperties,$r=Object.getOwnPropertyDescriptors,Dr=Object.getOwnPropertySymbols,qr=Object.getPrototypeOf,Vr=Object.prototype.hasOwnProperty,Gr=Object.prototype.propertyIsEnumerable,Ur=Reflect.get,zr=(e,t,r)=>t in e?Br(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Zr=(e,t)=>{for(var r in t||(t={}))Vr.call(t,r)&&zr(e,r,t[r]);if(Dr)for(var r of Dr(t))Gr.call(t,r)&&zr(e,r,t[r]);return e},Wr=(e,t)=>Rr(e,$r(t)),Jr=(e,t,r)=>Ur(qr(e),r,t),Hr=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Qr(e){let t;for(t in e){const r=e[t];if(I(r)){const o=r;if(p(o.year)&&p(o.month)&&p(o.day)){const r=[o.year,o.month-1,o.day];"hour"in o&&[o.hour,o.minute,o.second].forEach((e=>{r.push(e)})),e[t]=new Date(...r).toISOString()}}else"id"===t&&"string"==typeof r&&(e[t]=r.split(",").map(Number))}return e}var Kr=Object.defineProperty,Xr=Object.defineProperties,Yr=Object.getOwnPropertyDescriptors,eo=Object.getOwnPropertySymbols,to=Object.prototype.hasOwnProperty,ro=Object.prototype.propertyIsEnumerable,oo=(e,t,r)=>t in e?Kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,no=(e,t)=>{for(var r in t||(t={}))to.call(t,r)&&oo(e,r,t[r]);if(eo)for(var r of eo(t))ro.call(t,r)&&oo(e,r,t[r]);return e},io=(e,t)=>Xr(e,Yr(t)),so=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function ao(e){return so(this,null,(function*(){var t;const r=e.filters;if(r){let o=yield Je(io(no({},e),{filters:r}));return(null!=(t=e.clientFilterValidate)?t:lo(r))&&(o=o.filter((e=>Ne(Qr(io(no({},e.fields),{id:e.id})),r)))),o}return Xe(e)}))}function lo(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if("[object Array]"===Object.prototype.toString.call(r)){if(lo(r))return!0}}return!1}var co=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function uo(e){return function(e){return co(this,null,(function*(){const t=yield ao(e),r=[];return t.forEach((e=>{r.push(Ze(e))})),r}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const po=["fields","intersects","limit","orderBy","strategy"];function ho(e){const t={};return po.forEach((r=>{const o=e[r];void 0!==o&&(t[r]=o)})),t}var fo=Object.defineProperty,yo=Object.defineProperties,mo=Object.getOwnPropertyDescriptors,go=Object.getOwnPropertySymbols,bo=Object.getPrototypeOf,vo=Object.prototype.hasOwnProperty,_o=Object.prototype.propertyIsEnumerable,wo=Reflect.get,Oo=(e,t,r)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Lo=(e,t)=>{for(var r in t||(t={}))vo.call(t,r)&&Oo(e,r,t[r]);if(go)for(var r of go(t))_o.call(t,r)&&Oo(e,r,t[r]);return e},Po=(e,t)=>yo(e,mo(t)),Io=(e,t,r)=>Oo(e,"symbol"!=typeof t?t+"":t,r),xo=(e,t,r)=>wo(bo(e),r,t),Eo=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Ao(e){return Eo(this,null,(function*(){var t,o;const{item:n,webMap:i,Adapter:s,connector:a,layerOptions:l,addLayerOptionsPriority:c}=e,u=null==c||c,p=l,h=s||l.Adapter||i.mapAdapter.layerAdapters.GEOJSON,d=[];let f,y,m=!1;const g=yield br(p,a);(null==(o=null==(t=p.adapterOptions)?void 0:t.popupOptions)?void 0:o.fromProperties)&&(p.adapterOptions.popupOptions.createPopupContent=({feature:e})=>e&&function(e,t){{const r=document.createElement("div");if(t&&t.feature_layer)t.feature_layer.fields.forEach((t=>{if(t.grid_visibility){const o=e.properties&&e.properties[t.keyname];if(o){const e=document.createElement("div");r.appendChild(e),e.innerHTML=`<span>${t.display_name}</span>: ${o}<span></span>`}}}));else if(e.properties)for(const t in e.properties){const o=document.createElement("div");r.appendChild(o),o.innerHTML=`<span>${t}</span>: ${e.properties[t]}<span></span>`}return r}}(e,n));const b=(e,t)=>Eo(this,null,(function*(){_(),y=new AbortController;const r=y.signal;return(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",y.abort),(t=t||{}).signal=r,f={filters:e,options:t},uo(Lo({resourceId:g,filters:e,connector:a,cache:!0},t))}));let v=!1;const _=()=>{y&&(y.abort(),y=void 0)};class w extends h{constructor(){super(...arguments),Io(this,"emitter",new r),Io(this,"__onMapMove"),Io(this,"__onMapMoveStart"),Io(this,"__enableMapMoveListener"),Io(this,"__disableMapMoveListener")}addLayer(e){return Eo(this,null,(function*(){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==p.id&&(e.id=p.id),n&&n.vector_layer&&(e.type=pn[n.vector_layer.geometry_type]),p.adapterOptions&&(e=u?Lo(Lo({},p.adapterOptions),e):Lo(Lo({},e),p.adapterOptions)),e.data&&0===Object.keys(e.data).length&&(e.data=void 0,t=!1);const o=e.strategy||void 0;this.options.strategy=o;const i=xo(w.prototype,this,"addLayer").call(this,e);let s;return f={filters:e.propertiesFilter,options:ho(e)},t&&(s=this.updateLayer()),r&&s&&(yield s),o&&o.startsWith("BBOX")&&!m&&this._addBboxEventListener(),i}))}getExtent(){return this.getBounds()}getBounds(){return Eo(this,null,(function*(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?pr({connector:a,resourceId:n.resource.id}):xo(w.prototype,this,"getBounds")?xo(w.prototype,this,"getBounds").call(this):void 0}))}beforeRemove(){v=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,_()}getCount(){return function({connector:e,resourceId:t,cache:r=!0,signal:o}){return e.get("feature_layer.feature.count",{cache:r,signal:o},{id:t}).then((e=>e.total_count))}({connector:a,resourceId:g,cache:!0})}updateLayer(e){return Eo(this,null,(function*(){var t;if(e=e||f||{},null==(t=this.options.strategy)?void 0:t.startsWith("BBOX")){yield i.onLoad("create"),e.options=e.options||{},e.options.intersects=i.getBounds();const{minZoom:t,maxZoom:r}=this.options,o=i.getZoom();if(void 0!==o){if(void 0!==t&&o<t)return;if(void 0!==r&&o>r)return;if(m)return}}if(!v){try{this.emitter.emit("preupdate",e),i._emitLayerEvent("layer:preupdate",p.id||"",e);const t=yield b(e.filters,Po(Lo({},e.options),{srs:this.options.srs}));let r=t;const o=yield this.getCount();if("BBOX+"===this.options.strategy){r={type:"FeatureCollection",features:[]};for(const e of t.features)-1===d.indexOf(String(e.id))&&(d.push(String(e.id)),r.features.push(e));m=void 0!==o&&d.length>=o,yield i.addLayerData(this,r)}else m=void 0!==o&&t.features.length>=o,yield i.setLayerData(this,t);this.emitter.emit("updated",t),i._emitLayerEvent("layer:updated",p.id||"",{data:t,newData:r,isFull:m})}catch(r){if(r instanceof Error&&"CancelError"!==r.name)throw r}xo(w.prototype,this,"updateLayer")&&xo(w.prototype,this,"updateLayer").call(this)}}))}propertiesFilter(e,t){return Eo(this,null,(function*(){if(_(),this.filter&&m)this.filter((t=>{const r=t.feature&&t.feature.properties&&Qr(Lo({},t.feature.properties));return!r||Ne(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=yield b(e,Po(Lo({},t),{srs:this.options.srs}));this.setData(r)}}))}removeFilter(){f=void 0,this.propertiesFilter([]),this.filter&&this.filter((()=>!0))}_addBboxEventListener(){this.__enableMapMoveListener=e=>{e===this&&(this._removeMoveEventListener(),this.updateLayer(),this._addMoveEventListener())},this.__disableMapMoveListener=e=>{e===this&&this._removeMoveEventListener()},i.emitter.on("layer:show",this.__enableMapMoveListener),i.emitter.on("layer:hide",this.__disableMapMoveListener),this.__enableMapMoveListener(this)}_removeBboxEventListener(){this.__enableMapMoveListener&&i.emitter.on("layer:show",this.__enableMapMoveListener),this.__disableMapMoveListener&&i.emitter.on("layer:hide",this.__disableMapMoveListener)}_addMoveEventListener(){this.__onMapMove=function(e,t=10){let r;function o(...n){o.clear(),r=setTimeout((()=>{r=null,e.apply(this,n)}),t)}return o.clear=function(){r&&(clearTimeout(r),r=null)},o}((()=>this.updateLayer())),this.__onMapMoveStart=_,i.emitter.on("movestart",this.__onMapMoveStart),i.emitter.on("moveend",this.__onMapMove)}_removeMoveEventListener(){this.__onMapMove&&i.emitter.removeListener("moveend",this.__onMapMove),this.__onMapMoveStart&&i.emitter.removeListener("movestart",this.__onMapMoveStart)}}return w}))}var jo=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Mo({options:e,webMap:t,baseUrl:r}){var o;let n,i=e.adapter||"IMAGE";const s=t&&t.getLayerAdapters(),a=e.resource,l=e.tileNoData?e.tileNoData:200;if("number"==typeof a){if("IMAGE"===i){if(!s||s.IMAGE)return function({resourceId:e,baseUrl:t,nd:r,headers:o}){const n=t+"/api/component/render/image",i={resource:e};return r&&(i.nd=r),{url:n,resourceId:e,headers:o,params:i,updateWmsParams:t=>(r&&(t.nd=r),un(t,e))}}({resourceId:a,headers:e.headers,nd:l,baseUrl:r});i="TILE"}if("WMS"===i){n=`${r}/api/resource/${a}/wms`;const t=e.adapterOptions;return{url:n,format:"image/png",version:"1.1.1",layers:t&&t.layers,headers:e.headers}}if("MVT"===i)return n=r+"/api/component/feature_layer/mvt?x={x}&y={y}&z={z}&resource="+a+"&simplification="+(null!=(o=e.simplification)?o:6),{url:n,sourceLayer:"ngw:"+a,featureIdName:"$id"};if("TERRAIN"===i)return n=r+`/api/resource/${a}/terrain_provider`,{url:n,adapter:i};if("MODEL_3D"===i)return n=r+`/api/component/model_3d/${a}/data.glb`,{url:n};if("TILE"===i)return n=r+"/api/component/render/tile?z={z}&x={x}&y={y}&resource="+a+"&nd="+l,{url:n,adapter:i}}else{if(void 0!==a)throw new Error("Option `resource` must be number, not "+typeof a);console.log("Option `resource` not set")}}var Co=Object.defineProperty,ko=Object.defineProperties,So=Object.getOwnPropertyDescriptors,No=Object.getOwnPropertySymbols,To=Object.prototype.hasOwnProperty,Fo=Object.prototype.propertyIsEnumerable,Bo=(e,t,r)=>t in e?Co(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ro=(e,t)=>{for(var r in t||(t={}))To.call(t,r)&&Bo(e,r,t[r]);if(No)for(var r of No(t))Fo.call(t,r)&&Bo(e,r,t[r]);return e},$o=(e,t)=>ko(e,So(t)),Do=(e,t,r)=>Bo(e,"symbol"!=typeof t?t+"":t,r),qo=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Vo(e){return qo(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:o}){const n=o.resource.cls;let i=e.adapter||n&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[n]||"IMAGE";if(void 0!==i&&(e.adapter=i),"IMAGE"===i){const e=t.getLayerAdapters();!e||e.IMAGE||(i="TILE")}const s=t.mapAdapter.layerAdapters[i];if(s){const n=yield br(e,r);return class extends s{constructor(i,s){super(i,s),this.map=i,Do(this,"item",o),Do(this,"resourceId",n);const a=Mo({options:e,webMap:t,baseUrl:r.options.baseUrl||""});if(a){const t=$o(Ro(Ro({},a),e.adapterOptions),{params:{resource:n},layers:a.layers||String(n),resourceId:n});e.adapterOptions&&p(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options=Ro(Ro({},this.options),t)}}addLayer(e){return super.addLayer(Ro(Ro({},this.options),e))}getLegend(e){return qo(this,null,(function*(){const t=yield r.get("render.legend_symbols",Ro({params:{id:n},cache:!0},e)),o=this.options.id;if(void 0!==o){return[{layerId:o,legend:t.map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}return[]}))}getIdentificationIds(){return qo(this,null,(function*(){if(this.item){if("MVT"===i)return[this.item.resource.id];const e=this.item.resource.parent.id;if(p(e))return[e]}return[]}))}}}throw new Error(i+" not supported yet. Only TILE")}))}var Go=Object.defineProperty,Uo=Object.defineProperties,zo=Object.getOwnPropertyDescriptors,Zo=Object.getOwnPropertySymbols,Wo=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Ho=(e,t,r)=>t in e?Go(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qo=(e,t)=>{for(var r in t||(t={}))Wo.call(t,r)&&Ho(e,r,t[r]);if(Zo)for(var r of Zo(t))Jo.call(t,r)&&Ho(e,r,t[r]);return e},Ko=(e,t)=>Uo(e,zo(t)),Xo=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const Yo={},en=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];function tn(e){return Xo(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:o}){const n=o.resource.id,i=yield r.getResourceChildren(n),s=i&&i[0];if(s)return rn(Ko(Qo({},e),{resource:s.resource.id}),t,r)}))}function rn(e,t,r){return Xo(this,null,(function*(){let o,n;const i=e.adapter,s=yield br(e,r);if(s){const a=e.resource;if(n=a&&a.resource&&void 0!==a.resource.id?a:yield r.getResource(s),!n)throw"Resource item is not found";{const a=n.resource.cls,l={layerOptions:Ko(Qo({},e),{resource:s}),webMap:t,connector:r,item:n};if(-1!==en.indexOf(a))if("webmap"===a)o=function(e){return jo(this,arguments,(function*({layerOptions:e,webMap:t,connector:r}){const o=yield br(e,r);return class extends qn{constructor(e){super(e,{url:"",webMap:t,resourceId:o,connector:r})}}}))}(l);else if("vector_layer"===a||"postgis_layer"===a){const t=l.layerOptions.adapterOptions||{};if(t.type=t.type||n.vector_layer&&pn[n.vector_layer.geometry_type],l.layerOptions.adapterOptions=t,e.adapterOptions=l,void 0!==i&&"GEOJSON"!==i){if("MVT"!==i)return tn(l);o=Vo(l)}else o=Ao(l)}else{if("raster_layer"===a)return tn(l);if("basemap_layer"===a)o=function(e){return Hr(this,arguments,(function*({webMap:e,item:t}){if(t.basemap_layer){const r=t.basemap_layer.qms,o=t.basemap_layer.url;if(r){const t=JSON.parse(r);return Promise.resolve(Fr.utils.createQmsAdapter(e,void 0,{qms:t,baselayer:!0}))}if(o){const t=e.mapAdapter.layerAdapters.TILE;if(t){class e extends t{addLayer(t){return Hr(this,null,(function*(){return Jr(e.prototype,this,"addLayer").call(this,Wr(Zr({},t),{url:o}))}))}}return e}}}}))}(l);else if("GEOJSON"===i){const t=yield r.getResource(n.resource.parent.id);if(t){const r=Ko(Qo({},e),{resource:n.resource.parent.id});o=Ao(Ko(Qo({},l),{item:t,layerOptions:r}))}}else o=Vo(l)}else{if(!Yo[a])throw`Resource class '${a}' not yet supported.`;{const e=Yo[a];let t;t=i&&"function"!=typeof t?e[i]:e,t&&(o=t(l))}}}}if(o)return o.then((e=>{if(e){const t=e;return n&&(t.prototype.item=n,t.prototype.resourceId=n.resource.id,t.prototype.connector=r),u(t,[mr],{replace:!1}),t}}))}))}var on=Object.defineProperty,nn=Object.getOwnPropertySymbols,sn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable,ln=(e,t,r)=>t in e?on(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,cn=(e,t)=>{for(var r in t||(t={}))sn.call(t,r)&&ln(e,r,t[r]);if(nn)for(var r of nn(t))an.call(t,r)&&ln(e,r,t[r]);return e};function un(e,t){const{bbox:r,width:o,height:n,nd:i}=e;return{resource:Array.isArray(t)?t.join(","):t,extent:r,size:o+","+n,timestamp:Date.now(),nd:null!=i?i:200}}const pn={POINT:"point",LINESTRING:"line",POLYGON:"polygon",MULTIPOINT:"point",MULTILINESTRING:"line",MULTIPOLYGON:"polygon",POINTZ:"point",LINESTRINGZ:"line",POLYGONZ:"polygon",MULTIPOINTZ:"point",MULTILINESTRINGZ:"line",MULTIPOLYGONZ:"polygon"};let hn;function dn(e,t=0){const r=t,o=function(){if(void 0===hn){const e=document.createElement("div");e.style.cssText="position: absolute; left: -100%; top: -100%; width: 100cm;",document.body.appendChild(e);const t=e.offsetWidth;document.body.removeChild(e),hn=t}return hn}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e,n=function(e){return Math.log(e/256)/Math.LN2}(o);return n}var fn=Object.defineProperty,yn=Object.getOwnPropertySymbols,mn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,bn=(e,t,r)=>t in e?fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,vn=(e,t)=>{for(var r in t||(t={}))mn.call(t,r)&&bn(e,r,t[r]);if(yn)for(var r of yn(t))gn.call(t,r)&&bn(e,r,t[r]);return e},_n=(e,t,r)=>bn(e,"symbol"!=typeof t?t+"":t,r),wn=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const On=class e extends Yt{constructor(t,o,n,i,s,a){if(super(vn(vn({},e.options),n)),this.webMap=t,_n(this,"item"),_n(this,"connector"),_n(this,"layer"),_n(this,"emitter",new r),_n(this,"_rootDescendantsCount",0),i&&(this.connector=i),s&&this.tree.setParent(s),this.item=o,"root"===this.item.item_type)this._rootDescendantsCount=this._sumUp(this.item.children);else{const e=this.tree.getRoot();e&&(this._rootDescendantsCount=e._rootDescendantsCount)}this.initProperties(),a||this._init(o)}static create(t,r,o,n,i){return wn(this,null,(function*(){const s=new e(t,r,o,n,i,!0);return yield s._init(r),s}))}initItem(e){return"group"===e.item_type||"root"===e.item_type?this.initGroupItem(e):this.initLayerItem(e)}bringToFront(){}fit(){}getLayer(){return this.layer}getLegend(e){return wn(this,null,(function*(){var t;const r=null==(t=this.layer)?void 0:t.id;if(void 0!==r){const t=this.connector;if(t){return[{layerId:r,legend:(yield t.get("render.legend_symbols",vn({params:{id:this.item.resourceId}},e))).map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}}return[]}))}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,o={visibility:!1,name:e.display_name,headers:this.options.headers,crossOrigin:this.options.crossOrigin,setViewDelay:this.options.setViewDelay,params:{resource:this.item.resourceId,item:this.item}};if(this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e?this._rootDescendantsCount-e.draw_order_position:this.id).padStart(4,"0");o.order=Number((0|this.options.order)+"."+t)}if(this.options.popupOptions&&(o.popupOptions=this.options.popupOptions),"layer"===e.item_type){const{maxZoom:t,minZoom:r}=this._getZoomRange(e);Object.assign(o,{updateWmsParams:e.updateWmsParams,url:e.url,headers:this.options.headers,ratio:this.options.ratio,maxZoom:t,minZoom:r,minScale:e.layer_min_scale_denom,maxScale:e.layer_max_scale_denom,interactive:e.layer_identifiable})}return void 0!==r&&(o.opacity=r),o}getChildren(e){return[...e.children].reverse()}_mapScaleToZoomLevel(e){return dn(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor(this.webMap,e,this.options,this.connector,this);this.tree.addChild(t)}}return Promise.resolve()}initLayerItem(t){const r=this.getItemOptions(t),o=e=>{t._layer=e,this.layer=e;this.properties.get("visibility")&&this.properties.set("visibility",!0),void 0!==r.opacity&&this.webMap.setLayerOpacity(e,r.opacity)};let n;if("layer"===t.item_type)n=t.adapter||t.layer_adapter.toUpperCase();else if(e.GetAdapterFromLayerType[t.item_type]){n=(0,e.GetAdapterFromLayerType[t.item_type])(t,r,this.webMap,this.connector)}return n?this.webMap.addLayer(n,r).then((e=>{o(e)})):t._layer?Promise.resolve(o(t._layer)):Promise.reject("No layer added")}_getZoomRange(e){const t=this.options.minZoom,r=this.options.maxZoom,o=e.layer_min_scale_denom?this._mapScaleToZoomLevel(e.layer_min_scale_denom):void 0,n=e.layer_max_scale_denom?this._mapScaleToZoomLevel(e.layer_max_scale_denom):void 0,i=[t,o].filter(Boolean),s=[r,n].filter(Boolean);return{minZoom:i.length?Math.max(...i):void 0,maxZoom:s.length?Math.min(...s):void 0}}_init(e){this.initItem(e).then((()=>{this.emitter.emit("init")}))}_sumUp(e,t=0){for(const r of e)"layer"===r.item_type?(t+=1,r.draw_order_position=r.draw_order_position||t):"group"===r.item_type&&(t=this._sumUp(r.children,t));return t}};_n(On,"GetAdapterFromLayerType",{}),_n(On,"options",{properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return gt(e.item,(e=>"layer_enabled"in e&&e.layer_enabled),(e=>e.children));if("layer"===e.item.item_type)return e.item.layer_enabled}return!1},onSet(e,t,r){r&&"layer"===r.item.item_type&&(r.layer&&(e?r.webMap.showLayer(r.layer):r.webMap.hideLayer(r.layer)),r.item.layer_enabled=e)}},{name:"opacity",handler:class extends jt{getProperty(){const e=this.item.layer;return e&&e&&e.options&&void 0!==e.options.opacity?e.options.opacity:1}update(e,t){if(t=t||{},this.isGroup()){this._value=this._prepareValue(e,t);const r=this.getChildren();for(const o of r){const r=o.properties.property(this.name);r&&(t.propagation?r.set(e,t):r.update(r.get(),t))}}const r=this.item.layer;if(r){const t=this.getParents().reduce(((e,t)=>{const r=t.properties.property(this.name);return e*(r?r.getValue():1)}),1);this.item.webMap.setLayerOpacity(r,this._prepareValue(e*t))}}_prepareValue(e,t){return t&&t.propagation&&this.isGroup()?1:Number(e)}}}]});let Ln=On;var Pn=Object.defineProperty,In=Object.getOwnPropertySymbols,xn=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable,An=(e,t,r)=>t in e?Pn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jn=(e,t)=>{for(var r in t||(t={}))xn.call(t,r)&&An(e,r,t[r]);if(In)for(var r of In(t))En.call(t,r)&&An(e,r,t[r]);return e},Mn=(e,t,r)=>An(e,"symbol"!=typeof t?t+"":t,r),Cn=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function kn(e){return t=this,r=arguments,o=function*({webMap:e,connector:t,item:r,adapterOptions:o={},idPrefix:n="first-show-adapter"}){const i=function(e){return Cn(this,arguments,(function*({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:o}){return class{constructor(){Mn(this,"options",{}),Mn(this,"layer",[]),Mn(this,"_removed",!1),Mn(this,"_creatingInProgress",!1)}addLayer(){return this.layer}removeLayer(){this._removed=!0;for(const t of this.layer)e.removeLayer(t)}destroyed(){return this._removed}showLayer(){return Cn(this,null,(function*(){if(this.options.visibility=!0,this.layer.length)for(const t of this.layer)yield e.showLayer(t);else yield this.loadLayer()}))}hideLayer(){return Cn(this,null,(function*(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)yield e.hideLayer(t)}))}loadLayer(){return Cn(this,null,(function*(){if(!this.layer.length&&!this._creatingInProgress){this._creatingInProgress=!0;const n=yield o(this);if(n){const o=new n(e.mapAdapter.map,jn({},t)),i=yield o.addLayer({order:this.options.order,headers:this.options.headers,baselayer:this.options.baselayer});r&&r(o),Object.assign(o.options,t),o.layer=i,this._removed&&e.removeLayer(o),this.layer.push(o),this.options.visibility&&(yield e.showLayer(o)),this._creatingInProgress=!1}}return this.layer}))}}}))}({webMap:e,adapterOptions:o,onLayerAdded:e=>{e.options.baselayer=!1,e.id=n+"-"+r.resource_id},createAdapter:()=>rn({resource:r.resource_id,adapterOptions:{name:r.display_name,opacity:r.opacity}},e,t)});return i},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o}var Sn=Object.defineProperty,Nn=Object.getOwnPropertySymbols,Tn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable,Bn=(e,t,r)=>t in e?Sn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Rn=(e,t)=>{for(var r in t||(t={}))Tn.call(t,r)&&Bn(e,r,t[r]);if(Nn)for(var r of Nn(t))Fn.call(t,r)&&Bn(e,r,t[r]);return e},$n=(e,t,r)=>Bn(e,"symbol"!=typeof t?t+"":t,r),Dn=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class qn{constructor(e,t){this.map=e,this.options=t,$n(this,"layer"),$n(this,"NgwWebmapItem",Ln),$n(this,"pixelRadius",10),$n(this,"resourceId"),$n(this,"webmapClassName","webmap"),$n(this,"emitter",new r),$n(this,"_extent"),$n(this,"response"),$n(this,"_webmapLayersIds"),$n(this,"_webmapBaselayersIds",[]),$n(this,"_lastActiveBaselayer");const o=t.resourceId;if(Array.isArray(o)?(this.resourceId=o[0],this.options.id=o[1]):this.resourceId=o,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}addLayer(e){return Dn(this,null,(function*(){var t,r;this.options=Rn(Rn({},this.options),e),this.layer=yield this._getWebMapLayerItem();const o=null==(r=null==(t=this.response)?void 0:t.webmap)?void 0:r.extent_constrained;return this.options.useExtentConstrained&&this._extent&&o&&this.options.webMap.setView({maxBounds:this._extent}),this.layer}))}removeLayer(){const e=this.options.webMap.mapAdapter;if(this.getDependLayers().forEach((t=>{"layer"in t&&e.removeLayer(t.layer.layer)})),this._webmapBaselayersIds.length){for(const e of this._webmapBaselayersIds)this.options.webMap.removeLayer(e);this._lastActiveBaselayer&&this.options.webMap.showLayer(this._lastActiveBaselayer)}this.options.useExtentConstrained&&this._extent&&this.options.webMap.setView({maxBounds:null}),delete this.layer,delete this.response,delete this._webmapLayersIds}showLayer(){return Dn(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}))}hideLayer(){return Dn(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}))}setOpacity(e){return Dn(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("opacity").set(e)}))}getExtent(){return this.getBounds()}getBounds(){const e=this.response&&this.response.webmap;if(e)return cr(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.response&&this.response.webmap;if(e)return e.bookmark_resource.id}fetchBookmarks(e){const t=this.getBookmarksResourceId(),r=this.options.connector;if(t)return r.getResourceOrFail(t,e).then((o=>{var n;const i=null==(n=o.feature_layer)?void 0:n.fields.find((e=>e.label_field)),s=i&&i.keyname;return ao(Rn({connector:r,resourceId:t,geom:!1,fields:s?[s]:void 0},e)).then((e=>{const o=[];for(const n of e){const e=new mt({item:n,resourceId:t,labelField:s,connector:r});o.push(e)}return o}))}));throw new Error("Webmap was not loaded correctly, it is impossible to extract bookmarks")}getLegend(e){return Dn(this,null,(function*(){const t=[];let r=this.getDependLayers();r=r.sort(((e,t)=>t.id-e.id));for(const o of r){const r=yield o.getLegend(e);t.push(...r)}return t}))}getIdentificationIds(e){return Dn(this,null,(function*(){const t=[];let r=this._webmapLayersIds;if(r||(r=yield this._getWebMapIds(e),this._webmapLayersIds=r),r&&r.length){let e=this.getDependLayers();e=e.sort(((e,t)=>t.id-e.id)),e.forEach((e=>{const r=e.item,o=r.parentId;if(void 0!==o&&"layer"===r.item_type&&r.layer_identifiable){const r=e.properties.property("visibility");r.get()&&!r.isBlocked()&&t.push(o)}}))}return t}))}_getWebMapLayerItem(){return Dn(this,null,(function*(){if(this.resourceId){const e=yield this.getWebMapConfig(this.resourceId);if(e&&e.root_item)return new Promise((t=>{const r={};if(this.options.connector&&this.options.connector.options.auth){const e=this.options.connector.getAuthorizationHeaders();e&&(r.headers=e)}r.setViewDelay=this.options.setViewDelay,r.order=this.options.order,r.ratio=this.options.ratio,r.crossOrigin=this.options.crossOrigin,r.minZoom=this.options.minZoom,r.maxZoom=this.options.maxZoom,r.drawOrderEnabled=e.draw_order_enabled,r.popupOptions=this.options.popupOptions;const o=new this.NgwWebmapItem(this.options.webMap,e.root_item,r,this.options.connector);o.emitter.on("init",(()=>t(o)))}))}}))}getWebMapConfig(e){return Dn(this,null,(function*(){const t=yield this.options.connector.getResource(e);if(t){this.response=t;const e=t[this.webmapClassName];if(this._setupBaselayers(t),e)return this._extent=[e.extent_left,e.extent_bottom,e.extent_right,e.extent_top],this._updateItemsParams(e.root_item,this.options.webMap,t),e}}))}_setupBaselayers(e){var t;const r=this.options.webMap;if(null==(t=this.options.useBasemap)||t)if(e.basemap_webmap&&e.basemap_webmap.basemaps.length){const t=r.getActiveBaseLayer();this._lastActiveBaselayer=t?t.id:void 0,this._setBasemaps(e.basemap_webmap)}else this.options.defaultBasemap&&r.addBaseLayer("OSM",{id:"webmap-default-baselayer",name:"OpenStreetMap"})}_setBasemaps(e){const t=this.options.webMap;let r=!1;for(const o of e.basemaps)kn({webMap:t,connector:this.options.connector,item:o,adapterOptions:{crossOrigin:this.options.crossOrigin}}).then((e=>{const n=!r&&o.enabled;return o.enabled&&(r=!0),t.addBaseLayer(e,{id:"webmap-baselayer"+o.resource_id,name:o.display_name,opacity:o.opacity,visibility:n}).then((e=>{e.id&&this._webmapBaselayersIds.push(e.id)}))}))}_updateItemsParams(e,t,r){if(e)if("group"===e.item_type||"root"===e.item_type)e.children&&(e.children=e.children.map((e=>this._updateItemsParams(e,t,r)))),"root"===e.item_type&&(e.display_name=r.resource.display_name);else if("layer"===e.item_type){const r=x(this.options.connector.options.baseUrl+"/api/component/render/image"),o=e.layer_style_id;e.url=r,e.resourceId=o,e.updateWmsParams=e=>un(e,o);const n=Mo({options:{adapter:e.layer_adapter.toUpperCase(),resource:o},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e=Rn(Rn({},e),n)}return e}_getWebMapIds(e){return Dn(this,null,(function*(){const t=this.layer;if(t&&"root"===t.item.item_type){const r=t.tree.getDescendants(),o=[];for(const t of r){const r=t.item;if("layer"===r.item_type){const t=this.options.connector.getResource(r.layer_style_id,e).then((e=>{if(e){const t=Number(e.resource.parent.id);return r.parentId=t,t}}));o.push(t)}}return(yield Promise.all(o)).filter((e=>void 0!==e))}}))}}var Vn=Object.defineProperty,Gn=Object.getOwnPropertySymbols,Un=Object.prototype.hasOwnProperty,zn=Object.prototype.propertyIsEnumerable,Zn=(e,t,r)=>t in e?Vn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wn=(e,t)=>{for(var r in t||(t={}))Un.call(t,r)&&Zn(e,r,t[r]);if(Gn)for(var r of Gn(t))zn.call(t,r)&&Zn(e,r,t[r]);return e},Jn=(e,t,r)=>Zn(e,"symbol"!=typeof t?t+"":t,r);class Hn{constructor(e){if(this.options=e,Jn(this,"url"),Jn(this,"connector"),Jn(this,"webMap"),this.options.connector)this.url=this.options.connector.options.baseUrl||"",this.connector=this.options.connector;else{if(!this.options.baseUrl)throw new Error("url is not defined");this.url=this.options.baseUrl,this.connector=new Pe({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){Yo[e]=t}onLoadSync(e){return t=this,r=null,o=function*(){if(this.options.resourceId&&this.url){const t=[this.options.resourceId];if(t.length)for(const r of t){const t={resourceId:r,connector:this.connector,webMap:e};return yield e.addLayer(qn,Wn({visibility:!0,fit:!0,pixelRadius:this.options.pixelRadius},t))}}},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o}getLayerAdapters(){return Promise.resolve([this._getLayerAdapter()])}_getLayerAdapter(){return{name:"WEBMAP",createAdapter:e=>Promise.resolve(this._createAdapter(e))}}_createAdapter(e){return t={webMap:e,connector:this.connector,baseUrl:this.url},class extends qn{constructor(e,r){super(e,r=cn(cn({},t),r))}};var t}}var Qn=Object.defineProperty,Kn=Object.getOwnPropertySymbols,Xn=Object.prototype.hasOwnProperty,Yn=Object.prototype.propertyIsEnumerable,ei=(e,t,r)=>t in e?Qn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ti=(e,t)=>{for(var r in t||(t={}))Xn.call(t,r)&&ei(e,r,t[r]);if(Kn)for(var r of Kn(t))Yn.call(t,r)&&ei(e,r,t[r]);return e},ri=(e,t,r)=>ei(e,"symbol"!=typeof t?t+"":t,r);class oi{constructor(e){ri(this,"id"),ri(this,"label"),ri(this,"layerId"),ri(this,"parent"),ri(this,"fields"),ri(this,"geom"),ri(this,"extensions"),ri(this,"connector"),ri(this,"_item"),ri(this,"_geojson"),ri(this,"_resource"),ri(this,"_extent");const t=e.feature;this.id=t.id,this.geom=t.geom,this.label=t.label,this.parent=t.parent,this.fields=t.fields,this.layerId=t.layerId,this.connector=e.connector}identify(e={}){return this._item?Promise.resolve(this._item):ct(ti({connector:this.connector,featureId:this.id,resourceId:this.layerId,fields:null,extensions:["attachment","description"]},e)).then((e=>(this._item=e,this.geom=e.geom,this.extensions=e.extensions,e)))}resource(e){return this._resource?Promise.resolve(this._resource.feature_layer):this.connector.getResource(this.layerId,e).then((e=>(this._resource=e,this._resource.feature_layer)))}getBounds(e){return this._extent?Promise.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:o=!0,signal:n}){return r.get("feature_layer.feature.item_extent",{cache:o,signal:n},{id:e,fid:t}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:o,minLon:n}=e.extent;return[n,o,r,t]}}))}(ti({connector:this.connector,featureId:this.id,resourceId:this.layerId},e))}geojson(e){return this._geojson?Promise.resolve(this._geojson):this.identify(e).then((e=>e.toGeojson().then((e=>(this._geojson=e,e)))))}}var ni=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function ii(e){return ni(this,null,(function*(){return Ze(yield ct(e))}))}var si=Object.defineProperty,ai=Object.defineProperties,li=Object.getOwnPropertyDescriptors,ci=Object.getOwnPropertySymbols,ui=Object.prototype.hasOwnProperty,pi=Object.prototype.propertyIsEnumerable,hi=(e,t,r)=>t in e?si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,di=(e,t)=>{for(var r in t||(t={}))ui.call(t,r)&&hi(e,r,t[r]);if(ci)for(var r of ci(t))pi.call(t,r)&&hi(e,r,t[r]);return e},fi=(e,t)=>ai(e,li(t));function yi(e,t=!1){const r=[],o=[];for(const i in e){const e=Number(i);isNaN(e)||r.push(e)}const n=e.resources;n&&r.sort(((e,t)=>n.indexOf(e)-n.indexOf(t)));for(let i=0;i<r.length;i++){const n=r[i],s=e[n];if("features"in s){const e=mi(s.features,Number(n),t);if(e.length&&(o.push(...e),!t))break}}return o}function mi(e,t,r){const o=[];for(const n of e){if(o.push({featureId:n.id,resourceId:t,feature:n}),!r)break}return o}function gi(e){const{geom:t,signal:r,cache:o,layers:n}=e,i="string"==typeof t?t:function(e){const t=function(e){var t;if(Array.isArray(e))return e;if("Feature"===e.type)return null==(t=e.geometry)?void 0:t.coordinates[0];if("Polygon"===e.type)return e.coordinates[0];return null}(e);if(!t)return null;return`POLYGON((${t.map((([e,t])=>{const[r,o]=w(e,t);return`${r} ${o}`})).join(",")}))`}(t);if(!i)throw new Error("Not valid geometry format to make intersection");return e.connector.post("feature_layer.identify",{data:{geom:i,srs:3857,layers:n},signal:r,cache:o})}function bi(e,t){return r=this,o=null,n=function*(){var r;const o=yield e.get("pyramid.settings",null,{component:"pyramid"});if(o&&o.company_logo&&o.company_logo.enabled){const i=document.createElement("a");i.style.position="absolute",i.style.bottom="0",i.style.right="0",i.style.padding=null!=(r=null==t?void 0:t.padding)?r:"10px",i.className="ngw-map-logo",t&&t.cssClass&&(i.className+=" "+t.cssClass);const s=new Image;s.style.maxHeight="100px",s.style.maxWidth="100px",s.src="";try{const t=yield e.get("pyramid.company_logo",{responseType:"blob"}),r=(window.URL||window.webkitURL).createObjectURL(t);s.src=r}catch(n){console.warn(n)}return null!==o.company_logo.link&&""!==o.company_logo.link.trim()&&(i.href=o.company_logo.link,i.target="_blank",-1!==o.company_logo.link.search(/:\/\/nextgis/)&&(s.alt="Get your own Web GIS at nextgis.com")),i.appendChild(s),i}},new Promise(((e,t)=>{var i=e=>{try{a(n.next(e))}catch(r){t(r)}},s=e=>{try{a(n.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(r,o)).next())}));var r,o,n}function vi(e){return"function"==typeof e}function _i(e){return(t,r)=>{const o=t.map((e=>e()));return e(o,r)}}const wi={"!":_i((function([e]){return!e})),"!=":_i((function([e,t]){return e!==t})),"<":_i((function([e,t]){return e<t})),"<=":_i((function([e,t]){return e<=t})),"==":_i((function([e,t]){return e===t})),">":_i((function([e,t]){return e>t})),">=":_i((function([e,t]){return e>=t})),coalesce:e=>{for(let t=0;t<e.length;t++){const r=e[t]();if(null!=r)return r}return null},all:e=>{for(let t=0;t<e.length;t++){if(!e[t]())return!1}return!0},any:e=>{for(let t=0;t<e.length;t++){if(e[t]())return!0}return!1},case:e=>{if(e.length<2)throw new Error('The "case" function requires at least a condition and a corresponding output.');if(e.length%2==0)throw new Error("Missing a fallback value or unmatched condition-output pair.");for(let t=0;t<e.length-1;t+=2){const r=e[t](),o=e[t+1]();if(r)return o}return(0,e[e.length-1])()},match:e=>{const[t,...r]=e,o=t(),n=r.splice(-1,r.length%2)[0];for(let i=0;i<r.length-1;i+=2){if(r[i]()===o)return r[i+1]()}return n()}},Oi={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Li(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return Pi(e);if("string"==typeof(t=e)&&t in Oi)return function(e){return Pi(Oi[e])}(e);if(function(e){return"string"==typeof e&&/^rgb(a?)\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)(?:\s*,\s*([01](?:\.\d+)?))?\s*\)$/.test(e)}(e))return function(e){const t=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)$/;let r;if(r=e.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))return[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10)];if(r=e.match(t))return[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10),parseFloat(r[4])];throw new Error(`The '${e}' Is not valid rgb`)}(e);if(function(e){if("object"==typeof e&&null!==e)return"r"in e&&"g"in e&&"b"in e&&(!("a"in e)||"number"==typeof e.a&&e.a>=0&&e.a<=1);return!1}(e))return function({r:e,g:t,b:r,a:o}){return[e,t,r,...void 0!==o?[o]:[]]}(e);var t,r;throw new Error(`The '${e}' cannot be converted to color`)}function Pi(e){let t;if(t=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/.exec(e))return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];if(t=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/.exec(e))return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),parseInt(t[4]+t[4],16)/255];if(t=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/.exec(e))return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)];if(t=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/.exec(e))return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),parseInt(t[4],16)/255];throw new Error(`The '${e}' Is not valid hex`)}function Ii(e,t,r,o,n){if("number"==typeof r&&"number"==typeof n)return r+(e-t)/(o-t)*(n-r);try{const i=Li(r),s=Li(n);return function(e){return`rgb(${e.join(",")})`}(i.map(((r,n)=>Math.ceil(Ii(e,t,r,o,s[n])))))}catch(i){console.log(i)}throw new Error("Unsupported output type for linear interpolation.")}const xi={step:e=>{const[t,r,...o]=e,n=t();if("number"!=typeof n)return r();for(let i=0;i<o.length-2;i+=2){const e=o[i](),t=o[i+1](),r=o[i+2]();if(n>=e&&n<r)return t}return n>=o[o.length-2]()?o[o.length-1]():r()},interpolate:([e,t,...r])=>{if(r.length<2)throw new Error("At least two stops are required");if(r.length<2||r.length%2!=0)throw new Error("Invalid stops provided.");const o=t();if("number"!=typeof o)throw new Error("Input must be a number.");const n=e();for(let i=0;i<r.length-2;i+=2){const e=r[i](),t=r[i+1](),s=r[i+2](),a=r[i+3]();if(o>=e&&o<=s&&"linear"===n[0])return Ii(o,e,t,s,a)}throw new Error("Invalid interpolation type.")}};const Ei={get:_i((function([e,t],r){const o=t||r;return o&&"object"==typeof o&&e in o?o[e]:null})),length:_i((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:_i((function([e,t]){return t[e]})),has:_i((function([e,t],r){const o=t||r;return!(!o||"object"!=typeof o||!(e in o))})),in:_i((function([e,t]){if("string"==typeof t)return t.includes(String(e));if(Array.isArray(t))return t.includes(e);throw new Error(`Invalid input type for 'in'. Expected string or array, got ${typeof t}.`)})),"index-of":_i((function([e,t,r]){if("string"==typeof t)return t.indexOf(String(e),r);if(Array.isArray(t))return t.indexOf(e,r);throw new Error(`Invalid input type for 'index-of'. Expected string or array, got ${typeof t}.`)})),slice:_i((function(e){const[t,r,o]=e;if("string"==typeof t)return t.slice(r,o);if(Array.isArray(t))return t.slice(r,o);throw new Error(`Invalid input type for 'slice'. Expected string or array, got ${typeof t}.`)}))},Ai={"+":_i((e=>e.reduce(((e,t)=>e+t),0))),"-":_i((e=>e.reduce(((e,t)=>e-t)))),"*":_i((e=>e.reduce(((e,t)=>e*t),1))),"/":_i((e=>e.reduce(((e,t)=>e/t)))),"%":_i((e=>e[0]%e[1])),"^":_i((e=>Math.pow(e[0],e[1]))),abs:_i((e=>Math.abs(e[0]))),acos:_i((e=>Math.acos(e[0]))),asin:_i((e=>Math.asin(e[0]))),atan:_i((e=>Math.atan(e[0]))),ceil:_i((e=>Math.ceil(e[0]))),cos:_i((e=>Math.cos(e[0]))),e:()=>Math.E,floor:_i((e=>Math.floor(e[0]))),ln:_i((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:_i((e=>Math.log10(e[0]))),log2:_i((e=>Math.log2(e[0]))),max:_i((e=>Math.max(...e))),min:_i((e=>Math.min(...e))),pi:()=>Math.PI,round:_i((e=>Math.round(e[0]))),sin:_i((e=>Math.sin(e[0]))),sqrt:_i((e=>Math.sqrt(e[0]))),tan:_i((e=>Math.tan(e[0])))},ji={concat:_i((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:_i((e=>String(e[0]).toLowerCase())),upcase:_i((e=>String(e[0]).toUpperCase()))},Mi=(e,t,r)=>{try{const o=e(t,r);if(void 0!==o)return o}catch(o){}};function Ci(e){return(t,r)=>{for(const o of t){const t=Mi(e,o,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}const ki={array:_i((e=>{const[t,r,o]=e;let n,i,s;if("string"==typeof t&&["string","number","boolean"].includes(t)?(n=t,"number"==typeof r?(i=r,s=o):s=r):Array.isArray(t)&&(s=t),!Array.isArray(s))throw new Error("Expected an array");if(n&&!s.every((e=>typeof e===n)))throw new Error(`Expected all items in array to be of type ${n}`);if(i&&s.length!==i)throw new Error(`Expected array of length ${i}`);return s})),boolean:_i(Ci((e=>"boolean"==typeof e?e:void 0))),literal:_i((([e])=>e)),number:_i(Ci((e=>"number"==typeof e?e:void 0))),object:_i(Ci((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:_i(Ci((e=>"string"==typeof e?e:void 0))),"to-boolean":_i(Ci(Boolean)),"to-number":_i(Ci(Number)),"to-string":_i(Ci(String)),typeof:_i((([e])=>function(e){if(null===e)return"null";switch(typeof e){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"object":if(Array.isArray(e)){let t="value";return e.every((e=>"number"==typeof e))?t="number":e.every((e=>"string"==typeof e))?t="string":e.every((e=>"boolean"==typeof e))&&(t="boolean"),`array<${t}, ${e.length}>`}return"object";default:return"undefined"}}(e)))};var Si=Object.defineProperty,Ni=Object.getOwnPropertySymbols,Ti=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Bi=(e,t,r)=>t in e?Si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ri=(e,t)=>{for(var r in t||(t={}))Ti.call(t,r)&&Bi(e,r,t[r]);if(Ni)for(var r of Ni(t))Fi.call(t,r)&&Bi(e,r,t[r]);return e};function $i(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in Di&&r.length>0}return!1}const Di=Ri(Ri(Ri(Ri(Ri(Ri({},Ai),ki),ji),Ei),wi),xi);function qi(e,t={}){const[r,...o]=e,n=Di[r];if(n)return n(o.map((e=>()=>$i(e)?qi(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}var Vi=Object.defineProperty,Gi=Object.getOwnPropertySymbols,Ui=Object.prototype.hasOwnProperty,zi=Object.prototype.propertyIsEnumerable,Zi=(e,t,r)=>t in e?Vi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wi=(e,t)=>{for(var r in t||(t={}))Ui.call(t,r)&&Zi(e,r,t[r]);if(Gi)for(var r of Gi(t))zi.call(t,r)&&Zi(e,r,t[r]);return e};function Ji(e){return t=>{const r=t.properties;return!!r&&qi(e,r)}}const Hi=["iconSize","iconAnchor"];var Qi=Object.defineProperty,Ki=Object.getOwnPropertySymbols,Xi=Object.prototype.hasOwnProperty,Yi=Object.prototype.propertyIsEnumerable,es=(e,t,r)=>t in e?Qi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ts=(e,t)=>{for(var r in t||(t={}))Xi.call(t,r)&&es(e,r,t[r]);if(Ki)for(var r of Ki(t))Yi.call(t,r)&&es(e,r,t[r]);return e};function rs(e){let t={};const r=[];for(const o of e)o&&(Array.isArray(o)?r.push(o):t=o);return e=>{const o=r.find((t=>function(e,t){const r=Me({},e.properties);return!!r&&(r.$id=e.id,Ne(r,t))}(e,t[0])));return o?ts(ts({},t),o[1]):t}}function os({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const o in e)if(-1===Hi.indexOf(o)){const n=o,i=e[n];$i(i)&&(t=!0,r[n]=Ji(i))}if(t)return t=>{const o={};for(const e in r)o[e]=r[e](t);return Wi(Wi({},e),o)}}(e);if(r){const o=e=>is({paint:r(e),defaultPaint:t});return o.paint=ns({paint:e,defaultPaint:t}),o}return ns({paint:e,defaultPaint:t})}function ns({paint:e,defaultPaint:t}){var r;let o=ts({},t);return o=ts(ts({},o),e),o.fill=null==(r=o.fill)||r,o.stroke=void 0!==o.stroke?o.stroke:!o.fill||!(!o.strokeColor&&!o.strokeOpacity),o}function is({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let o=ts({},t);if(vi(e)){const o=o=>{const n=is({paint:e(o),defaultPaint:t,getPaintFunctions:r});return n.type=e.type,n};return o.type=e.type,o}if(function(e){return!!Array.isArray(e)}(e))return o=>is({paint:rs(e)(o),defaultPaint:t,getPaintFunctions:r});if("get-paint"===e.type){const n=function(e,t){if("function"==typeof e.from)return e.from(e.options);if("string"==typeof e.from&&t){const r=t[e.from];if(r)return r(e.options)}}(e,r);n&&(o=is({paint:n,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;o=os({paint:e,defaultPaint:t})}return vi(o)||("color"in o&&(o.strokeColor||(o.strokeColor=o.color),o.fillColor||(o.fillColor=o.color)),"opacity"in o&&(void 0===o.strokeOpacity&&(o.strokeOpacity=o.opacity),void 0===o.fillOpacity&&(o.fillOpacity=o.opacity))),o}var ss=Object.defineProperty,as=(e,t,r)=>((e,t,r)=>t in e?ss(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ls{constructor(){as(this,"backspace",8),as(this,"tab",9),as(this,"enter",13),as(this,"shift",16),as(this,"ctrl",17),as(this,"alt",18),as(this,"pause/break",19),as(this,"caps_lock",20),as(this,"escape",27),as(this,"page_up",33),as(this,"page_down",34),as(this,"end",35),as(this,"home",36),as(this,"left_arrow",37),as(this,"up_arrow",38),as(this,"right_arrow",39),as(this,"down_arrow",40),as(this,"insert",45),as(this,"delete",46),as(this,"left_window_key",91),as(this,"right_window_key",92),as(this,"select_key",93),as(this,"numpad_0",96),as(this,"numpad_1",97),as(this,"numpad_2",98),as(this,"numpad_3",99),as(this,"numpad_4",100),as(this,"numpad_5",101),as(this,"numpad_6",102),as(this,"numpad_7",103),as(this,"numpad_8",104),as(this,"numpad_9",105),as(this,"multiply",106),as(this,"add",107),as(this,"subtract",109),as(this,"decimal_point",110),as(this,"divide",111),as(this,"f1",112),as(this,"f2",113),as(this,"f3",114),as(this,"f4",115),as(this,"f5",116),as(this,"f6",117),as(this,"f7",118),as(this,"f8",119),as(this,"f9",120),as(this,"f10",121),as(this,"f11",122),as(this,"f12",123),as(this,"num_lock",144),as(this,"scroll_lock",145),as(this,"semi-colon",186),as(this,"equal_sign",187),as(this,",",188),as(this,"-",189),as(this,".",190),as(this,"/",191),as(this,"`",192),as(this,"[",219),as(this,"\\",220),as(this,"]",221),as(this,"'",222)}}var cs=Object.defineProperty,us=(e,t,r)=>((e,t,r)=>t in e?cs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);var ps=Object.defineProperty,hs=(e,t,r)=>((e,t,r)=>t in e?ps(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ds{constructor(e,t){this.webMap=e,hs(this,"name"),hs(this,"event"),hs(this,"value"),t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event=t.event))}getValue(){return this.value}setValue(e){this.value=e}}var fs=Object.defineProperty,ys=(e,t,r)=>((e,t,r)=>t in e?fs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ms extends ds{constructor(){super(...arguments),ys(this,"name","center"),ys(this,"event","moveend")}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}parse(e){return e.split("_").map(Number)}}var gs=Object.defineProperty,bs=(e,t,r)=>((e,t,r)=>t in e?gs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class vs extends ds{constructor(){super(...arguments),bs(this,"name","zoom"),bs(this,"event","zoomend")}getValue(){const e=this.webMap.getZoom();return void 0!==e?Math.round(e):void 0}setValue(e){this.webMap.setZoom(e)}toString(e){return String(e)}parse(e){return Number(e)}}var _s=Object.defineProperty,ws=(e,t,r)=>((e,t,r)=>t in e?_s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),Os=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));let Ls=0;const Ps={minZoom:0,maxZoom:22,paint:{color:"#0000ff",opacity:.4,strokeOpacity:1,stroke:!0,radius:8,weight:1},selectedPaint:{color:"#00008b",opacity:.4,strokeOpacity:1,stroke:!0,radius:12,weight:1},create:!0},Is=class e{constructor(t){ws(this,"options",Ps),ws(this,"emitter",new r),ws(this,"keys",e.keys),ws(this,"mapAdapter"),ws(this,"runtimeParams",[]),ws(this,"getPaintFunctions",e.getPaintFunctions),ws(this,"mapState",[ms,vs]),ws(this,"id",Ls++),ws(this,"_initMapState",{}),ws(this,"_starterKits"),ws(this,"_mapState",[]),ws(this,"_extent"),ws(this,"_eventsStatus",{}),ws(this,"_coordFromMapClickAbort"),ws(this,"_mapEvents",{}),this.mapAdapter=t.mapAdapter,this._starterKits=t.starterKits||[],t&&(this.options=d(Ps||{},t)),this.options.runtimeParams&&(this.runtimeParams=this.options.runtimeParams),this._addEventsListeners(),this.options.tileJson&&this._setTileJsonOptions(this.options.tileJson),this.options.create&&this.create()}getId(){return this.id}create(){return Os(this,null,(function*(){return this.getEventStatus("create")||(yield this._setInitMapState(this.mapState),yield this._setupMap(),this._emitStatusEvent("create",this)),this}))}setRuntimeParams(e){this.runtimeParams.push(e)}destroy(){this._removeEventListeners(),function(e){for(const t in e)delete e[t]}(this._emitStatusEvent),this.mapAdapter.destroy&&this.mapAdapter.destroy()}getState(){const e={};return this._mapState.forEach((t=>{e[t.name]=t.getValue()})),e}getRuntimeParams(){const e={};return this._mapState.forEach((t=>{for(const r of this.runtimeParams){const o=r.get(t.name);if(void 0!==o){e[t.name]=t.parse(o);break}}})),e}getContainer(){if(this.mapAdapter.getContainer)return this.mapAdapter.getContainer();if(this.options.target){if(this.options.target instanceof HTMLElement)return this.options.target;if("string"==typeof this.options.target){const e=document.getElementById(this.options.target);if(e)return e}}}setCursor(e){this.mapAdapter.setCursor&&this.mapAdapter.setCursor(e)}getCursor(){if(this.mapAdapter.getCursor)return this.mapAdapter.getCursor();const e=this.getContainer();return e?e.style.cursor:void 0}setCenter(e){return this.mapAdapter.setCenter(e),this}getCenter(){return this.mapAdapter.getCenter()}getBounds(){if(this.mapAdapter.getBounds)return this.mapAdapter.getBounds()}getBoundsPolygon(){const e=this.getBounds();if(e){return{type:"Feature",properties:{},geometry:m(e)}}}setZoom(e){return this.mapAdapter.setZoom(e),this}getZoom(){const e=this.mapAdapter.getZoom();if("number"==typeof e)return e}zoomIn(){if(this.mapAdapter.zoomIn)this.mapAdapter.zoomIn();else{const e=this.getZoom();if(void 0!==e){this.setZoom(e+1)}}}zoomOut(){if(this.mapAdapter.zoomOut)this.mapAdapter.zoomOut();else{const e=this.getZoom();if(void 0!==e){this.setZoom(e-1)}}}setView(e,t){if(Array.isArray(e)){const r=e;this.mapAdapter.setView&&r&&p(t)?this.mapAdapter.setView(r,t):(r&&this.mapAdapter.setCenter(r),p(t)&&this.mapAdapter.setZoom(t))}else{this.mapAdapter.setView&&this.mapAdapter.setView(e)}}fitBounds(e,t){return function(e){const[t,r,o,n]=e,i=t<o&&r<n;if(!i){console.log("Error: The extent coordinates are not in the correct order."),console.log(`Received extent: [${t}, ${r}, ${o}, ${n}]`);const e=[Math.min(t,o),Math.min(r,n),Math.max(t,o),Math.max(n,r)];console.log(`Expected order: [${e.join(", ")}]`)}const s=t>=-180&&o<=180,a=r>=-90&&n<=90;s&&a||console.log("Warning: The coordinates may not be within valid geographic ranges.")}(e),e.every((e=>p(e)))&&(e[1]<-85.06&&(e[1]=-85.06),e[3]>85.06&&(e[3]=85.06),this.mapAdapter.fitBounds(e,t)),this}getEventStatus(e){const t=this._eventsStatus[e];return null!=t&&t}onLoad(e="create"){return new Promise((t=>{this.getEventStatus(e)?t(this):this.emitter.once(e,(()=>{t(this)}))}))}onMapLoad(e){return new Promise((t=>{var r;const o=()=>{const r=this.mapAdapter;e&&e(r),r&&t(r)},n=null==(r=this.mapAdapter.isLoaded)||r;this.mapAdapter.map&&n?o():this.mapAdapter.emitter.once("create",(()=>{o()}))}))}getLayerAdapters(){return this.mapAdapter.layerAdapters}getLayerAdapter(e){return this.mapAdapter.layerAdapters[e]}locate(e,t){if(this.mapAdapter&&this.mapAdapter.locate)return this.mapAdapter.locate(e,t);return{stop:()=>({})}}stopGetCoordFromMapClick(){this._coordFromMapClickAbort&&(this._coordFromMapClickAbort(),this._coordFromMapClickAbort=void 0)}getCoordFromMapClick(){return this._coordFromMapClickAbort?this.getCoordFromMapClick():new Promise(((e,t)=>{const r=this.getCursor()||"grab";this._removeEventListeners({include:["click"]}),this.setCursor("crosshair");const o=()=>{this.setCursor(r),this._addEventsListeners({include:["click"]}),this.mapAdapter.emitter.off("click",n),this._coordFromMapClickAbort=void 0},n=t=>{o(),f(t),e(t.lngLat)};this.mapAdapter.emitter.once("click",n),this._coordFromMapClickAbort=o}))}_emitStatusEvent(e,t){const r=e;this._eventsStatus[r]=!0,this.emitter.emit(r,t)}_addLayerProviders(){return Os(this,null,(function*(){}))}_onLoadSync(){return Os(this,null,(function*(){}))}_setupMap(){return Os(this,null,(function*(){if(!this.mapAdapter)throw new Error("WebMap `mapAdapter` option is not set");return yield this.mapAdapter.create(this.options),this._zoomToInitialExtent(),yield this._addLayerProviders(),yield this._onLoadSync(),this._emitStatusEvent("build-map",this.mapAdapter),this}))}_setTileJsonOptions(e){e.center&&(this.options.center=e.center),e.bounds&&(this.options.bounds=e.bounds),p(e.maxzoom)&&(this.options.zoom=e.maxzoom),p(e.minzoom)&&(this.options.zoom=e.minzoom),p(e.maxzoom)&&p(e.minzoom)&&(this.options.zoom=(e.maxzoom+e.minzoom)/2)}_zoomToInitialExtent(){const{center:e,zoom:t,bounds:r}=this.options;this._extent?this.fitBounds(this._extent):e&&t?this.setView(e,t):r&&(this.fitBounds(r),void 0!==t&&this.setZoom(t))}_setInitMapState(e){for(const t of e){const e=new t(this);this._mapState.push(e);for(const t of this.runtimeParams){const r=t.get(e.name);if(void 0!==r){const t=e.parse(r);this._initMapState[e.name]=t,Object.defineProperty(this.options,e.name,{value:t,configurable:!0,enumerable:!0});break}}}}_addEventsListeners(e){let t=["preclick","click","zoomstart","zoom","zoomend","movestart","move","moveend","mousemove","mouseout","mouseover"];e&&e.include&&(t=t.filter((t=>e.include.includes(t)))),t.forEach((e=>{this._mapEvents[e]=t=>{if(this.runtimeParams.length){const t=this._mapState.find((t=>t.event===e));if(t){const e=t.toString(t.getValue());this.runtimeParams.forEach((r=>{r.set(t.name,e)}))}}this._eventsStatus&&this.emitter.emit(e,t)};const t=this._mapEvents[e];t&&this.mapAdapter.emitter.on(e,t)}))}_removeEventListeners(e){let t=Object.entries(this._mapEvents);e&&e.include&&(t=t.filter((t=>e.include.includes(t[0])))),t.forEach((([e,t])=>{t&&this.mapAdapter.emitter.removeListener(e,t)}))}};ws(Is,"keys",new class{constructor(){us(this,"keyCodeAlias",new ls),us(this,"keys",{}),us(this,"_windowOnFocus"),us(this,"_keysPressed"),us(this,"_keysReleased"),this._windowOnFocus=this.windowOnFocus.bind(this),this._keysPressed=this.keysPressed.bind(this),this._keysReleased=this.keysReleased.bind(this),this.addKeyboardEventsListener()}pressed(e){const t=this.keyCodeAlias[e];return!!t&&this.keys[t]}addKeyboardEventsListener(){"undefined"!=typeof window&&(window.addEventListener("focus",this._windowOnFocus,!1),window.addEventListener("keydown",this._keysPressed,!1),window.addEventListener("keyup",this._keysReleased,!1))}removeKeyboardEventsListener(){"undefined"!=typeof window&&(window.removeEventListener("focus",this._windowOnFocus,!1),window.removeEventListener("keydown",this._keysPressed,!1),window.removeEventListener("keyup",this._keysReleased,!1))}keysPressed(e){e.stopPropagation(),this.keys[e.keyCode]||(this.keys[e.keyCode]=!0)}keysReleased(e){e.stopPropagation(),this.keys[e.keyCode]=!1}windowOnFocus(){this.keys={}}}),ws(Is,"getPaintFunctions");let xs=Is;function Es(e){const t={};for(let o=0;o<e.length;o++)t[e[o]]=1+(t[e[o]]||0);let r;for(const o in t){t[o]>((void 0!==r?t[r]:0)||0)&&(r=o)}return r}function As(e){let t;if("FeatureCollection"===e.type){t=Es(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=Es(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}const js={polygon:"path",line:"path",point:"circle"},Ms={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function Cs(e){if(e.data){const t=Ms[As(e.data)],r=e.paint;r&&"[object Object]"===Object.prototype.toString.call(r)&&(r.type=r.type?r.type:"polygon"===t||"line"===t?"path":"html"in r||"className"in r?"icon":js[t]),e.type=e.type||t}return e}var ks=Object.defineProperty,Ss=Object.defineProperties,Ns=Object.getOwnPropertyDescriptors,Ts=Object.getOwnPropertySymbols,Fs=Object.prototype.hasOwnProperty,Bs=Object.prototype.propertyIsEnumerable,Rs=(e,t,r)=>t in e?ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$s=(e,t)=>{for(var r in t||(t={}))Fs.call(t,r)&&Rs(e,r,t[r]);if(Ts)for(var r of Ts(t))Bs.call(t,r)&&Rs(e,r,t[r]);return e},Ds=(e,t)=>Ss(e,Ns(t)),qs=(e,t,r)=>Rs(e,"symbol"!=typeof t?t+"":t,r),Vs=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Gs extends xs{constructor(e){super(e),qs(this,"_layersIdCounter",1),qs(this,"_layersOrderCounter",1),qs(this,"_baselayers",[]),qs(this,"_layers",{}),qs(this,"_selectedLayers",[]);const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}fitLayer(e,t){return Vs(this,null,(function*(){const r=this.getLayer(e),o=r&&(r.getBounds||r.getExtent);if(o){const e=yield o.call(r);e&&this.fitBounds(e,t)}}))}isBaseLayer(e){const t=this.getLayer(e);if(t&&t.id)return-1!==this._baselayers.indexOf(t.id)}getBaseLayers(){const e=[];return this._baselayers.forEach((t=>{const r=this._layers[t];r&&e.push(r)})),e}getBaseLayersIds(){return this._baselayers}getLayer(e){return"string"==typeof e?this._layers[e]:e}getLayerId(e){const t=this.getLayer(e);if(t){if(t.id)return null==t?void 0:t.id;if(t&&t.options)return t.options.id}throw new Error("No id for layer")}getLayers(){return Object.keys(this._layers)}allLayers(){return this._layers}orderedLayers(){return Object.values(this._layers).sort(((e,t)=>e.order&&t.order?e.order-t.order:0))}findLayer(e){for(const t in this._layers){const r=this._layers[t];if(e(r))return r}}isLayerVisible(e){const t=this.getLayer(e);return!(!t||void 0===t.options.visibility)&&t.options.visibility}addBaseLayer(e,t){return Vs(this,null,(function*(){return yield this.addLayer(e,Ds($s({},t),{baselayer:!0}),void 0)}))}addLayer(e){return Vs(this,arguments,(function*(e,t={},r){var o,n;const i=this._layersIdCounter++,s=p(r)?r:void 0!==t.order?t.order:this.reserveOrder();let a;"string"==typeof e?a=this.getLayerAdapter(e):"function"==typeof e?a=e:"then"in e&&(a=yield e);const l=t;this._updateGeoJsonOptions(l);const c=null==(o=(t=$s({id:String(i),order:s},t)).visibility)||o;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:a});e&&(e.options&&(t=e.options),e.adapter&&(a=e.adapter))}if(void 0!==a){const e=new a(this.mapAdapter.map,t);let r;e.options=$s($s({},t),e.options),e.options.baselayer&&(t.baselayer=!0,t.order=0,e.options.order=0),e.options.id&&(r=String(e.options.id),this._layers[r]=e),this._emitLayerEvent("layer:preadd",r||"",e),yield this.onMapLoad(),e.map=this.mapAdapter.map;const o=yield e.addLayer(e.options);if(e.layer=o,e.id=e.options.id||String(i),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!=(n=e.options.order)?n:s,r&&delete this._layers[r],r=String(e.id),this._layers[r])throw Error(`layer with id '${r}' already exist`);r&&(this._layers[r]=e,l.filter&&this.filterLayer(e,l.filter),t.baselayer&&this._baselayers.push(r),c&&(yield this.showLayer(r)));const u=t.opacity;void 0!==u&&u<=1&&this.setLayerOpacity(e,u);const p=o&&(e.getBounds||e.getExtent);if(t.fit&&p){const t=yield p.call(e);t&&(yield this.fitBounds(t))}return t.onAdded&&t.onAdded(e),this._emitLayerEvent("layer:add",r,e),e}return Promise.reject("No adapter")}))}addLayerFromAsyncAdapter(e,t,r){return Vs(this,null,(function*(){const o=r||void 0!==t.order?t.order:this.reserveOrder(),n=e(),i=yield n;return i?this.addLayer(i,t,o):Promise.reject("No adapter")}))}removeLayers(e){for(const t in this._layers){let r=!0;e&&(r=e(t,this._layers[t])),r&&(this.removeLayer(t),delete this._layers[t])}}getLegend(e){return Vs(this,null,(function*(){const t=[];for(const r of this.orderedLayers())r.getLegend&&t.push(r.getLegend(e));return(yield Promise.all(t)).flat()}))}reserveOrder(){return this._layersOrderCounter++}removeOverlays(){this.removeLayers(((e,t)=>!(t&&t.options&&t.options.baselayer)))}removeLayer(e){const t=this.getLayer(e),r=t&&this.getLayerId(t);if(t&&r){if(this.emitter.emit("layer:preremove",t),t.beforeRemove&&t.beforeRemove(),t.removeLayer?t.removeLayer():this.mapAdapter.removeLayer(t.layer),t.options&&t.options.baselayer){const e=this._baselayers.indexOf(r);e&&this._baselayers.splice(e,1)}delete this._layers[r],this.emitter.emit("layer:remove",t)}}addGeoJsonLayer(e={},t){return(e=e||{}).multiselect=void 0!==e.multiselect&&e.multiselect,e.unselectOnSecondClick=void 0===e.unselectOnSecondClick||e.unselectOnSecondClick,t||(e=Cs(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",Ds($s({},t),{url:e}))}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",Ds($s({},t),{url:r}))}showLayer(e,t={}){return this.toggleLayer(e,!0,t)}hideLayer(e,t={}){return this.toggleLayer(e,!1,t)}toggleLayer(e,t,r={}){const o=this.getLayer(e),n=void 0!==t?t:!(o&&o.options.visibility),i=void 0!==r.silent&&r.silent,s=e=>Vs(this,null,(function*(){const t=String(e.id),r=n?"layer:show":"layer:hide";if(i||(this._emitLayerEvent(n?"layer:preshow":"layer:prehide",t,e),this._emitLayerEvent("layer:pretoggle",t,e)),n&&this.mapAdapter){const t=e.options.baselayer?0:e.options.order;if(e.options.baselayer&&this._baselayers.length){const t=this._baselayers.filter((t=>t!==e.id&&this.isLayerVisible(t)));for(const e of t)yield this.hideLayer(e)}e.showLayer?yield e.showLayer.call(e,e.layer):void 0!==e.layer&&(yield this.mapAdapter.showLayer(e.layer)),void 0!==t&&this.mapAdapter.setLayerOrder(e.layer,t,this._layers)}else e.hideLayer?yield e.hideLayer.call(e,e.layer):void 0!==e.layer&&(yield this.mapAdapter.hideLayer(e.layer));e.options.visibility=n,i||(this._emitLayerEvent(r,t,e),this._emitLayerEvent("layer:toggle",t,e))}));return o?this.onMapLoad().then((()=>s(o))):Promise.resolve()}updateLayer(e){const t=this.getLayer(e);if(t){if(t.updateLayer)return Promise.resolve(t.updateLayer());if(this.isLayerVisible(t))return this.hideLayer(t,{silent:!0}).then((()=>this.showLayer(t,{silent:!0})))}return Promise.resolve()}setLayerOpacity(e,t){const r=this.getLayer(e);r&&(r.setOpacity?r.setOpacity(t):this.mapAdapter.setLayerOpacity&&this.mapAdapter.setLayerOpacity(r.layer,t))}isLayerLabelVisible(e){var t;const r=this.getLayer(e);return r.isLabelVisible?r.isLabelVisible():null==(t=r.options.labelVisibility)||t}showLayerLabel(e){this.toggleLayerLabel(e,!0)}hideLayerLabel(e){this.toggleLayerLabel(e,!1)}toggleLayerLabel(e,t){const r=this.getLayer(e);return t=null!=t?t:!this.isLayerLabelVisible(e),r&&(t?r.showLabel&&(r.options.labelVisibility=!0,r.showLabel()):r.hideLabel&&(r.options.labelVisibility=!1,r.hideLabel()),r.id&&this._emitLayerEvent("layer:label:toggle",r.id,r)),t}selectLayer(e,t){const r=this.getLayer(e);if(r){r&&r.select&&r.select(t);const e=this.getLayerId(r);e&&this._selectedLayers.push(e)}}unSelectLayer(e,t){const r=this.getLayer(e);if(r){const e=r&&r;e.unselect&&e.unselect(t);const o=this.getLayerId(r);if(o){const e=this._selectedLayers.indexOf(o);-1!==e&&this._selectedLayers.splice(e,1)}}}unSelectLayers(){const e=Object.values(this.allLayers());let t;for(t of e)t.unselect&&t.unselect()}filterLayer(e,t){const r=this.getLayer(e);return r.filter?r.filter(t):[]}propertiesFilter(e,t,r){const o=this.getLayer(e);if(o){const e=o;if(e.propertiesFilter)return e.propertiesFilter(t,r);e.filter&&this.filterLayer(e,(e=>!e.feature||!e.feature.properties||Ne(e.feature.properties,t)))}return Promise.resolve()}removeLayerFilter(e){const t=this.getLayer(e);t.removeFilter?t.removeFilter():t.filter&&t.filter((()=>!0))}setLayerData(e,t){const r=this.getLayer(e);if(r){if(r.setData)return r.setData(t);if(r.clearLayer&&r.addData)return r.clearLayer(),r.addData(t)}return Promise.resolve()}addLayerData(e,t){const r=this.getLayer(e);r.addData&&r.addData(t)}clearLayerData(e,t){const r=this.getLayer(e);r&&r.clearLayer&&r.clearLayer(t)}setLayerPaint(e,t){const r=this.getLayer(e);t&&r&&r.setPaint&&r.setPaint(t)}setLayerSelectedPaint(e,t){const r=this.getLayer(e);t&&r&&r.setSelectedPaint&&r.setSelectedPaint(t)}updateLayerPaint(e,t){const r=this.getLayer(e);t&&r&&r.updatePaint&&r.updatePaint(t)}updateLayerSelectedPaint(e,t){const r=this.getLayer(e);t&&r&&r.updateSelectedPaint&&r.updateSelectedPaint(t)}getAttributions(e){const t=[];for(const r in this._layers){const o=this._layers[r];let n=!(void 0===e.onlyVisible||e.onlyVisible)||o.options.visibility;if(n&&e.onlyBaselayer&&(n=this._baselayers.includes(r)),n){const e=o.options&&o.options.attribution;e&&t.push(e)}}return t}getActiveBaseLayer(){const e=this.getBaseLayers().find((e=>this.isLayerVisible(e)));if(e)return this.getLayer(e)}addTileJsonLayer(e){return this.addLayer("TILE",{url:e.tiles[0],maxZoom:e.maxzoom,minZoom:e.minzoom,subdomains:e.scheme,attribution:e.attribution})}_emitLayerEvent(e,t,r){const o=String(e);if(p(t)&&o.startsWith("layer:")){const e=o.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}_onLayerClick(e){return Vs(this,null,(function*(){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerDoubleClick(e){return Vs(this,null,(function*(){return this._emitLayerEvent("layer:dblclick",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerSelect(e){return Vs(this,null,(function*(){return this._emitLayerEvent("layer:select",e.layer.id||"",e),Promise.resolve(e)}))}_updateGeoJsonOptions(e){const{onSelect:t,onLayerSelect:r,onClick:o,onDoubleClick:n,onLayerClick:i,onMouseOut:s,onMouseOver:a}=e,l=o||i,c=n||i;e.onClick=e=>(l&&l(e),this._onLayerClick(e)),e.onDoubleClick=e=>(c&&c(e),this._onLayerDoubleClick(e)),e.onMouseOut=e=>{const t=e.layer.id;s&&s(e),p(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;a&&a(e),p(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const u=t||r;e.onSelect=e=>(u&&u(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=is({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=is({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}function Us(e,t){const r=document.createElement("div");let o=!1;t.getStatus?o=t.getStatus():t.status&&(o=t.status);const n=t.title||"",i=t.html;function s(){n&&(r.title="string"==typeof n?n:o?n.on:n.off,r.setAttribute("aria-label",r.title))}function a(e){e instanceof HTMLElement?(r.innerHTML="",r.appendChild(e)):"string"==typeof e&&(r.innerHTML=e)}function l(){i&&("string"==typeof i||i instanceof HTMLElement?a(i):a(o?i.on:i.off),r.setAttribute("aria-label",r.title))}function c(e,t){e.split(" ").forEach((e=>{t?r.classList.add(e):r.classList.remove(e)}))}function u(){t.addClassOn&&c(t.addClassOn,o),t.addClassOff&&c(t.addClassOff,!o)}s(),l(),t.addClass&&c(t.addClass,!0),u();const p=e=>{void 0!==e&&(o=e),l(),s(),u()},h=e=>{if(o=void 0!==e?e:!o,t.onClick){const e=t.onClick(o);Promise.resolve(e).then((()=>p())).catch((()=>o=!o))}else p()},d=e({html:r,onClick:h});return d.onClick=h,d.changeStatus=p,d}var zs=Object.defineProperty,Zs=(e,t,r)=>((e,t,r)=>t in e?zs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),Ws=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const Js=class e extends Gs{constructor(){super(...arguments),Zs(this,"_loadControlQueue",{"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]}),Zs(this,"_isControlLoading",{"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1})}addControl(e,t,r){return Ws(this,null,(function*(){let o;if(t=null!=t?t:"top-left",o="string"==typeof e?this.getControl(e,r):e,o)return new Promise((e=>{this._setControlQueue(t,(()=>Ws(this,null,(function*(){const r=yield o,n=this.mapAdapter.addControl(r,t);e(n)}))))}))}))}createControl(e,t){return Ws(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}))}createButtonControl(e){return Ws(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}))}createToggleControl(e){return Ws(this,null,(function*(){return yield this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?Us(this.mapAdapter.createButtonControl,e):void 0}))}removeControl(e){"remove"in e?e.remove():this.mapAdapter.removeControl&&Promise.resolve(e).then((e=>{this.mapAdapter.removeControl(e)}))}getControl(t,r){const o=this.mapAdapter.controlAdapters[t];if(o)return new o(r);{const o=e.controls[t];if(o)return o(this,r)}}getControlContainer(){if(this.mapAdapter.getControlContainer)return this.mapAdapter.getControlContainer()}_setControlQueue(e,t){this._loadControlQueue[e].push(t),this._isControlLoading[e]||this._applyControls(e)}_applyControls(e){return Ws(this,null,(function*(){if(this._loadControlQueue[e].length){this._isControlLoading[e]=!0;const t=this._loadControlQueue[e][0];yield t(),this._loadControlQueue[e].splice(0,1),this._applyControls(e)}else this._isControlLoading[e]=!1}))}};Zs(Js,"controls",{CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)});let Hs=Js;const Qs={};function Ks(e){return Qs[e]}function Xs(e,t){Qs[e]=t}var Ys=Object.getOwnPropertySymbols,ea=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable,ra=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),oa=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())})),na=(e,t,r)=>(t=e[ra("asyncIterator")])?t.call(e):(e=e[ra("iterator")](),t={},r=(r,o)=>(o=e[r])&&(t[r]=t=>new Promise(((r,n,i)=>(t=o.call(e,t),i=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:i})),n))))),r("next"),r("return"),t);class ia extends Hs{constructor(e){super(e),this._addControls(),Xs(this.id,this)}static get(e){return Ks(e)}_addLayerProviders(){return oa(this,null,(function*(){try{for(var e,t,r,o=na(this._starterKits);e=!(t=yield o.next()).done;e=!1){const e=t.value;if(e.getLayerAdapters){const t=yield e.getLayerAdapters.call(e);if(t)try{for(var n,i,s,a=na(t);n=!(i=yield a.next()).done;n=!1){const e=i.value,t=yield e.createAdapter(this);t&&(this.mapAdapter.layerAdapters[e.name]=t)}}catch(i){s=[i]}finally{try{n&&(i=a.return)&&(yield i.call(a))}finally{if(s)throw s[0]}}}}}catch(t){r=[t]}finally{try{e&&(t=o.return)&&(yield t.call(o))}finally{if(r)throw r[0]}}}))}_onLoadSync(){return oa(this,null,(function*(){try{for(var e,t,r,o=na(this._starterKits);e=!(t=yield o.next()).done;e=!1){const e=t.value;if(e.onLoadSync)try{yield e.onLoadSync.call(e,this)}catch(n){console.error(n)}}}catch(t){r=[t]}finally{try{e&&(t=o.return)&&(yield t.call(o))}finally{if(r)throw r[0]}}}))}_addControls(){this.options.controls&&this.options.controls.forEach((e=>{let t=e,r={};"string"==typeof e&&this.options.controlsOptions&&this.options.controlsOptions[e]&&(r=this.options.controlsOptions[e],void 0!==r.control&&(t=r.control));const o=r,{position:n}=o,i=((e,t)=>{var r={};for(var o in e)ea.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&Ys)for(var o of Ys(e))t.indexOf(o)<0&&ta.call(e,o)&&(r[o]=e[o]);return r})(o,["position"]);this.addControl(t,n||"top-left",i)})),this._emitStatusEvent("controls:create")}}function sa(){return["ZOOM","ATTRIBUTION"]}var aa=Object.defineProperty,la=Object.defineProperties,ca=Object.getOwnPropertyDescriptors,ua=Object.getOwnPropertySymbols,pa=Object.prototype.hasOwnProperty,ha=Object.prototype.propertyIsEnumerable,da=(e,t,r)=>t in e?aa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fa=(e,t)=>{for(var r in t||(t={}))pa.call(t,r)&&da(e,r,t[r]);if(ua)for(var r of ua(t))ha.call(t,r)&&da(e,r,t[r]);return e},ya=(e,t)=>la(e,ca(t));function ma(e,t,r,o){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(ya(fa({},r),{resource:t}));else if(Array.isArray(t)){const[n,i]=t;e.push(fa(ya(fa({},r),{resource:n,id:i}),o))}else"object"==typeof t&&e.push(fa(fa(fa({},r),t),o))}var ga=Object.defineProperty,ba=Object.defineProperties,va=Object.getOwnPropertyDescriptors,_a=Object.getOwnPropertySymbols,wa=Object.prototype.hasOwnProperty,Oa=Object.prototype.propertyIsEnumerable,La=(e,t,r)=>t in e?ga(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Pa={target:"map",baseUrl:"",whitlabel:!1,controls:["ZOOM","ATTRIBUTION"],controlsOptions:{ZOOM:{position:"top-left"},ATTRIBUTION:{position:"bottom-right",customAttribution:['<a href="https://nextgis.com" target="_blank">©NextGIS</a>']}},pixelRadius:10};function Ia(e){const t=[new Fr];var r;return e.starterKits&&e.starterKits.forEach((e=>{t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new Pe({baseUrl:e.baseUrl||"",auth:e.auth}),(e=d(Pa,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new Hn({connector:e.connector,auth:e.auth})),r=((e,t)=>{for(var r in t||(t={}))wa.call(t,r)&&La(e,r,t[r]);if(_a)for(var r of _a(t))Oa.call(t,r)&&La(e,r,t[r]);return e})({},e),e=ba(r,va({starterKits:t,create:!1}))}var xa=Object.defineProperty,Ea=Object.defineProperties,Aa=Object.getOwnPropertyDescriptors,ja=Object.getOwnPropertySymbols,Ma=Object.getPrototypeOf,Ca=Object.prototype.hasOwnProperty,ka=Object.prototype.propertyIsEnumerable,Sa=Reflect.get,Na=(e,t,r)=>t in e?xa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ta=(e,t)=>{for(var r in t||(t={}))Ca.call(t,r)&&Na(e,r,t[r]);if(ja)for(var r of ja(t))ka.call(t,r)&&Na(e,r,t[r]);return e},Fa=(e,t)=>Ea(e,Aa(t)),Ba=(e,t,r)=>Na(e,"symbol"!=typeof t?t+"":t,r),Ra=(e,t,r)=>Sa(Ma(e),r,t),$a=(e,t,r)=>new Promise(((o,n)=>{var i=e=>{try{a(r.next(e))}catch(t){n(t)}},s=e=>{try{a(r.throw(e))}catch(t){n(t)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const Da=class e extends ia{constructor(e){super(Ia(e)),Ba(this,"emitter",new r),Ba(this,"connector"),Ba(this,"_ngwLayers",{}),Ba(this,"$$selectFromNgwRaster"),Ba(this,"$$selectFromNgwVector"),Ba(this,"_promises",{select:[],identify:[]}),e.connector&&(this.connector=e.connector),this._createWebMap().then((()=>{const e=this.getContainer();e&&e.classList.add("ngw-map-container"),this.options.whitlabel&&this._whiteLabel()}))}addControl(t,r,o){return $a(this,null,(function*(){return yield this.onLoad("controls:create"),Ra(e.prototype,this,"addControl").call(this,t,r,o)}))}addNgwLayer(e){return $a(this,null,(function*(){yield this.onMapLoad();const{keyname:t,resourceId:r}=e;(t||void 0!==r)&&console.warn(`DEPRECATED WARN: ${"set `resource` options instead of `keyname` or `resourceId`"}`);const o=e.resource;if(!t&&!r&&!o)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(p(this.options.baseUrl))try{p(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},p(e.adapterOptions.setViewDelay)||(e.adapterOptions.setViewDelay=this.options.setViewDelay));const t=function(e,t,r){const o=r.getAuthorizationHeaders();return o&&(e.headers=o),rn(e,t,r)}(e,this,this.connector),r=Ta(Ta({visibility:!0},e),e.adapterOptions),o=yield this.addLayer(t,r),n=o&&this.getLayerId(o);if(o&&n&&(this._ngwLayers[n]={layer:o,resourceId:o.resourceId},o.options.name=o.options.name||o.item&&o.item.resource.display_name,o.options.baselayer)){if(this.getActiveBaseLayer())return o}return o}catch(n){const e=I(o)&&"id"in o?o.id:t||r||o;console.error(`Can't add NGW layer ${e}.`,n)}}))}fit(){const{center:e,zoom:t,bounds:r}=this.options;e?(this.setCenter(e),t&&this.setZoom(t)):r&&this.fitBounds(r)}fetchNgwLayerItem(e){return ct(Ta({connector:this.connector},e))}fetchNgwLayerItems(e){return ao(Ta({connector:this.connector},e))}fetchNgwLayerFeature(e){return ii(Ta({connector:this.connector},e))}fetchNgwLayerFeatures(e){return uo(Ta({connector:this.connector},e))}fetchIdentifyItem(e,t){const r=new AbortController,o=r.signal;(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",r.abort),(t=t||{}).signal=o;const n=function(e){const{connector:t,identify:r}=e,o=yi(r);return o&&o.length?ct(di(di({connector:t},e.requestOptions),o[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",n,r),n}fetchIdentifyGeoJson(e,t=!1){const r=new AbortController,o=function(e){const{connector:t,identify:r,requestOptions:o}=e;for(const i in r){const e=Number(i);if(!isNaN(e)){const e=r[i];if("features"in e){const t=e.features.find((e=>e.geom));if(t&&t.geom){const e=t.geom;return Promise.resolve(Ze(fi(di({},t),{geom:e})))}}}}const n=yi(r);return n&&n.length?ii(di(fi(di({},o),{connector:t}),n[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,multiple:t,requestOptions:{signal:r.signal}});return o&&"then"in o?(this._addPromise("identify",o,r),o):Promise.resolve(o)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,t)}getNgwLayers(){return $a(this,null,(function*(){return yield this.onLoad(),this._ngwLayers}))}getNgwLayerByResourceId(e){return $a(this,null,(function*(){for(const t in this._ngwLayers){const r=this._ngwLayers[t];if(r.resourceId===e)return r&&r.layer;if(r.layer.getIdentificationIds){const t=yield r.layer.getIdentificationIds();if(t&&t.some((t=>t===e)))return r.layer}if(r.layer.getDependLayers){const t=r.layer.getDependLayers().find((t=>t.item&&t.item.parentId===e));if(t)return t.layer}}}))}fitLayer(t,r){return $a(this,null,(function*(){let o;o="string"==typeof t||"number"==typeof t?String(o):t.id;const n=o&&this._ngwLayers[o];if(n)if(n.layer.getBounds){const e=yield n.layer.getBounds();e&&this.fitBounds(e,r)}else{let e;if(n.layer.item)e=n.layer.item;else{const t=n.resourceId;e=yield this.connector.getResource(t)}e&&pr({resourceId:e.resource.id,connector:this.connector}).then((e=>{e&&this.fitBounds(e,r)}))}else Ra(e.prototype,this,"fitLayer").call(this,"number"==typeof t?String(t):t,r)}))}zoomToLayer(e){return $a(this,null,(function*(){return this.fitLayer(e)}))}onLoad(e="ngw-map:create"){return super.onLoad(e)}removeLayer(e){const t=this.getLayer(e);if(t){const e=this.getLayerId(t);e&&delete this._ngwLayers[e],super.removeLayer(t)}}enableSelection(){this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=e=>{this._getSelectListenersCount()&&this.selectFromNgwRaster(e)},this.$$selectFromNgwVector=e=>{this._getSelectListenersCount()&&this._selectFromNgwVector(e)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))}disableSelection(){this.$$selectFromNgwRaster&&(this.emitter.removeListener("click",this.$$selectFromNgwRaster),this.$$selectFromNgwRaster=void 0),this.$$selectFromNgwVector&&(this.emitter.removeListener("layer:click",this.$$selectFromNgwVector),this.$$selectFromNgwVector=void 0)}getNgwLayerItem(e){return this.fetchNgwLayerItem(e)}getNgwLayerItems(e){return this.fetchNgwLayerItems(e)}getNgwLayerFeature(e){return this.fetchNgwLayerFeature(e)}getNgwLayerFeatures(e){return this.fetchNgwLayerFeatures(e)}cancelPromise(...e){this.cancelPromises(...e)}cancelPromises(...e){e.length||(e=Object.keys(this._promises)),e.forEach((e=>{const t=this._promises[e];t&&(t.forEach((e=>e[1].abort())),this._promises[e]=[])}))}selectFromNgwRaster(e){return $a(this,null,(function*(){var t;this._emitStatusEvent("ngw:preselect");const r=[],o=Object.values(this._ngwLayers);o.sort(((e,t)=>e.layer.order&&t.layer.order?t.layer.order-e.layer.order:1));for(const e of o){const o=e.layer,n="function"==typeof o.getIdentificationIds&&o.getIdentificationIds,i=null==(t=o.options.interactive)||t;n&&o.options.selectable&&i&&this.isLayerVisible(o)&&r.push(n.call(o))}const n=Promise.all(r),i=yield n,s=[];for(const e of i)e&&s.push(...e);if(!s.length)return void this._emitStatusEvent("ngw:select",null);const a=this.options.pixelRadius||10,l=this.getCenter();let c=this.getZoom();if(c=void 0!==c?c:20,!l||!c)return void this._emitStatusEvent("ngw:select",null);const u=function(e,t,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*e[1]/Math.PI))/Math.pow(2,t+8))*5e-4}(l,c,a);let p;if(this.options.highlightIdentification){const t=this.options.highlightIdentification,r="number"==typeof t?t:1e3,[o,n]=e.lngLat;p={type:"Polygon",coordinates:[_(o,n,u)]};const i=yield this.addGeoJsonLayer({data:{type:"Feature",geometry:p}});r!==1/0&&setTimeout((()=>{this.removeLayer(i)}),r)}const h=new AbortController,d=function(e,t){f(e);const[r,o]=e.lngLat,{geom:n,radius:i}=t,s=null!=n?n:_(r,o,i);return gi(fi(di({},t),{geom:s}))}(e,{layers:s,connector:this.connector,radius:u,geom:p,signal:h.signal}).then((t=>{const r=Fa(Ta({},t),{resources:s,sourceType:"raster",event:e}),o=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",o),o}));return this._addPromise("select",d,h),d}))}_addPromise(e,t,r){const o=this._promises[e];if(o&&-1===o.findIndex((e=>e[0]===t))){const e=()=>{const e=o.findIndex((e=>e[0]===t));-1!==e&&o.splice(e,1)};t.then(e),t.catch(e),o.push([t,r])}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}_createWebMap(){return $a(this,null,(function*(){yield this.create(),this.options.qmsId&&this._addQmsBaseLayer(),this.options.osm&&this._addOsmBaseLayer();const e=[],t=this._isFitFromResource();if(this.options.webmapId&&ma(e,this.options.webmapId,{fit:t}),this.options.resources&&Array.isArray(this.options.resources))for(const o of this.options.resources){const r={};t||(r.fit=!1),ma(e,o,{},r)}for(const o of e)try{yield this.addNgwLayer(o)}catch(r){console.warn(r)}this._emitStatusEvent("ngw-map:create",this),this.enableSelection()}))}_addOsmBaseLayer(){this.addBaseLayer("OSM")}_addQmsBaseLayer(){let e,t;Array.isArray(this.options.qmsId)?(e=this.options.qmsId[0],t=this.options.qmsId[1]):e=Number(this.options.qmsId);const r={qmsId:e};t&&(r.id=t),this.addBaseLayer("QMS",r)}_selectFromNgwVector(e){const t=e.layer;if(!(t.options.selectable&&this.isLayerVisible(t)))return;const r=t.item&&t.item.resource.id,o=e.feature;if(void 0!==r&&o){const e=o.id;if(e){const t={featureCount:1,[r]:{featureCount:1,features:[{id:Number(e),fields:o.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:o.geometry}]}};return this._emitStatusEvent("ngw:select",this._prepareToIdentify(Fa(Ta({},t),{resources:[r],sourceType:"vector"}))),t}}}_prepareToIdentify(e){return Fa(Ta({},e),{getIdentifyItems:()=>yi(e,!0).map((e=>new oi({feature:e.feature,connector:this.connector})))})}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}_whiteLabel(){return $a(this,null,(function*(){const e=this.getContainer();if(e){const t=yield bi(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}))}};Ba(Da,"getIcon",(function(e={}){var t,r,o,n,i,s;const a=null!=(t=e.shape)?t:"circle",u=null!=(r=e.color)?r:"blue",p=null!=(o=e.strokeColor)?o:"white",h=null!=(n=e.size)?n:c,d=null!=(i=e.rotate)?i:0,f=null!=(s=e.anchor)?s:[h/2,h/2],y=void 0!==e.stroke?Number(e.stroke):.8,m=e.p||l[a]||"circle",g="string"==typeof m?m:m(e),b=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").documentElement}(e.svg||function({width:e,height:t,stroke:r=0,content:o}){const n=r/2;return`<svg\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n width="${e}"\n height="${t}"\n viewBox="-${n} -${n} ${c+r} ${c+r}"\n >${o}</svg>`}({width:h,height:h,stroke:y,content:g}));return b.setAttribute("width",String(h)),b.setAttribute("height",String(h)),b.setAttribute("fill",u),y&&(b.setAttribute("stroke",p),b.setAttribute("stroke-width",String(y))),{type:"icon",iconSize:[h,h],iconAnchor:f,html:(new XMLSerializer).serializeToString(b),rotate:d,svg:b}}));let qa=Da;return e.NgwMap=qa,e.WebMap=ia,e.WebMapControls=Hs,e.WebMapLayers=Gs,e.WebMapMain=xs,e.createNgwMap=function(e){return t=this,r=null,o=function*(){return new qa(e).onLoad()},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o},e.createToggleControl=Us,e.createWebMap=function(e){return t=this,r=null,o=function*(){return new ia(e).onLoad()},new Promise(((e,n)=>{var i=e=>{try{a(o.next(e))}catch(t){n(t)}},s=e=>{try{a(o.throw(e))}catch(t){n(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(t,r)).next())}));var t,r,o},e.detectGeometryType=As,e.findMostFrequentGeomType=Es,e.getDefaultControls=sa,e.getWebMap=Ks,e.paintTypeAlias=js,e.setWebMap=Xs,e.typeAlias=Ms,e.updateGeoJsonAdapterOptions=Cs,e}({});
1
+ var NgwMap=function(e){"use strict";function t(){}function r(){r.init.call(this)}function n(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function o(e,r,o,i){var s,a,l,c;if("function"!=typeof o)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",r,o.listener?o.listener:o),a=e._events),l=a[r]):(a=e._events=new t,e._eventsCount=0),l){if("function"==typeof l?l=a[r]=i?[o,l]:[l,o]:i?l.unshift(o):l.push(o),!l.warned&&(s=n(e))&&s>0&&l.length>s){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+r+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=r,u.count=l.length,c=u,"function"==typeof console.warn?console.warn(c):console.log(c)}}else l=a[r]=o,++e._eventsCount;return e}function i(e,t,r){var n=!1;function o(){e.removeListener(t,o),n||(n=!0,r.apply(e,arguments))}return o.listener=r,o}function s(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 a(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}t.prototype=Object.create(null),r.EventEmitter=r,r.usingDomains=!1,r.prototype.domain=void 0,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.init=function(){this.domain=null,r.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new t,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.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},r.prototype.getMaxListeners=function(){return n(this)},r.prototype.emit=function(e){var t,r,n,o,i,s,l,c="error"===e;if(s=this._events)c=c&&null==s.error;else if(!c)return!1;if(l=this.domain,c){if(t=arguments[1],!l){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=l,t.domainThrown=!1,l.emit("error",t),!1}if(!(r=s[e]))return!1;var p="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,o=a(e,n),i=0;i<n;++i)o[i].call(r)}(r,p,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var o=e.length,i=a(e,o),s=0;s<o;++s)i[s].call(r,n)}(r,p,this,arguments[1]);break;case 3:!function(e,t,r,n,o){if(t)e.call(r,n,o);else for(var i=e.length,s=a(e,i),l=0;l<i;++l)s[l].call(r,n,o)}(r,p,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,o,i){if(t)e.call(r,n,o,i);else for(var s=e.length,l=a(e,s),c=0;c<s;++c)l[c].call(r,n,o,i)}(r,p,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(n-1),i=1;i<n;i++)o[i-1]=arguments[i];!function(e,t,r,n){if(t)e.apply(r,n);else for(var o=e.length,i=a(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,p,this,o)}return!0},r.prototype.on=r.prototype.addListener=function(e,t){return o(this,e,t,!1)},r.prototype.prependListener=function(e,t){return o(this,e,t,!0)},r.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,i(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,i(this,e,t)),this},r.prototype.removeListener=function(e,r){var n,o,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if(!(o=this._events))return this;if(!(n=o[e]))return this;if(n===r||n.listener&&n.listener===r)0==--this._eventsCount?this._events=new t:(delete o[e],o.removeListener&&this.emit("removeListener",e,n.listener||r));else if("function"!=typeof n){for(i=-1,s=n.length;s-- >0;)if(n[s]===r||n[s].listener&&n[s].listener===r){a=n[s].listener,i=s;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new t,this;delete o[e]}else!function(e,t){for(var r=t,n=r+1,o=e.length;n<o;r+=1,n+=1)e[r]=e[n];e.pop()}(n,i);o.removeListener&&this.emit("removeListener",e,a||r)}return this},r.prototype.off=function(e,t){return this.removeListener(e,t)},r.prototype.removeAllListeners=function(e){var r,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new t,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new t:delete n[e]),this;if(0===arguments.length){for(var o,i=Object.keys(n),s=0;s<i.length;++s)"removeListener"!==(o=i[s])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=new t,this._eventsCount=0,this}if("function"==typeof(r=n[e]))this.removeListener(e,r);else if(r)do{this.removeListener(e,r[r.length-1])}while(r[0]);return this},r.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):[]},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):s.call(e,t)},r.prototype.listenerCount=s,r.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};const l={brill:'<path d="m6 0-5 6 5 6 5-6z"/>',circle:'<circle cx="6" cy="6" r="6"/>',rect:'<rect width="12" height="12"/>',marker:'<path d="m6 0c-1.85 0-4 1.19-4 4.22 0 2.05 3.08 6.59 4 7.78 0.821-1.19 4-5.62 4-7.78 0-3.03-2.15-4.22-4-4.22z"/>',cross:'<path d="M 2.4,12 6,8.4 9.6,12 12,9.6 8.4,6 12,2.4 9.6,0 6,3.6 2.4,0 0,2.4 3.6,6 0,9.6 Z"/>',star:'<path d="m6 0.25 1.71 4.18 4.29-1.04e-4 -3.43 3.14 0.857 4.18-3.43-3.14-3.43 3.14 0.857-4.18-3.43-3.14 4.29-0.209z"/>',triangle:'<path d="m12 11.7h-12l6-11.2z"/>',plus:'<path d="m7.5 12v-4.5h4.5v-3h-4.5v-4.5h-3v4.5h-4.5v3h4.5v4.5z"/>',minus:'<path d="m12 7.5v-3h-12v3z"/>',asterisk:'<path d="m7.59 12v-3.27l2.83 1.64 1.58-2.74-2.85-1.64 2.83-1.64-1.56-2.74-2.83 1.64v-3.24h-3.17v3.24l-2.85-1.64-1.57 2.74 2.84 1.64-2.84 1.64 1.57 2.74 2.85-1.64v3.27z"/>'},c=12;function u(e,t,r={}){const n=function(e,t=[]){for(;null!==e;e=Object.getPrototypeOf(e)){const r=Object.getOwnPropertyNames(e);for(let e=0;e<r.length;e++)-1==t.indexOf(r[e])&&t.push(r[e])}return t}(e.prototype);const o=void 0===r.replace||r.replace;t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((r=>{const i=-1!==n.indexOf(r);if(!o&&!i||o){const n=Object.getOwnPropertyDescriptor(t.prototype,r);n&&Object.defineProperty(e.prototype,r,n)}}))}))}function p(e){return null!=e}function h(e){return"string"==typeof e?!!e:p(e)}function d(e,t,r=!1){let n=e;const o=t,i=Array.isArray(o);let s=i&&[]||{};return i&&Array.isArray(o)?r?(n=n||[],s=s.concat(n),o.forEach(((e,t)=>{void 0===s[t]?s[t]=e:"object"==typeof e?s[t]=d(n[t],e,r):-1===n.indexOf(e)&&s.push(e)}))):s=o:(n&&"object"==typeof n&&Object.keys(n).forEach((function(e){s[e]=n[e]})),Object.keys(o).forEach((function(e){s[e]="object"==typeof o[e]&&o[e]&&"object"==typeof n[e]&&"object"==typeof o[e]?d(n[e],o[e],r):o[e]}))),s}function f(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}const y=6371;function m(e){return{type:"Polygon",coordinates:[g(e)]}}function g(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const b=Math.PI/180,v=180/Math.PI;function w(e,t,r=10,n=6){const o=r/y*v,i=o/Math.cos(t*b),s=[];for(let a=0;a<n+1;a++){const r=Math.PI*(a/(n/2)),l=e+i*Math.cos(r),c=t+o*Math.sin(r);s.push([l,c])}return s}function _(e,t){t=t>85.06?85.06:t<-85.06?-85.06:t;const r=20037508.34*e/180;let n=Math.log(Math.tan((90+t)*Math.PI/360))/(Math.PI/180);return n=20037508.34*n/180,[r,n]}function O(e,t,r,n){if(e instanceof Array)return t instanceof Array&&t.sort().join("")===e.sort().join("");if(e instanceof Date)return t instanceof Date&&""+e==""+t;if(e instanceof Function){if(!(t instanceof Function))return!1}else if(e instanceof Object)return t instanceof Object&&(e===r?t===n:L(e,t));return e===t}function L(e,t){const r=Object.keys(e).sort(),n=Object.keys(t).sort();if(r.length!==n.length)return!1;if(r.join("")!==n.join(""))return!1;for(let o=0;o<r.length;o++){if(!O(e[r[o]],t[n[o]],e,t))return!1}return!0}function P(e){const t={};return Object.keys(e).forEach((r=>{e[r]instanceof Array||e[r]!==Object(e[r])?void 0!==e[r]&&(t[r]=e[r]):t[r]=P(e[r])})),t}function I(e){return"[object Object]"===Object.prototype.toString.call(e)}function x(e){return e.replace(/([^:]\/)\/+/g,"$1")}var E=Object.defineProperty,A=(e,t,r)=>((e,t,r)=>t in e?E(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const j=class e{constructor(t={}){var r;A(this,"cache",[]);const n=null!=(r=t.namespace)?r:"default";return e.instance[n]?e.instance[n]:(e.instance[n]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r){return this.add(e,t,r,!0)}add(e,t,r,n){const o=this._find(e,r);if(o)return o.value;{let o;o=t instanceof Function?t():t;const i=r&&JSON.parse(JSON.stringify(P(r))),s={key:e,value:o,props:i};return n&&!h(o)?o:(this.cache.push(s),o instanceof Promise?(o.catch((t=>{this.delete(e,r)})),n&&o.then((t=>(h(t)||this.delete(e,r),t))),o):o)}}match(e,t){const r=this._find(e,t);return null==r?void 0:r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){const r="string"==typeof e?this.cache.filter((r=>this._filter(r,e,t))):[e];for(const n of r){const e=this.cache.indexOf(n);-1!==e&&this.cache.splice(e,1)}}_find(e,t){return this.cache.find((r=>this._filter(r,e,t)))}_filter(e,t,r){if(e.key!==t)return!1;if(!r)return!0;return L(e.props||{},P(r))}};A(j,"instance",{});let C=j;var M="3.0.0-alpha.2",k=Object.defineProperty,S=(e,t,r)=>((e,t,r)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class N extends Error{constructor(e){super(),S(this,"name","NgwError"),S(this,"title"),S(this,"message"),S(this,"detail"),S(this,"exception"),S(this,"status_code"),S(this,"data"),S(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,N.prototype)}}var T=Object.defineProperty,F=(e,t,r)=>((e,t,r)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class B extends N{constructor(e){super(e),F(this,"name","ResourceNotFoundError"),F(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,B.prototype)}}function R(e){return"[object Object]"===Object.prototype.toString.call(e)}const $=["description"];function D(e,t=""){t=t?t+"__":"";const r={};for(const[n,o]of Object.entries(e))if(-1===$.indexOf(n))if(R(o))if("owner_user"===n){const e=D(o,n);Object.assign(r,e)}else"parent"===n&&"id"in o&&(r.parent_id=o.id);else p(o)&&(r[t+n]=o);return r}var q=Object.defineProperty,G=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,z=(e,t,r)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&z(e,r,t[r]);if(G)for(var r of G(t))U.call(t,r)&&z(e,r,t[r]);return e},W=(e,t,r)=>z(e,"symbol"!=typeof t?t+"":t,r);class J{constructor({connector:e,cacheId:t}){W(this,"cache"),W(this,"connector"),this.connector=e,this.cache=new C({namespace:t})}getOne(e,t){const r=Z({},t);return"string"==typeof e||"number"==typeof e||R(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):R(e)?this._fetchResourceBy(e,r):Promise.resolve(void 0)}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new B}))}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||R(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):Promise.resolve(void 0)}getIdOrFail(e,t){return this.getId(e,t).then((e=>{if(void 0===e)throw new Error;return e}))}getMany(e,t){return this._resourceCacheFilter(e).then((r=>{if(!r.length){const r={};return e.keyname?r.keyname=e.keyname:Object.assign(r,D(e)),this.connector.get("resource.search",t,Z({serialization:"full"},r)).then((e=>{if((null==t?void 0:t.cache)&&e)for(const t of e)this.cache.add("resource.item",Promise.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):Promise.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",t,{parent:e}).then((e=>{const n=[];for(const o of e)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(o),{id:o.resource.id}),r.push(o),(null==t?void 0:t.recursive)&&o.resource.children&&n.push(this._getChildrenOf(o.resource.id,t,r));return n.length?Promise.all(n).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,n=function*(){var t;const r=this.cache.all(),n=[];for(const o of r){const r=null==(t=o.props)?void 0:t.id;["resource.item","resource"].includes(o.key)&&void 0!==r&&("number"==typeof r?r===e&&n.push(o):(yield this.getId(r))===e&&n.push(o))}for(const e of n)this.cache.delete(e)},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}_fetchResourceById(e,t){return this.connector.get("resource.item",t,{id:e})}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return Promise.all(this.cache.matchAll("resource.item")).then((t=>(t.filter((t=>{if(t)return e.keyname&&t.resource.keyname?e.keyname===t.resource.keyname:p(e.id)&&p(t.resource.id)?e.id===t.resource.id:L(e,t.resource)})),[])))}}const H=[];function Q(e){H.push(e)}class K extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var X=Object.defineProperty,Y=(e,t,r)=>((e,t,r)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ee extends N{constructor(e){super(e),Y(this,"name","InsufficientPermissionsError"),Y(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,ee.prototype)}}const te=/\{ *([\w_-]+) *\}/g;function re(e,t){return e.replace(te,((e,r)=>{let n=t[r];if(void 0===n)throw new Error("No value provided for letiable "+e);return"function"==typeof n&&(n=n(t)),n}))}var ne=Object.defineProperty,oe=Object.getOwnPropertySymbols,ie=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable,ae=(e,t,r)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function le(e){return t=this,r=null,n=function*(){const{params:t,name:r,connector:n,requestOptions:o}=e,i=yield n.connect();let s=i&&i[r];if(s){s=[...s];let e=s.shift();if(s.length){const r={};for(let e=0;e<s.length;e++){const n=s[e];if(r[e]=`{${n}}`,void 0===t[n])throw new Error(`\`${n}\` URL API argument is not specified`)}e&&(e=re(e,r))}if(t){const r=[],n=t.paramList;Array.isArray(n)&&n.forEach((([e,t])=>{r.push(`${e}=${t}`)}));for(const e in t)-1===s.indexOf(e)&&r.push(`${e}=${t[e]}`);r.length&&(e=`${e}?${r.join("&")}`)}if(e)return n.makeQuery(e,t,((e,t)=>{for(var r in t||(t={}))ie.call(t,r)&&ae(e,r,t[r]);if(oe)for(var r of oe(t))se.call(t,r)&&ae(e,r,t[r]);return e})({cacheName:r},o));throw new Error("Request URL is not set")}},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}var ce=Object.defineProperty,ue=(e,t,r)=>((e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class pe extends Error{constructor(e){super(),ue(this,"name","NetworkError"),Object.setPrototypeOf(this,pe.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let he;he=(e,t,r={},n,o)=>{r.method=r.method||"GET";const i=new XMLHttpRequest;i.open(r.method||"GET",e,!0),"blob"===r.responseType&&(i.responseType=r.responseType);const s=()=>{try{return JSON.parse(i.responseText)}catch(e){return i.responseText}};i.onload=()=>{-1!==[401,403,404,422,500].indexOf(i.status)&&n(new N(s())),((e=!1)=>{const o=e?n:t;"blob"===r.responseType?o(i.response):i.responseText?o(s()):n({message:""})})()},i.onerror=t=>{n(0===i.status?new pe(e):t)},i.upload.onprogress=function(e){if(e.lengthComputable){r.onProgress&&r.onProgress(e.loaded/e.total*100,e)}};const a=r.headers;if(a)for(const c in a){const e=a[c];"string"==typeof e&&i.setRequestHeader(c,e)}let l;if(void 0!==r.withCredentials&&(i.withCredentials=r.withCredentials),r.file){if(l=new FormData,l.append("file",r.file),r.data)for(const c in r.data)l.append(c,l[c])}else l=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;o&&o((()=>{i.abort()})),i.send(l)};var de=Object.defineProperty,fe=Object.defineProperties,ye=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,ve=(e,t,r)=>t in e?de(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,we=(e,t)=>{for(var r in t||(t={}))ge.call(t,r)&&ve(e,r,t[r]);if(me)for(var r of me(t))be.call(t,r)&&ve(e,r,t[r]);return e},_e=(e,t,r)=>ve(e,"symbol"!=typeof t?t+"":t,r),Oe=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));let Le=0,Pe=0;class Ie{constructor(e){this.options=e,_e(this,"id",Le++),_e(this,"emitter",new r),_e(this,"user"),_e(this,"resources"),_e(this,"cache"),_e(this,"withCredentials"),_e(this,"client",`NextGIS-NGW-Connector/${M}`),_e(this,"routeStr","/api/component/pyramid/route"),_e(this,"activeRequests",{}),_e(this,"requestTransform");const t=function(e){return H.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return L(t.options.auth,e.auth)}}))}(e);if(this.cache=new C({namespace:e.cacheId}),t)return t;{const{route:t,requestTransform:r,withCredentials:n}=this.options;t&&(this.routeStr=t),r&&(this.requestTransform=r),void 0!==n&&(this.withCredentials=n),this.resources=new J({connector:this,cacheId:e.cacheId}),Q(this)}}static create(e){return new this(e)}clearCache(){this.cache.clean(),this.resources.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,Q(this)}connect(){return Oe(this,null,(function*(){const e=this.options.auth;if(e){const{login:t,password:r}=e;t&&r&&(yield this._login({login:t,password:r}))}const t=`${this.routeStr}?client=${this.client}`;return yield this.makeQuery(t,{},{cacheName:"route",cache:!0,cacheProps:{id:this.id,auth:e,baseUrl:this.options.baseUrl}})}))}login(e,t){return this.logout(),Q(this),this._login(e,t)}logout(){this.abort(),function(e){const t=H.indexOf(e);-1!==t&&H.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return Oe(this,null,(function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=we({headers:this.getAuthorizationHeaders(e)},t);return this.makeQuery("/api/component/auth/current_user",{},r)}))}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:`Basic ${t}`}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=encodeURIComponent(`${t}:${r}`);return window.btoa(n)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return we({},this.activeRequests)}apiRequest(e,t={},r={}){var n;return le({name:e,params:P(t=null!=(n=r.params)?n:t),requestOptions:r,connector:this})}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}makeQuery(e,t){return Oe(this,arguments,(function*(e,t,r={}){var n;if(!(e=(this.options.baseUrl?this.options.baseUrl:"")+e))throw new Error("Empty `url` not allowed");if(t){const r=((e,t)=>{var r={};for(var n in e)ge.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&me)for(var n of me(e))t.indexOf(n)<0&&be.call(e,n)&&(r[n]=e[n]);return r})(t,["paramList"]);e=re(e,r)}e=encodeURI(x(e)),r=we({withCredentials:this.withCredentials},r);const{cache:o,signal:i,method:s="GET",headers:a,cacheName:l,cacheProps:c,responseType:u,withCredentials:p}=r,h=new AbortController,d=h.signal;if(i){if(i.aborted)throw new K;i.addEventListener("abort",(()=>{h.abort()}))}r.signal=d;const f=()=>Oe(this,null,(function*(){const t=Pe++;this.activeRequests[t]=h;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}}));if(o&&"GET"===s){const r=c||(y=we({},P({headers:a,withCredentials:p,responseType:u,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),fe(y,ye({params:t})));return this.cache.add(l||e,f,r,!1)}var y;return f()}))}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise(((r,n)=>{var o;if(this.user&&((t=t||{}).headers=we(we({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;he(e,r,t,n,(e=>{i=e})),null==(o=t.signal)||o.addEventListener("abort",(()=>{void 0!==i&&i(),n(new K)}))})).catch((e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e}))}_login(e,t){return Oe(this,null,(function*(){try{const r=yield this.getUserInfo(e,t);return this.user=r,this.emitter.emit("login",r),r}catch(r){throw this.emitter.emit("login:error",r),r}}))}_cleanActiveRequest(e){delete this.activeRequests[e]}_handleHttpError(e){if(e&&e instanceof N){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new B(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new ee(e)}return e}}_e(Ie,"errors",{NgwError:N,ResourceNotFoundError:B});var xe=Object.defineProperty,Ee=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Ce=(e,t,r)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Me=(e,t)=>{for(var r in t||(t={}))Ae.call(t,r)&&Ce(e,r,t[r]);if(Ee)for(var r of Ee(t))je.call(t,r)&&Ce(e,r,t[r]);return e};function ke(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${o=t,o.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var o;return null!==new RegExp(n,r?"i":"").exec(e)}const Se={gt:(e,t)=>e>t,lt:(e,t)=>e<t,ge:(e,t)=>e>=t,le:(e,t)=>e<=t,eq:(e,t)=>e===t,ne:(e,t)=>e!==t,in:(e,t)=>-1!==t.indexOf(e),notin:(e,t)=>-1===t.indexOf(e),like:(e,t)=>ke(e,t),ilike:(e,t)=>ke(e,t,!0)};function Ne(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Te(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(Ne(t)){const[r,n,o]=t,i=Se[n];if(i){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,((n,i)=>(t=e[i],r.replace(i,o))));return i(t,n)}return i(e[r],o)}return!1}return Te(e,t)},o=t.filter((e=>Array.isArray(e)));return"any"===r?o.some(n):o.every(n)}var Fe=Object.defineProperty,Be=Object.defineProperties,Re=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,Ge=(e,t,r)=>t in e?Fe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ve=(e,t)=>{for(var r in t||(t={}))De.call(t,r)&&Ge(e,r,t[r]);if($e)for(var r of $e(t))qe.call(t,r)&&Ge(e,r,t[r]);return e},Ue=(e,t)=>Be(e,Re(t)),ze=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const Ze={srs:4326,geom_format:"geojson"};function We(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function Je(e,t){const{extensions:r,geom:n,fields:o,srs:i,ilike:s,like:a}=t,l=r?r.join(","):"";"*"!==l&&(e.extensions=l),null!=o&&(e.fields=Array.isArray(o)?o.join(","):""),void 0!==n&&(e.geom=n?"yes":"no",n||(delete e.srs,delete e.geom_format)),p(s)?e.ilike=s:p(a)&&(e.like=a),p(i)&&(e.srs=i)}function He(e){return ze(this,null,(function*(){const t=Ke(e),r=yield Promise.all(t),n=[],o=[];for(const e of r)for(const t of e)n.includes(t.id)||(o.push(t),n.push(t.id));return e.offset||e.limit?o.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:o.length):o}))}function Qe(e){const[t,r,n]=e;let o="",i="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,n)=>(o=t,i=n,r)))}__${r}`,o+n+i]}function Ke(e,t=[],r=[]){var n;const{filters:o}=e,i=null!=(n=e.paramList)?n:[],s="string"==typeof o[0]?o[0]:"all",a=o.filter((e=>Array.isArray(e)));if("any"===s)for(const l of a)Ne(l)?t.push(Ye(Ue(Ve({},e),{paramList:[...r,...i,Qe(l)]}))):Ke(Ue(Ve({},e),{filters:l}),t,[...r]);else if("all"===s){const n=[],o=[];for(const e of a)Ne(e)?n.push(Qe(e)):o.push(e);if(o.length)for(const i of o)Ke(Ue(Ve({},e),{filters:i}),t,[...r,...n]);else t.push(Ye(Ue(Ve({},e),{paramList:[...r,...i,...n]})))}return t}function Xe(e){return`POLYGON((${e.map((([e,t])=>{const[r,n]=_(e,t).map((e=>Math.round(1*(e+Number.EPSILON))/1));return r+" "+n})).join(", ")}))`}function Ye(e){const t=Ve({},Ze),{limit:r,cache:n,signal:o,offset:i,orderBy:s,paramList:a,connector:l,geomFormat:c,intersects:u,resourceId:p}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,i&&(t.offset=i),c&&(t.geom_format=c),Je(t,e),s&&(t.order_by=s.join(",")),Array.isArray(u)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(u)?g(u):u;t.intersects=Xe(e)}else"string"==typeof u&&(t.intersects=u);a&&(t.paramList=a);const h=Ve({id:p},t);return l.get("feature_layer.feature.collection",{cache:n,signal:o},h)}var et=Object.defineProperty,tt=Object.defineProperties,rt=Object.getOwnPropertyDescriptors,nt=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,st=(e,t,r)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,at=(e,t)=>{for(var r in t||(t={}))ot.call(t,r)&&st(e,r,t[r]);if(nt)for(var r of nt(t))it.call(t,r)&&st(e,r,t[r]);return e},lt=(e,t)=>tt(e,rt(t)),ct=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function ut(e){return ct(this,null,(function*(){const t=at({},Ze);Je(t,e);const r=at({id:e.resourceId,fid:e.featureId},t),n=yield e.connector.get("feature_layer.feature.item",e,r);return lt(at({},n),{toGeojson:()=>ct(this,null,(function*(){if(n.geom)return We(n);{const t=(yield ut(lt(at({},e),{geom:!0,fields:null,extensions:null}))).geom;return We(lt(at({},n),{geom:t}))}}))})}))}var pt=Object.defineProperty,ht=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,yt=(e,t,r)=>t in e?pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,mt=(e,t,r)=>yt(e,"symbol"!=typeof t?t+"":t,r);class gt{constructor(e){this.options=e,mt(this,"name"),mt(this,"resourceId"),mt(this,"item"),mt(this,"_extent"),this.resourceId=e.resourceId;const t=e.item;this.item=t,this.name=e.labelField&&t.fields?t.fields[e.labelField]:String(t.id)}extent(e){return this._extent?Promise.resolve(this._extent):this.options.connector.get("feature_layer.feature.item_extent",e,{id:this.resourceId,fid:this.item.id}).then((e=>{const{minLat:t,minLon:r,maxLat:n,maxLon:o}=e.extent,i=[r,t,o,n];return this._extent=i,i}))}geoJson(e){return this.item.geom?Promise.resolve(We(this.item)):ut(((e,t)=>{for(var r in t||(t={}))dt.call(t,r)&&yt(e,r,t[r]);if(ht)for(var r of ht(t))ft.call(t,r)&&yt(e,r,t[r]);return e})({resourceId:this.resourceId,featureId:this.item.id,connector:this.options.connector,geom:!0,fields:null,extensions:null},e)).then((e=>(this.item.geom=e.geom,We(this.item))))}}function bt(e,t,r,n){return!!_t(e,t,r,Ot)}function vt(e,t,r,n){return _t(e,t,r,Lt)}function wt(e,t="children"){let r=[];const n=("function"==typeof t?t:e=>e[t])(e);return n&&(Array.isArray(n)?r=n:r.push(n)),n?r:void 0}function _t(e,t=(e=>!!e),r="children",n,o){return n(e,"function"==typeof t?t:e=>Te(e,t),r)}function Ot(e,t=(e=>!!e),r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(t(e))return e;const n=wt(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){const e=Ot(o[i],t,r,n);if(e)return e}}function Lt(e,t=(e=>!!e),r,n=[]){let o=[];if(Array.isArray(e))o=e;else{t(e)&&n.push(e);const i=wt(e,r);i&&(o=i)}for(let i=0;i<o.length;i++)o[i]&&Lt(o[i],t,r,n);return n}function Pt(e,t=(e=>!!e),r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(!t(e))return!1;const n=wt(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){if(!Pt(o[i],t,r,n))return!1}return!0}var It=Object.defineProperty,xt=(e,t,r)=>((e,t,r)=>t in e?It(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Et{constructor(e){xt(this,"item"),xt(this,"_children",[]),xt(this,"_parent"),this.item=e}setParent(e){this._parent=e}addChild(e){this._children.push(e)}getParent(){return this._parent}getParents(e){const t=this.getParent();return t?vt(t,e,(e=>e.tree.getParent())):[]}getRoot(){let e=this.getParent(),t=e;for(;e;)e=e.tree.getParent(),e&&(t=e);return t}find(e){return _t(this._children,e,(e=>e.tree.getChildren()),Ot)}every(e){return!!_t(this._children,e,(e=>e.tree.getChildren()),Pt)}some(e){return bt(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return vt(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}var At=Object.defineProperty,jt=(e,t,r)=>((e,t,r)=>t in e?At(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Ct{constructor(e,t,n){jt(this,"options"),jt(this,"emitter",new r),jt(this,"name"),jt(this,"item"),jt(this,"_blocked",!1),jt(this,"_container"),jt(this,"_value"),jt(this,"_removeEventsListener"),this.item=t,this.options=Object.assign({},n),this.name=e,this._value=this.getProperty()}getProperty(){return"function"==typeof this.options.getProperty?this.options.getProperty.call(this,this.item):this.options.value}getParents(){return this.item.tree.getParents()||[]}getParent(){return this.item.tree.getParent()}getChildren(){return this.item.tree.getChildren()}isGroup(){return this.item.tree.getDescendants().length}isBlocked(){if(void 0!==this._blocked)return this._blocked;const e=this.item.tree.getParents();return this._blocked=this._calculateBlockedStatus(e),this._blocked}set(e,t){this._value=this._prepareValue(e),this.update(this._value,t),this._fireChangeEvent(this._value,t)}get(){return this.getValue()}update(e,t){this._callOnSet(e,t)}getContainer(){return this._container}destroy(){if(this._container){const e=this._container.parentNode;e&&e.removeChild(this._container)}this._removeEventsListener&&this._removeEventsListener()}getValue(){return void 0!==this._value?this._value:this.getProperty()}_prepareValue(e){return e}_callOnSet(e,t){this.options.onSet&&this.options.onSet.call(this,e,t,this.item)}_fireChangeEvent(e,t){if(this.emitter){e=void 0!==e?e:this.getValue(),this.emitter.emit("change",{value:e,options:t});this.item.tree.getParents().forEach((r=>{const n=r.properties&&r.properties.property(this.name);n&&n.emitter.emit("change-tree",{value:e,options:t,item:this.item})}))}}_calculateBlockedStatus(e){return e.some((e=>{var t;const r=null==(t=e.properties)?void 0:t.property(this.name);return!!r&&!r.get()}))}}var Mt=Object.defineProperty,kt=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,Tt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ft=(e,t)=>{for(var r in t||(t={}))St.call(t,r)&&Tt(e,r,t[r]);if(kt)for(var r of kt(t))Nt.call(t,r)&&Tt(e,r,t[r]);return e};const Bt=class e extends Ct{constructor(t,r,n){super(t,r,Ft(Ft({},e.options),n)),this.set(this.get())}update(e,t){if(e){if(t&&t.bubble||this.options.bubble){this.unBlock(t);const r=this.getParent(),n=r&&r.properties&&r.properties.property(this.name);n&&n.set(e,Object.assign({},t,{bubble:!0,propagation:!1}))}this.isBlocked()||this._turnOn(t)}else this._turnOff(t);(t&&t.propagation||this.options.propagation)&&this._propagation(e,t)}getHierarchyValue(){return this.get()&&this.getParents().every((e=>{const t=e.properties&&e.properties.get(this.name);return t&&t.get()}))}block(e){this._blocked=!0,this._block(e)}unBlock(e){this._blocked=!1,this.getValue()&&this._unBlock(e)}blockChild(e){this.item.tree.getDescendants().forEach((t=>this._blockChild(t,e)))}unblockChild(e){this.item.tree.getChildren().forEach((t=>this._unBlockChild(t,e)))}_prepareValue(e){return e}_turnOff(e){this.options.turnOff&&this.options.turnOff.call(this,e),this._callOnSet(!1,e),this.options.hierarchy&&this.isGroup()&&this.blockChild(e)}_turnOn(e){this.options.turnOn&&this.options.turnOn.call(this,e),this._callOnSet(!0,e),this.options.hierarchy&&this.isGroup()&&this.unblockChild(e)}_block(e){this._turnOff(e)}_unBlock(e){this._turnOn(e)}_blockChild(e,t){const r=e.properties&&e.properties.property(this.name);r&&r.block&&r.block(t)}_unBlockChild(e,t){const r=e.properties&&e.properties.property(this.name);r&&r.unBlock&&r.unBlock(t)}_propagation(e,t){if(this.isGroup()){const r=this.item.tree.getChildren();for(let n=0;n<r.length;n++){const o=r[n],i=o.properties&&o.properties.property(this.name);i&&i.set(e,Ft(Ft({},t),{propagation:!0,bubble:!1}))}}}};Tt(Bt,"options"+"",{hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"});let Rt=Bt;var $t=Object.defineProperty,Dt=Object.getOwnPropertySymbols,qt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,Vt=(e,t,r)=>t in e?$t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ut=(e,t,r)=>Vt(e,"symbol"!=typeof t?t+"":t,r);const zt=class e{constructor(e,t){this.item=e,Ut(this,"options",{}),Ut(this,"_properties",{}),Ut(this,"_propertiesList",[]),t&&t.forEach(this._setPropertyHandler.bind(this))}add(e){this._setPropertyHandler(e)}update(){this.list().forEach((e=>e.update()))}get(e){const t=this.property(e);return t?t.get():void 0}set(e,t,r){const n=this.property(e);n&&n.getValue()!==t&&n.set(t,r)}property(e){return this._properties[e]}list(){return this._propertiesList.map((e=>this._properties[e]))}destroy(){for(const e in this._properties){const t=this.property(e);t&&t.destroy&&t.destroy()}this._properties={},this._propertiesList=[]}_setPropertyHandler(e){const t=this._getHandler(e);if(t&&e.name){const r=((e,t)=>{for(var r in t||(t={}))qt.call(t,r)&&Vt(e,r,t[r]);if(Dt)for(var r of Dt(t))Gt.call(t,r)&&Vt(e,r,t[r]);return e})({},e);this._properties[e.name]=new t(e.name,this.item,r),this._propertiesList.push(e.name)}}_getHandler(t){const r=t.handler;return!r&&t.type?"boolean"===t.type?e.handlers.CheckProperty:e.handlers.BaseProperty:r}};Ut(zt,"handlers",{CheckProperty:Rt});let Zt=zt;var Wt=Object.defineProperty,Jt=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,Kt=(e,t,r)=>t in e?Wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Xt=(e,t,r)=>Kt(e,"symbol"!=typeof t?t+"":t,r);let Yt=0;class er{constructor(e){Xt(this,"options",{}),Xt(this,"properties"),Xt(this,"tree"),Xt(this,"id",Yt),Yt+=1,this.options=((e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&Kt(e,r,t[r]);if(Jt)for(var r of Jt(t))Qt.call(t,r)&&Kt(e,r,t[r]);return e})({},e),this.tree=new Et(this)}initProperties(){this.properties=new Zt(this,this.options.properties)}}var tr=Object.defineProperty,rr=Object.defineProperties,nr=Object.getOwnPropertyDescriptors,or=Object.getOwnPropertySymbols,ir=Object.prototype.hasOwnProperty,sr=Object.prototype.propertyIsEnumerable,ar=(e,t,r)=>t in e?tr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,lr=(e,t)=>{for(var r in t||(t={}))ir.call(t,r)&&ar(e,r,t[r]);if(or)for(var r of or(t))sr.call(t,r)&&ar(e,r,t[r]);return e},cr=(e,t)=>rr(e,nr(t));function ur(e){const t=e.extent_bottom,r=e.extent_left,n=e.extent_top,o=e.extent_right;if(t&&r&&n&&o){const e=[r,t,o,n];return e[3]>82&&(e[3]=82),e[1]<-82&&(e[1]=-82),e}}function pr({resourceId:e,connector:t,cache:r=!0,signal:n}){return t.get("layer.extent",{cache:r,signal:n},{id:e}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}function hr(e){return e.connector.getResource(e.resourceId,{signal:e.signal,cache:e.cache}).then((t=>{if(t)return dr(t,e.connector,e)}))}function dr(e,t,r){if(e.webmap)return Promise.resolve(ur(e.webmap));{const n=e.resource;return n.cls&&-1!==n.cls.indexOf("style")?t.getResource(n.parent.id,r).then((e=>{if(e)return pr(cr(lr({},r),{resourceId:e.resource.id,connector:t}))})):pr(cr(lr({},r),{resourceId:n.id,connector:t}))}}var fr=Object.defineProperty,yr=(e,t,r)=>((e,t,r)=>t in e?fr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),mr=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class gr{constructor(){yr(this,"item"),yr(this,"connector"),yr(this,"_extent")}getExtent(){return mr(this,null,(function*(){return this.getBounds()}))}getBounds(e){return mr(this,null,(function*(){return this._extent?this._extent:this.item?(this._extent=yield dr(this.item,this.connector,e),this._extent):void 0}))}}var br=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function vr(e,t){return br(this,null,(function*(){const r=e.resource,n=r;let{keyname:o,resourceId:i}=e;if(r&&("string"==typeof r?o=r:i="number"==typeof r?r:n.resource&&void 0!==n.resource&&"resource"in n?r.resource.id:yield vr(r,t)),!i&&o){const e=yield t.getResource(o);e&&(i=e.resource.id)}return i}))}const wr={tms:"TILE"};var _r=Object.defineProperty,Or=Object.getOwnPropertySymbols,Lr=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable,Ir=(e,t,r)=>t in e?_r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,xr=(e,t)=>{for(var r in t||(t={}))Lr.call(t,r)&&Ir(e,r,t[r]);if(Or)for(var r of Or(t))Pr.call(t,r)&&Ir(e,r,t[r]);return e},Er=(e,t,r)=>Ir(e,"symbol"!=typeof t?t+"":t,r);const Ar="https://qms.nextgis.com";function jr(e,t=Ar,r={}){let n;if("webMap"in e){const o=e,{webMap:i,url:s}=o,a=((e,t)=>{var r={};for(var n in e)Lr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Or)for(var n of Or(e))t.indexOf(n)<0&&Pr.call(e,n)&&(r[n]=e[n]);return r})(o,["webMap","url"]);n=i,s&&(t=s),a&&(r=a)}else n=e;t||(t=Ar);class o{constructor(e,t){Er(this,"qms"),Er(this,"options"),Er(this,"map"),this.map=e;const n=xr(xr({},r),t);this.options=n,this.options.baselayer=!0,n.qms&&(this.qms=n.qms)}addLayer(e){return r=this,i=null,s=function*(){if(!this.qms&&e.qmsId)try{this.qms=yield function(e){return new Promise(((t,r)=>{const n=new XMLHttpRequest;n.onreadystatechange=()=>{if(4===n.readyState&&200===n.status&&n.responseText)try{t(JSON.parse(n.responseText))}catch(e){r(e)}},n.open("GET",x(e),!0),n.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=wr[r.type||"tms"],a=n.mapAdapter.layerAdapters[t];if(a&&(i=o,s=a,["showLayer","hideLayer"].forEach((e=>{const t=Object.getOwnPropertyDescriptor(s.prototype,e);t&&Object.defineProperty(i.prototype,e,t)})),"TILE"===t)){if(e=xr(xr({order:0,maxZoom:n.options.maxZoom,minZoom:n.options.minZoom},this.options),function(e){const t=("https:"===location.protocol?"https":"http")+"://";let r=e.url.replace(/^(https?|ftp):\/\//,t);return e.y_origin_top||(r=r.replace("{y}","{-y}")),{url:r,name:e.name,attribution:e.copyright_text,maxZoom:e.z_max,minZoom:e.z_min}}(r)),r.origin_url){const[t,n]=function(e){const t=[];return[e=e.replace(/{switch:(.*?)}/,((e,r)=>("string"==typeof r&&r.split(",").forEach((e=>t.push(e))),"{s}"))),t]}(r.origin_url);n.length&&(e.subdomains=n,e.url=t)}return this.options=e,new a(this.map,e).addLayer(e)}}var i,s},new Promise(((e,t)=>{var n=e=>{try{a(s.next(e))}catch(r){t(r)}},o=e=>{try{a(s.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(r,i)).next())}));var r,i,s}}return o}var Cr=Object.defineProperty,Mr=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,Nr=(e,t,r)=>t in e?Cr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Tr=(e,t)=>{for(var r in t||(t={}))kr.call(t,r)&&Nr(e,r,t[r]);if(Mr)for(var r of Mr(t))Sr.call(t,r)&&Nr(e,r,t[r]);return e},Fr=(e,t,r)=>Nr(e,"symbol"!=typeof t?t+"":t,r);class Br{constructor(e){Fr(this,"options",{url:"https://qms.nextgis.com"}),Fr(this,"url"),this.options=Tr(Tr({},this.options),e),this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return jr({webMap:e,url:this.url})}}Fr(Br,"utils",{createQmsAdapter:jr});var Rr=Object.defineProperty,$r=Object.defineProperties,Dr=Object.getOwnPropertyDescriptors,qr=Object.getOwnPropertySymbols,Gr=Object.getPrototypeOf,Vr=Object.prototype.hasOwnProperty,Ur=Object.prototype.propertyIsEnumerable,zr=Reflect.get,Zr=(e,t,r)=>t in e?Rr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wr=(e,t)=>{for(var r in t||(t={}))Vr.call(t,r)&&Zr(e,r,t[r]);if(qr)for(var r of qr(t))Ur.call(t,r)&&Zr(e,r,t[r]);return e},Jr=(e,t)=>$r(e,Dr(t)),Hr=(e,t,r)=>zr(Gr(e),r,t),Qr=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Kr(e){let t;for(t in e){const r=e[t];if(I(r)){const n=r;if(p(n.year)&&p(n.month)&&p(n.day)){const r=[n.year,n.month-1,n.day];"hour"in n&&[n.hour,n.minute,n.second].forEach((e=>{r.push(e)})),e[t]=new Date(...r).toISOString()}}else"id"===t&&"string"==typeof r&&(e[t]=r.split(",").map(Number))}return e}var Xr=Object.defineProperty,Yr=Object.defineProperties,en=Object.getOwnPropertyDescriptors,tn=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,on=(e,t,r)=>t in e?Xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,sn=(e,t)=>{for(var r in t||(t={}))rn.call(t,r)&&on(e,r,t[r]);if(tn)for(var r of tn(t))nn.call(t,r)&&on(e,r,t[r]);return e},an=(e,t)=>Yr(e,en(t)),ln=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function cn(e){return ln(this,null,(function*(){var t;const r=e.filters;if(r){let n=yield He(an(sn({},e),{filters:r}));return(null!=(t=e.clientFilterValidate)?t:un(r))&&(n=n.filter((e=>Te(Kr(an(sn({},e.fields),{id:e.id})),r)))),n}return Ye(e)}))}function un(e){if("any"===e[0])return!0;for(let t=1;t<e.length;t++){const r=e[t];if("[object Array]"===Object.prototype.toString.call(r)){if(un(r))return!0}}return!1}var pn=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function hn(e){return function(e){return pn(this,null,(function*(){const t=yield cn(e),r=[];return t.forEach((e=>{r.push(We(e))})),r}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const dn=["fields","intersects","limit","orderBy","strategy"];function fn(e){const t={};return dn.forEach((r=>{const n=e[r];void 0!==n&&(t[r]=n)})),t}var yn=Object.defineProperty,mn=Object.defineProperties,gn=Object.getOwnPropertyDescriptors,bn=Object.getOwnPropertySymbols,vn=Object.getPrototypeOf,wn=Object.prototype.hasOwnProperty,_n=Object.prototype.propertyIsEnumerable,On=Reflect.get,Ln=(e,t,r)=>t in e?yn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Pn=(e,t)=>{for(var r in t||(t={}))wn.call(t,r)&&Ln(e,r,t[r]);if(bn)for(var r of bn(t))_n.call(t,r)&&Ln(e,r,t[r]);return e},In=(e,t)=>mn(e,gn(t)),xn=(e,t,r)=>Ln(e,"symbol"!=typeof t?t+"":t,r),En=(e,t,r)=>On(vn(e),r,t),An=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function jn(e){return An(this,null,(function*(){var t,n;const{item:o,webMap:i,Adapter:s,connector:a,layerOptions:l,addLayerOptionsPriority:c}=e,u=null==c||c,p=l,h=s||l.Adapter||i.mapAdapter.layerAdapters.GEOJSON,d=[];let f,y,m=!1;const g=yield vr(p,a);(null==(n=null==(t=p.adapterOptions)?void 0:t.popupOptions)?void 0:n.fromProperties)&&(p.adapterOptions.popupOptions.createPopupContent=({feature:e})=>e&&function(e,t){{const r=document.createElement("div");if(t&&t.feature_layer)t.feature_layer.fields.forEach((t=>{if(t.grid_visibility){const n=e.properties&&e.properties[t.keyname];if(n){const e=document.createElement("div");r.appendChild(e),e.innerHTML=`<span>${t.display_name}</span>: ${n}<span></span>`}}}));else if(e.properties)for(const t in e.properties){const n=document.createElement("div");r.appendChild(n),n.innerHTML=`<span>${t}</span>: ${e.properties[t]}<span></span>`}return r}}(e,o));const b=(e,t)=>An(this,null,(function*(){w(),y=new AbortController;const r=y.signal;return(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",y.abort),(t=t||{}).signal=r,f={filters:e,options:t},hn(Pn({resourceId:g,filters:e,connector:a,cache:!0},t))}));let v=!1;const w=()=>{y&&(y.abort(),y=void 0)};class _ extends h{constructor(){super(...arguments),xn(this,"emitter",new r),xn(this,"__onMapMove"),xn(this,"__onMapMoveStart"),xn(this,"__enableMapMoveListener"),xn(this,"__disableMapMoveListener")}addLayer(e){return An(this,null,(function*(){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==p.id&&(e.id=p.id),o&&o.vector_layer&&(e.type=po[o.vector_layer.geometry_type]),p.adapterOptions&&(e=u?Pn(Pn({},p.adapterOptions),e):Pn(Pn({},e),p.adapterOptions)),e.data&&0===Object.keys(e.data).length&&(e.data=void 0,t=!1);const n=e.strategy||void 0;this.options.strategy=n;const i=En(_.prototype,this,"addLayer").call(this,e);let s;return f={filters:e.propertiesFilter,options:fn(e)},t&&(s=this.updateLayer()),r&&s&&(yield s),n&&n.startsWith("BBOX")&&!m&&this._addBboxEventListener(),i}))}getExtent(){return this.getBounds()}getBounds(){return An(this,null,(function*(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?hr({connector:a,resourceId:o.resource.id}):En(_.prototype,this,"getBounds")?En(_.prototype,this,"getBounds").call(this):void 0}))}beforeRemove(){v=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,w()}getCount(){return function({connector:e,resourceId:t,cache:r=!0,signal:n}){return e.get("feature_layer.feature.count",{cache:r,signal:n},{id:t}).then((e=>e.total_count))}({connector:a,resourceId:g,cache:!0})}updateLayer(e){return An(this,null,(function*(){var t;if(e=e||f||{},null==(t=this.options.strategy)?void 0:t.startsWith("BBOX")){yield i.onLoad("create"),e.options=e.options||{},e.options.intersects=i.getBounds();const{minZoom:t,maxZoom:r}=this.options,n=i.getZoom();if(void 0!==n){if(void 0!==t&&n<t)return;if(void 0!==r&&n>r)return;if(m)return}}if(!v){try{this.emitter.emit("preupdate",e),i._emitLayerEvent("layer:preupdate",p.id||"",e);const t=yield b(e.filters,In(Pn({},e.options),{srs:this.options.srs}));let r=t;const n=yield this.getCount();if("BBOX+"===this.options.strategy){r={type:"FeatureCollection",features:[]};for(const e of t.features)-1===d.indexOf(String(e.id))&&(d.push(String(e.id)),r.features.push(e));m=void 0!==n&&d.length>=n,yield i.addLayerData(this,r)}else m=void 0!==n&&t.features.length>=n,yield i.setLayerData(this,t);this.emitter.emit("updated",t),i._emitLayerEvent("layer:updated",p.id||"",{data:t,newData:r,isFull:m})}catch(r){if(r instanceof Error&&"CancelError"!==r.name)throw r}En(_.prototype,this,"updateLayer")&&En(_.prototype,this,"updateLayer").call(this)}}))}propertiesFilter(e,t){return An(this,null,(function*(){if(w(),this.filter&&m)this.filter((t=>{const r=t.feature&&t.feature.properties&&Kr(Pn({},t.feature.properties));return!r||Te(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=yield b(e,In(Pn({},t),{srs:this.options.srs}));this.setData(r)}}))}removeFilter(){f=void 0,this.propertiesFilter([]),this.filter&&this.filter((()=>!0))}_addBboxEventListener(){this.__enableMapMoveListener=e=>{e===this&&(this._removeMoveEventListener(),this.updateLayer(),this._addMoveEventListener())},this.__disableMapMoveListener=e=>{e===this&&this._removeMoveEventListener()},i.emitter.on("layer:show",this.__enableMapMoveListener),i.emitter.on("layer:hide",this.__disableMapMoveListener),this.__enableMapMoveListener(this)}_removeBboxEventListener(){this.__enableMapMoveListener&&i.emitter.on("layer:show",this.__enableMapMoveListener),this.__disableMapMoveListener&&i.emitter.on("layer:hide",this.__disableMapMoveListener)}_addMoveEventListener(){this.__onMapMove=function(e,t=10){let r;function n(...o){n.clear(),r=setTimeout((()=>{r=null,e.apply(this,o)}),t)}return n.clear=function(){r&&(clearTimeout(r),r=null)},n}((()=>this.updateLayer())),this.__onMapMoveStart=w,i.emitter.on("movestart",this.__onMapMoveStart),i.emitter.on("moveend",this.__onMapMove)}_removeMoveEventListener(){this.__onMapMove&&i.emitter.removeListener("moveend",this.__onMapMove),this.__onMapMoveStart&&i.emitter.removeListener("movestart",this.__onMapMoveStart)}}return _}))}var Cn=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Mn({options:e,webMap:t,baseUrl:r}){var n;let o,i=e.adapter||"IMAGE";const s=t&&t.getLayerAdapters(),a=e.resource,l=e.tileNoData?e.tileNoData:200;if("number"==typeof a){if("IMAGE"===i){if(!s||s.IMAGE)return function({resourceId:e,baseUrl:t,nd:r,headers:n}){const o=t+"/api/component/render/image",i={resource:e};return r&&(i.nd=r),{url:o,resourceId:e,headers:n,params:i,updateWmsParams:t=>(r&&(t.nd=r),uo(t,e))}}({resourceId:a,headers:e.headers,nd:l,baseUrl:r});i="TILE"}if("WMS"===i){o=`${r}/api/resource/${a}/wms`;const t=e.adapterOptions;return{url:o,format:"image/png",version:"1.1.1",layers:t&&t.layers,headers:e.headers}}if("MVT"===i)return o=r+"/api/component/feature_layer/mvt?x={x}&y={y}&z={z}&resource="+a+"&simplification="+(null!=(n=e.simplification)?n:6),{url:o,sourceLayer:"ngw:"+a,featureIdName:"$id"};if("TERRAIN"===i)return o=r+`/api/resource/${a}/terrain_provider`,{url:o,adapter:i};if("MODEL_3D"===i)return o=r+`/api/component/model_3d/${a}/data.glb`,{url:o};if("TILE"===i)return o=r+"/api/component/render/tile?z={z}&x={x}&y={y}&resource="+a+"&nd="+l,{url:o,adapter:i}}else{if(void 0!==a)throw new Error("Option `resource` must be number, not "+typeof a);console.log("Option `resource` not set")}}var kn=Object.defineProperty,Sn=Object.defineProperties,Nn=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,Fn=Object.prototype.hasOwnProperty,Bn=Object.prototype.propertyIsEnumerable,Rn=(e,t,r)=>t in e?kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$n=(e,t)=>{for(var r in t||(t={}))Fn.call(t,r)&&Rn(e,r,t[r]);if(Tn)for(var r of Tn(t))Bn.call(t,r)&&Rn(e,r,t[r]);return e},Dn=(e,t)=>Sn(e,Nn(t)),qn=(e,t,r)=>Rn(e,"symbol"!=typeof t?t+"":t,r),Gn=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Vn(e){return Gn(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:n}){const o=n.resource.cls;let i=e.adapter||o&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[o]||"IMAGE";if(void 0!==i&&(e.adapter=i),"IMAGE"===i){const e=t.getLayerAdapters();!e||e.IMAGE||(i="TILE")}const s=t.mapAdapter.layerAdapters[i];if(s){const o=yield vr(e,r);return class extends s{constructor(i,s){super(i,s),this.map=i,qn(this,"item",n),qn(this,"resourceId",o);const a=Mn({options:e,webMap:t,baseUrl:r.options.baseUrl||""});if(a){const t=Dn($n($n({},a),e.adapterOptions),{params:{resource:o},layers:a.layers||String(o),resourceId:o});e.adapterOptions&&p(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options=$n($n({},this.options),t)}}addLayer(e){return super.addLayer($n($n({},this.options),e))}getLegend(e){return Gn(this,null,(function*(){const t=yield r.get("render.legend_symbols",$n({params:{id:o},cache:!0},e)),n=this.options.id;if(void 0!==n){return[{layerId:n,legend:t.map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}return[]}))}getIdentificationIds(){return Gn(this,null,(function*(){if(this.item){if("MVT"===i)return[this.item.resource.id];const e=this.item.resource.parent.id;if(p(e))return[e]}return[]}))}}}throw new Error(i+" not supported yet. Only TILE")}))}var Un=Object.defineProperty,zn=Object.defineProperties,Zn=Object.getOwnPropertyDescriptors,Wn=Object.getOwnPropertySymbols,Jn=Object.prototype.hasOwnProperty,Hn=Object.prototype.propertyIsEnumerable,Qn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Kn=(e,t)=>{for(var r in t||(t={}))Jn.call(t,r)&&Qn(e,r,t[r]);if(Wn)for(var r of Wn(t))Hn.call(t,r)&&Qn(e,r,t[r]);return e},Xn=(e,t)=>zn(e,Zn(t)),Yn=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const eo={},to=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];function ro(e){return Yn(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:n}){const o=n.resource.id,i=yield r.getResourceChildren(o),s=i&&i[0];if(s)return no(Xn(Kn({},e),{resource:s.resource.id}),t,r)}))}function no(e,t,r){return Yn(this,null,(function*(){let n,o;const i=e.adapter,s=yield vr(e,r);if(s){const a=e.resource;if(o=a&&a.resource&&void 0!==a.resource.id?a:yield r.getResource(s),!o)throw"Resource item is not found";{const a=o.resource.cls,l={layerOptions:Xn(Kn({},e),{resource:s}),connector:r,webMap:t,item:o};if(-1!==to.indexOf(a))if("webmap"===a)n=function(e){return Cn(this,arguments,(function*({layerOptions:e,webMap:t,connector:r}){const n=yield vr(e,r);return class extends Wo{constructor(e){super(e,{url:"",webMap:t,resourceId:n,connector:r})}}}))}(l);else if("vector_layer"===a||"postgis_layer"===a){const t=l.layerOptions.adapterOptions||{};if(t.type=t.type||o.vector_layer&&po[o.vector_layer.geometry_type],l.layerOptions.adapterOptions=t,e.adapterOptions=l,void 0!==i&&"GEOJSON"!==i){if("MVT"!==i)return ro(l);n=Vn(l)}else n=jn(l)}else{if("raster_layer"===a)return ro(l);if("basemap_layer"===a)n=function(e){return Qr(this,arguments,(function*({webMap:e,item:t}){if(t.basemap_layer){const r=t.basemap_layer.qms,n=t.basemap_layer.url;if(r){const t=JSON.parse(r);return Promise.resolve(Br.utils.createQmsAdapter(e,void 0,{qms:t,baselayer:!0}))}if(n){const t=e.mapAdapter.layerAdapters.TILE;if(t){class e extends t{addLayer(t){return Qr(this,null,(function*(){return Hr(e.prototype,this,"addLayer").call(this,Jr(Wr({},t),{url:n}))}))}}return e}}}}))}(l);else if("GEOJSON"===i){const t=yield r.getResource(o.resource.parent.id);if(t){const r=Xn(Kn({},e),{resource:o.resource.parent.id});n=jn(Xn(Kn({},l),{item:t,layerOptions:r}))}}else n=Vn(l)}else{if(!eo[a])throw`Resource class '${a}' not yet supported.`;{const e=eo[a];let t;t=i&&"function"!=typeof t?e[i]:e,t&&(n=t(l))}}}}if(n)return n.then((e=>{if(e){const t=e;return o&&(t.prototype.item=o,t.prototype.resourceId=o.resource.id,t.prototype.connector=r),u(t,[gr],{replace:!1}),t}}))}))}var oo=Object.defineProperty,io=Object.getOwnPropertySymbols,so=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable,lo=(e,t,r)=>t in e?oo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,co=(e,t)=>{for(var r in t||(t={}))so.call(t,r)&&lo(e,r,t[r]);if(io)for(var r of io(t))ao.call(t,r)&&lo(e,r,t[r]);return e};function uo(e,t){const{bbox:r,width:n,height:o,nd:i}=e;return{resource:Array.isArray(t)?t.join(","):t,extent:r,size:n+","+o,timestamp:Date.now(),nd:null!=i?i:200}}const po={POINT:"point",LINESTRING:"line",POLYGON:"polygon",MULTIPOINT:"point",MULTILINESTRING:"line",MULTIPOLYGON:"polygon",POINTZ:"point",LINESTRINGZ:"line",POLYGONZ:"polygon",MULTIPOINTZ:"point",MULTILINESTRINGZ:"line",MULTIPOLYGONZ:"polygon"};let ho;function fo(e,t=0){const r=t,n=function(){if(void 0===ho){const e=document.createElement("div");e.style.cssText="position: absolute; left: -100%; top: -100%; width: 100cm;",document.body.appendChild(e);const t=e.offsetWidth;document.body.removeChild(e),ho=t}return ho}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e,o=function(e){return Math.log(e/256)/Math.LN2}(n);return o}var yo=Object.defineProperty,mo=Object.defineProperties,go=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,vo=Object.prototype.hasOwnProperty,wo=Object.prototype.propertyIsEnumerable,_o=(e,t,r)=>t in e?yo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Oo=(e,t)=>{for(var r in t||(t={}))vo.call(t,r)&&_o(e,r,t[r]);if(bo)for(var r of bo(t))wo.call(t,r)&&_o(e,r,t[r]);return e},Lo=(e,t)=>mo(e,go(t)),Po=(e,t,r)=>_o(e,"symbol"!=typeof t?t+"":t,r),Io=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const xo=class e extends er{constructor(t,n,o,i,s,a){if(super(Oo(Oo({},e.options),o)),this.webMap=t,Po(this,"item"),Po(this,"connector"),Po(this,"layer"),Po(this,"emitter",new r),Po(this,"_rootDescendantsCount",0),i&&(this.connector=i),s&&this.tree.setParent(s),this.item=n,"root"===this.item.item_type)this._rootDescendantsCount=this._sumUp(this.item.children);else{const e=this.tree.getRoot();e&&(this._rootDescendantsCount=e._rootDescendantsCount)}this.initProperties(),a||this._init(n)}static create(t,r,n,o,i){return Io(this,null,(function*(){const s=new e(t,r,n,o,i,!0);return yield s._init(r),s}))}initItem(e){return"group"===e.item_type||"root"===e.item_type?this.initGroupItem(e):this.initLayerItem(e)}bringToFront(){}fit(){}getLayer(){return this.layer}getLegend(e){return Io(this,null,(function*(){var t;const r=null==(t=this.layer)?void 0:t.id;if(void 0!==r){const t=this.connector;if(t){return[{layerId:r,legend:(yield t.get("render.legend_symbols",Oo({params:{id:this.item.resourceId}},e))).map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}}return[]}))}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,n=Lo(Oo({visibility:!1,name:e.display_name},this.options),{params:{resource:this.item.resourceId,item:this.item}});if(this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e?this._rootDescendantsCount-e.draw_order_position:this.id).padStart(4,"0");n.order=Number((0|this.options.order)+"."+t)}if(this.options.popupOptions&&(n.popupOptions=this.options.popupOptions),"layer"===e.item_type){const{maxZoom:t,minZoom:r}=this._getZoomRange(e);Object.assign(n,Lo(Oo({updateWmsParams:e.updateWmsParams},this.options),{url:e.url,maxZoom:t,minZoom:r,minScale:e.layer_min_scale_denom,maxScale:e.layer_max_scale_denom,interactive:e.layer_identifiable}))}return void 0!==r&&(n.opacity=r),n}getChildren(e){return[...e.children].reverse()}_mapScaleToZoomLevel(e){return fo(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor(this.webMap,e,this.options,this.connector,this);this.tree.addChild(t)}}return Promise.resolve()}initLayerItem(t){const r=this.getItemOptions(t),n=e=>{t._layer=e,this.layer=e;this.properties.get("visibility")&&this.properties.set("visibility",!0),void 0!==r.opacity&&this.webMap.setLayerOpacity(e,r.opacity)};let o;if("layer"===t.item_type)o=t.adapter||t.layer_adapter.toUpperCase();else if(e.GetAdapterFromLayerType[t.item_type]){o=(0,e.GetAdapterFromLayerType[t.item_type])(t,r,this.webMap,this.connector)}return o?this.webMap.addLayer(o,r).then((e=>{n(e)})):t._layer?Promise.resolve(n(t._layer)):Promise.reject("No layer added")}_getZoomRange(e){const t=this.options.minZoom,r=this.options.maxZoom,n=e.layer_min_scale_denom?this._mapScaleToZoomLevel(e.layer_min_scale_denom):void 0,o=e.layer_max_scale_denom?this._mapScaleToZoomLevel(e.layer_max_scale_denom):void 0,i=[t,n].filter(Boolean),s=[r,o].filter(Boolean);return{minZoom:i.length?Math.max(...i):void 0,maxZoom:s.length?Math.min(...s):void 0}}_init(e){this.initItem(e).then((()=>{this.emitter.emit("init")}))}_sumUp(e,t=0){for(const r of e)"layer"===r.item_type?(t+=1,r.draw_order_position=r.draw_order_position||t):"group"===r.item_type&&(t=this._sumUp(r.children,t));return t}};Po(xo,"GetAdapterFromLayerType",{}),Po(xo,"options",{properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return bt(e.item,(e=>"layer_enabled"in e&&e.layer_enabled),(e=>e.children));if("layer"===e.item.item_type)return e.item.layer_enabled}return!1},onSet(e,t,r){r&&"layer"===r.item.item_type&&(r.layer&&(e?r.webMap.showLayer(r.layer):r.webMap.hideLayer(r.layer)),r.item.layer_enabled=e)}},{name:"opacity",handler:class extends Ct{getProperty(){const e=this.item.layer;return e&&e&&e.options&&void 0!==e.options.opacity?e.options.opacity:1}update(e,t){if(t=t||{},this.isGroup()){this._value=this._prepareValue(e,t);const r=this.getChildren();for(const n of r){const r=n.properties.property(this.name);r&&(t.propagation?r.set(e,t):r.update(r.get(),t))}}const r=this.item.layer;if(r){const t=this.getParents().reduce(((e,t)=>{const r=t.properties.property(this.name);return e*(r?r.getValue():1)}),1);this.item.webMap.setLayerOpacity(r,this._prepareValue(e*t))}}_prepareValue(e,t){return t&&t.propagation&&this.isGroup()?1:Number(e)}}}]});let Eo=xo;var Ao=Object.defineProperty,jo=Object.getOwnPropertySymbols,Co=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable,ko=(e,t,r)=>t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,So=(e,t)=>{for(var r in t||(t={}))Co.call(t,r)&&ko(e,r,t[r]);if(jo)for(var r of jo(t))Mo.call(t,r)&&ko(e,r,t[r]);return e},No=(e,t,r)=>ko(e,"symbol"!=typeof t?t+"":t,r),To=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function Fo(e){return t=this,r=arguments,n=function*({webMap:e,connector:t,item:r,adapterOptions:n={},idPrefix:o="first-show-adapter"}){const i=function(e){return To(this,arguments,(function*({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:n}){return class{constructor(){No(this,"options",{}),No(this,"layer",[]),No(this,"_removed",!1),No(this,"_creatingInProgress",!1)}addLayer(){return this.layer}removeLayer(){this._removed=!0;for(const t of this.layer)e.removeLayer(t)}destroyed(){return this._removed}showLayer(){return To(this,null,(function*(){if(this.options.visibility=!0,this.layer.length)for(const t of this.layer)yield e.showLayer(t);else yield this.loadLayer()}))}hideLayer(){return To(this,null,(function*(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)yield e.hideLayer(t)}))}loadLayer(){return To(this,null,(function*(){if(!this.layer.length&&!this._creatingInProgress){this._creatingInProgress=!0;const o=yield n(this);if(o){const n=new o(e.mapAdapter.map,So({},t)),i=yield n.addLayer({order:this.options.order,headers:this.options.headers,baselayer:this.options.baselayer});r&&r(n),Object.assign(n.options,t),n.layer=i,this._removed&&e.removeLayer(n),this.layer.push(n),this.options.visibility&&(yield e.showLayer(n)),this._creatingInProgress=!1}}return this.layer}))}}}))}({webMap:e,adapterOptions:n,onLayerAdded:e=>{e.options.baselayer=!1,e.id=o+"-"+r.resource_id},createAdapter:()=>no({resource:r.resource_id,adapterOptions:{name:r.display_name,opacity:r.opacity}},e,t)});return i},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}var Bo=Object.defineProperty,Ro=Object.defineProperties,$o=Object.getOwnPropertyDescriptors,Do=Object.getOwnPropertySymbols,qo=Object.prototype.hasOwnProperty,Go=Object.prototype.propertyIsEnumerable,Vo=(e,t,r)=>t in e?Bo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Uo=(e,t)=>{for(var r in t||(t={}))qo.call(t,r)&&Vo(e,r,t[r]);if(Do)for(var r of Do(t))Go.call(t,r)&&Vo(e,r,t[r]);return e},zo=(e,t,r)=>Vo(e,"symbol"!=typeof t?t+"":t,r),Zo=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Wo{constructor(e,t){this.map=e,this.options=t,zo(this,"layer"),zo(this,"NgwWebmapItem",Eo),zo(this,"pixelRadius",10),zo(this,"resourceId"),zo(this,"webmapClassName","webmap"),zo(this,"emitter",new r),zo(this,"_extent"),zo(this,"response"),zo(this,"_webmapLayersIds"),zo(this,"_webmapBaselayersIds",[]),zo(this,"_lastActiveBaselayer");const n=t.resourceId;if(Array.isArray(n)?(this.resourceId=n[0],this.options.id=n[1]):this.resourceId=n,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}addLayer(e){return Zo(this,null,(function*(){var t,r;this.options=Uo(Uo({},this.options),e),this.layer=yield this._getWebMapLayerItem();const n=null==(r=null==(t=this.response)?void 0:t.webmap)?void 0:r.extent_constrained;return this.options.useExtentConstrained&&this._extent&&n&&this.options.webMap.setView({maxBounds:this._extent}),this.layer}))}removeLayer(){const e=this.options.webMap.mapAdapter;if(this.getDependLayers().forEach((t=>{"layer"in t&&e.removeLayer(t.layer.layer)})),this._webmapBaselayersIds.length){for(const e of this._webmapBaselayersIds)this.options.webMap.removeLayer(e);this._lastActiveBaselayer&&this.options.webMap.showLayer(this._lastActiveBaselayer)}this.options.useExtentConstrained&&this._extent&&this.options.webMap.setView({maxBounds:null}),delete this.layer,delete this.response,delete this._webmapLayersIds}showLayer(){return Zo(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}))}hideLayer(){return Zo(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}))}setOpacity(e){return Zo(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("opacity").set(e)}))}getExtent(){return this.getBounds()}getBounds(){const e=this.response&&this.response.webmap;if(e)return ur(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.response&&this.response.webmap;if(e)return e.bookmark_resource.id}fetchBookmarks(e){const t=this.getBookmarksResourceId(),r=this.options.connector;if(t)return r.getResourceOrFail(t,e).then((n=>{var o;const i=null==(o=n.feature_layer)?void 0:o.fields.find((e=>e.label_field)),s=i&&i.keyname;return cn(Uo({connector:r,resourceId:t,geom:!1,fields:s?[s]:void 0},e)).then((e=>{const n=[];for(const o of e){const e=new gt({item:o,resourceId:t,labelField:s,connector:r});n.push(e)}return n}))}));throw new Error("Webmap was not loaded correctly, it is impossible to extract bookmarks")}getLegend(e){return Zo(this,null,(function*(){const t=[];let r=this.getDependLayers();r=r.sort(((e,t)=>t.id-e.id));for(const n of r){const r=yield n.getLegend(e);t.push(...r)}return t}))}getIdentificationIds(e){return Zo(this,null,(function*(){const t=[];let r=this._webmapLayersIds;if(r||(r=yield this._getWebMapIds(e),this._webmapLayersIds=r),r&&r.length){let e=this.getDependLayers();e=e.sort(((e,t)=>t.id-e.id)),e.forEach((e=>{const r=e.item,n=r.parentId;if(void 0!==n&&"layer"===r.item_type&&r.layer_identifiable){const r=e.properties.property("visibility");r.get()&&!r.isBlocked()&&t.push(n)}}))}return t}))}_getWebMapLayerItem(){return Zo(this,null,(function*(){if(!this.resourceId)return;const e=yield this.getWebMapConfig(this.resourceId);return e&&e.root_item?new Promise((t=>{const r=this.options.connector,n=(null==r?void 0:r.options.auth)?r.getAuthorizationHeaders():void 0,o=r.withCredentials,i=(s=Uo({},this.options),Ro(s,$o({withCredentials:o,headers:n,drawOrderEnabled:e.draw_order_enabled})));var s;const a=new this.NgwWebmapItem(this.options.webMap,e.root_item,i,r);a.emitter.on("init",(()=>{t(a)}))})):void 0}))}getWebMapConfig(e){return Zo(this,null,(function*(){const t=yield this.options.connector.getResource(e);if(t){this.response=t;const e=t[this.webmapClassName];if(this._setupBaselayers(t),e)return this._extent=[e.extent_left,e.extent_bottom,e.extent_right,e.extent_top],this._updateItemsParams(e.root_item,this.options.webMap,t),e}}))}_setupBaselayers(e){var t;const r=this.options.webMap;if(null==(t=this.options.useBasemap)||t)if(e.basemap_webmap&&e.basemap_webmap.basemaps.length){const t=r.getActiveBaseLayer();this._lastActiveBaselayer=t?t.id:void 0,this._setBasemaps(e.basemap_webmap)}else this.options.defaultBasemap&&r.addBaseLayer("OSM",{id:"webmap-default-baselayer",name:"OpenStreetMap"})}_setBasemaps(e){const t=this.options.webMap;let r=!1;for(const n of e.basemaps)Fo({webMap:t,connector:this.options.connector,item:n,adapterOptions:{crossOrigin:this.options.crossOrigin}}).then((e=>{const o=!r&&n.enabled;return n.enabled&&(r=!0),t.addBaseLayer(e,{id:"webmap-baselayer"+n.resource_id,name:n.display_name,opacity:n.opacity,visibility:o}).then((e=>{e.id&&this._webmapBaselayersIds.push(e.id)}))}))}_updateItemsParams(e,t,r){if(e)if("group"===e.item_type||"root"===e.item_type)e.children&&(e.children=e.children.map((e=>this._updateItemsParams(e,t,r)))),"root"===e.item_type&&(e.display_name=r.resource.display_name);else if("layer"===e.item_type){const r=x(this.options.connector.options.baseUrl+"/api/component/render/image"),n=e.layer_style_id;e.url=r,e.resourceId=n,e.updateWmsParams=e=>uo(e,n);const o=Mn({options:{adapter:e.layer_adapter.toUpperCase(),resource:n},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e=Uo(Uo({},e),o)}return e}_getWebMapIds(e){return Zo(this,null,(function*(){const t=this.layer;if(t&&"root"===t.item.item_type){const r=t.tree.getDescendants(),n=[];for(const t of r){const r=t.item;if("layer"===r.item_type){const t=this.options.connector.getResource(r.layer_style_id,e).then((e=>{if(e){const t=Number(e.resource.parent.id);return r.parentId=t,t}}));n.push(t)}}return(yield Promise.all(n)).filter((e=>void 0!==e))}}))}}var Jo=Object.defineProperty,Ho=Object.getOwnPropertySymbols,Qo=Object.prototype.hasOwnProperty,Ko=Object.prototype.propertyIsEnumerable,Xo=(e,t,r)=>t in e?Jo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Yo=(e,t)=>{for(var r in t||(t={}))Qo.call(t,r)&&Xo(e,r,t[r]);if(Ho)for(var r of Ho(t))Ko.call(t,r)&&Xo(e,r,t[r]);return e},ei=(e,t,r)=>Xo(e,"symbol"!=typeof t?t+"":t,r);class ti{constructor(e){if(this.options=e,ei(this,"url"),ei(this,"connector"),ei(this,"webMap"),this.options.connector)this.url=this.options.connector.options.baseUrl||"",this.connector=this.options.connector;else{if(!this.options.baseUrl)throw new Error("url is not defined");this.url=this.options.baseUrl,this.connector=new Ie({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){eo[e]=t}onLoadSync(e){return t=this,r=null,n=function*(){if(this.options.resourceId&&this.url){const t=[this.options.resourceId];if(t.length)for(const r of t){const t={resourceId:r,connector:this.connector,webMap:e};return yield e.addLayer(Wo,Yo({visibility:!0,fit:!0,pixelRadius:this.options.pixelRadius},t))}}},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}getLayerAdapters(){return Promise.resolve([this._getLayerAdapter()])}_getLayerAdapter(){return{name:"WEBMAP",createAdapter:e=>Promise.resolve(this._createAdapter(e))}}_createAdapter(e){return t={webMap:e,connector:this.connector,baseUrl:this.url},class extends Wo{constructor(e,r){super(e,r=co(co({},t),r))}};var t}}var ri=Object.defineProperty,ni=Object.getOwnPropertySymbols,oi=Object.prototype.hasOwnProperty,ii=Object.prototype.propertyIsEnumerable,si=(e,t,r)=>t in e?ri(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ai=(e,t)=>{for(var r in t||(t={}))oi.call(t,r)&&si(e,r,t[r]);if(ni)for(var r of ni(t))ii.call(t,r)&&si(e,r,t[r]);return e},li=(e,t,r)=>si(e,"symbol"!=typeof t?t+"":t,r);class ci{constructor(e){li(this,"id"),li(this,"label"),li(this,"layerId"),li(this,"parent"),li(this,"fields"),li(this,"geom"),li(this,"extensions"),li(this,"connector"),li(this,"_item"),li(this,"_geojson"),li(this,"_resource"),li(this,"_extent");const t=e.feature;this.id=t.id,this.geom=t.geom,this.label=t.label,this.parent=t.parent,this.fields=t.fields,this.layerId=t.layerId,this.connector=e.connector}identify(e={}){return this._item?Promise.resolve(this._item):ut(ai({connector:this.connector,featureId:this.id,resourceId:this.layerId,fields:null,extensions:["attachment","description"]},e)).then((e=>(this._item=e,this.geom=e.geom,this.extensions=e.extensions,e)))}resource(e){return this._resource?Promise.resolve(this._resource.feature_layer):this.connector.getResource(this.layerId,e).then((e=>(this._resource=e,this._resource.feature_layer)))}getBounds(e){return this._extent?Promise.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:n=!0,signal:o}){return r.get("feature_layer.feature.item_extent",{cache:n,signal:o},{id:e,fid:t}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}(ai({connector:this.connector,featureId:this.id,resourceId:this.layerId},e))}geojson(e){return this._geojson?Promise.resolve(this._geojson):this.identify(e).then((e=>e.toGeojson().then((e=>(this._geojson=e,e)))))}}var ui=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));function pi(e){return ui(this,null,(function*(){return We(yield ut(e))}))}var hi=Object.defineProperty,di=Object.defineProperties,fi=Object.getOwnPropertyDescriptors,yi=Object.getOwnPropertySymbols,mi=Object.prototype.hasOwnProperty,gi=Object.prototype.propertyIsEnumerable,bi=(e,t,r)=>t in e?hi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,vi=(e,t)=>{for(var r in t||(t={}))mi.call(t,r)&&bi(e,r,t[r]);if(yi)for(var r of yi(t))gi.call(t,r)&&bi(e,r,t[r]);return e},wi=(e,t)=>di(e,fi(t));function _i(e,t=!1){const r=[],n=[];for(const i in e){const e=Number(i);isNaN(e)||r.push(e)}const o=e.resources;o&&r.sort(((e,t)=>o.indexOf(e)-o.indexOf(t)));for(let i=0;i<r.length;i++){const o=r[i],s=e[o];if("features"in s){const e=Oi(s.features,Number(o),t);if(e.length&&(n.push(...e),!t))break}}return n}function Oi(e,t,r){const n=[];for(const o of e){if(n.push({featureId:o.id,resourceId:t,feature:o}),!r)break}return n}function Li(e){const{geom:t,signal:r,cache:n,layers:o}=e,i="string"==typeof t?t:function(e){const t=function(e){var t;if(Array.isArray(e))return e;if("Feature"===e.type)return null==(t=e.geometry)?void 0:t.coordinates[0];if("Polygon"===e.type)return e.coordinates[0];return null}(e);if(!t)return null;return`POLYGON((${t.map((([e,t])=>{const[r,n]=_(e,t);return`${r} ${n}`})).join(",")}))`}(t);if(!i)throw new Error("Not valid geometry format to make intersection");return e.connector.post("feature_layer.identify",{data:{geom:i,srs:3857,layers:o},signal:r,cache:n})}function Pi(e,t){return r=this,n=null,o=function*(){var r;const n=yield e.get("pyramid.settings",null,{component:"pyramid"});if(n&&n.company_logo&&n.company_logo.enabled){const i=document.createElement("a");i.style.position="absolute",i.style.bottom="0",i.style.right="0",i.style.padding=null!=(r=null==t?void 0:t.padding)?r:"10px",i.className="ngw-map-logo",t&&t.cssClass&&(i.className+=" "+t.cssClass);const s=new Image;s.style.maxHeight="100px",s.style.maxWidth="100px",s.src="";try{const t=yield e.get("pyramid.company_logo",{responseType:"blob"}),r=(window.URL||window.webkitURL).createObjectURL(t);s.src=r}catch(o){console.warn(o)}return null!==n.company_logo.link&&""!==n.company_logo.link.trim()&&(i.href=n.company_logo.link,i.target="_blank",-1!==n.company_logo.link.search(/:\/\/nextgis/)&&(s.alt="Get your own Web GIS at nextgis.com")),i.appendChild(s),i}},new Promise(((e,t)=>{var i=e=>{try{a(o.next(e))}catch(r){t(r)}},s=e=>{try{a(o.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((o=o.apply(r,n)).next())}));var r,n,o}function Ii(e){return"function"==typeof e}function xi(e){return(t,r)=>{const n=t.map((e=>e()));return e(n,r)}}const Ei={"!":xi((function([e]){return!e})),"!=":xi((function([e,t]){return e!==t})),"<":xi((function([e,t]){return e<t})),"<=":xi((function([e,t]){return e<=t})),"==":xi((function([e,t]){return e===t})),">":xi((function([e,t]){return e>t})),">=":xi((function([e,t]){return e>=t})),coalesce:e=>{for(let t=0;t<e.length;t++){const r=e[t]();if(null!=r)return r}return null},all:e=>{for(let t=0;t<e.length;t++){if(!e[t]())return!1}return!0},any:e=>{for(let t=0;t<e.length;t++){if(e[t]())return!0}return!1},case:e=>{if(e.length<2)throw new Error('The "case" function requires at least a condition and a corresponding output.');if(e.length%2==0)throw new Error("Missing a fallback value or unmatched condition-output pair.");for(let t=0;t<e.length-1;t+=2){const r=e[t](),n=e[t+1]();if(r)return n}return(0,e[e.length-1])()},match:e=>{const[t,...r]=e,n=t(),o=r.splice(-1,r.length%2)[0];for(let i=0;i<r.length-1;i+=2){if(r[i]()===n)return r[i+1]()}return o()}},Ai={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function ji(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return Ci(e);if("string"==typeof(t=e)&&t in Ai)return function(e){return Ci(Ai[e])}(e);if(function(e){return"string"==typeof e&&/^rgb(a?)\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)(?:\s*,\s*([01](?:\.\d+)?))?\s*\)$/.test(e)}(e))return function(e){const t=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)$/;let r;if(r=e.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))return[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10)];if(r=e.match(t))return[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3],10),parseFloat(r[4])];throw new Error(`The '${e}' Is not valid rgb`)}(e);if(function(e){if("object"==typeof e&&null!==e)return"r"in e&&"g"in e&&"b"in e&&(!("a"in e)||"number"==typeof e.a&&e.a>=0&&e.a<=1);return!1}(e))return function({r:e,g:t,b:r,a:n}){return[e,t,r,...void 0!==n?[n]:[]]}(e);var t,r;throw new Error(`The '${e}' cannot be converted to color`)}function Ci(e){let t;if(t=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/.exec(e))return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];if(t=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])$/.exec(e))return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),parseInt(t[4]+t[4],16)/255];if(t=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/.exec(e))return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)];if(t=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/.exec(e))return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),parseInt(t[4],16)/255];throw new Error(`The '${e}' Is not valid hex`)}function Mi(e,t,r,n,o){if("number"==typeof r&&"number"==typeof o)return r+(e-t)/(n-t)*(o-r);try{const i=ji(r),s=ji(o);return function(e){return`rgb(${e.join(",")})`}(i.map(((r,o)=>Math.ceil(Mi(e,t,r,n,s[o])))))}catch(i){console.log(i)}throw new Error("Unsupported output type for linear interpolation.")}const ki={step:e=>{const[t,r,...n]=e,o=t();if("number"!=typeof o)return r();for(let i=0;i<n.length-2;i+=2){const e=n[i](),t=n[i+1](),r=n[i+2]();if(o>=e&&o<r)return t}return o>=n[n.length-2]()?n[n.length-1]():r()},interpolate:([e,t,...r])=>{if(r.length<2)throw new Error("At least two stops are required");if(r.length<2||r.length%2!=0)throw new Error("Invalid stops provided.");const n=t();if("number"!=typeof n)throw new Error("Input must be a number.");const o=e();for(let i=0;i<r.length-2;i+=2){const e=r[i](),t=r[i+1](),s=r[i+2](),a=r[i+3]();if(n>=e&&n<=s&&"linear"===o[0])return Mi(n,e,t,s,a)}throw new Error("Invalid interpolation type.")}};const Si={get:xi((function([e,t],r){const n=t||r;return n&&"object"==typeof n&&e in n?n[e]:null})),length:xi((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:xi((function([e,t]){return t[e]})),has:xi((function([e,t],r){const n=t||r;return!(!n||"object"!=typeof n||!(e in n))})),in:xi((function([e,t]){if("string"==typeof t)return t.includes(String(e));if(Array.isArray(t))return t.includes(e);throw new Error(`Invalid input type for 'in'. Expected string or array, got ${typeof t}.`)})),"index-of":xi((function([e,t,r]){if("string"==typeof t)return t.indexOf(String(e),r);if(Array.isArray(t))return t.indexOf(e,r);throw new Error(`Invalid input type for 'index-of'. Expected string or array, got ${typeof t}.`)})),slice:xi((function(e){const[t,r,n]=e;if("string"==typeof t)return t.slice(r,n);if(Array.isArray(t))return t.slice(r,n);throw new Error(`Invalid input type for 'slice'. Expected string or array, got ${typeof t}.`)}))},Ni={"+":xi((e=>e.reduce(((e,t)=>e+t),0))),"-":xi((e=>e.reduce(((e,t)=>e-t)))),"*":xi((e=>e.reduce(((e,t)=>e*t),1))),"/":xi((e=>e.reduce(((e,t)=>e/t)))),"%":xi((e=>e[0]%e[1])),"^":xi((e=>Math.pow(e[0],e[1]))),abs:xi((e=>Math.abs(e[0]))),acos:xi((e=>Math.acos(e[0]))),asin:xi((e=>Math.asin(e[0]))),atan:xi((e=>Math.atan(e[0]))),ceil:xi((e=>Math.ceil(e[0]))),cos:xi((e=>Math.cos(e[0]))),e:()=>Math.E,floor:xi((e=>Math.floor(e[0]))),ln:xi((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:xi((e=>Math.log10(e[0]))),log2:xi((e=>Math.log2(e[0]))),max:xi((e=>Math.max(...e))),min:xi((e=>Math.min(...e))),pi:()=>Math.PI,round:xi((e=>Math.round(e[0]))),sin:xi((e=>Math.sin(e[0]))),sqrt:xi((e=>Math.sqrt(e[0]))),tan:xi((e=>Math.tan(e[0])))},Ti={concat:xi((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:xi((e=>String(e[0]).toLowerCase())),upcase:xi((e=>String(e[0]).toUpperCase()))},Fi=(e,t,r)=>{try{const n=e(t,r);if(void 0!==n)return n}catch(n){}};function Bi(e){return(t,r)=>{for(const n of t){const t=Fi(e,n,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}const Ri={array:xi((e=>{const[t,r,n]=e;let o,i,s;if("string"==typeof t&&["string","number","boolean"].includes(t)?(o=t,"number"==typeof r?(i=r,s=n):s=r):Array.isArray(t)&&(s=t),!Array.isArray(s))throw new Error("Expected an array");if(o&&!s.every((e=>typeof e===o)))throw new Error(`Expected all items in array to be of type ${o}`);if(i&&s.length!==i)throw new Error(`Expected array of length ${i}`);return s})),boolean:xi(Bi((e=>"boolean"==typeof e?e:void 0))),literal:xi((([e])=>e)),number:xi(Bi((e=>"number"==typeof e?e:void 0))),object:xi(Bi((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:xi(Bi((e=>"string"==typeof e?e:void 0))),"to-boolean":xi(Bi(Boolean)),"to-number":xi(Bi(Number)),"to-string":xi(Bi(String)),typeof:xi((([e])=>function(e){if(null===e)return"null";switch(typeof e){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"object":if(Array.isArray(e)){let t="value";return e.every((e=>"number"==typeof e))?t="number":e.every((e=>"string"==typeof e))?t="string":e.every((e=>"boolean"==typeof e))&&(t="boolean"),`array<${t}, ${e.length}>`}return"object";default:return"undefined"}}(e)))};var $i=Object.defineProperty,Di=Object.getOwnPropertySymbols,qi=Object.prototype.hasOwnProperty,Gi=Object.prototype.propertyIsEnumerable,Vi=(e,t,r)=>t in e?$i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ui=(e,t)=>{for(var r in t||(t={}))qi.call(t,r)&&Vi(e,r,t[r]);if(Di)for(var r of Di(t))Gi.call(t,r)&&Vi(e,r,t[r]);return e};function zi(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in Zi&&r.length>0}return!1}const Zi=Ui(Ui(Ui(Ui(Ui(Ui({},Ni),Ri),Ti),Si),Ei),ki);function Wi(e,t={}){const[r,...n]=e,o=Zi[r];if(o)return o(n.map((e=>()=>zi(e)?Wi(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}var Ji=Object.defineProperty,Hi=Object.getOwnPropertySymbols,Qi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable,Xi=(e,t,r)=>t in e?Ji(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Yi=(e,t)=>{for(var r in t||(t={}))Qi.call(t,r)&&Xi(e,r,t[r]);if(Hi)for(var r of Hi(t))Ki.call(t,r)&&Xi(e,r,t[r]);return e};function es(e){return t=>{const r=t.properties;return!!r&&Wi(e,r)}}const ts=["iconSize","iconAnchor"];var rs=Object.defineProperty,ns=Object.getOwnPropertySymbols,os=Object.prototype.hasOwnProperty,is=Object.prototype.propertyIsEnumerable,ss=(e,t,r)=>t in e?rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,as=(e,t)=>{for(var r in t||(t={}))os.call(t,r)&&ss(e,r,t[r]);if(ns)for(var r of ns(t))is.call(t,r)&&ss(e,r,t[r]);return e};function ls(e){let t={};const r=[];for(const n of e)n&&(Array.isArray(n)?r.push(n):t=n);return e=>{const n=r.find((t=>function(e,t){const r=Me({},e.properties);return!!r&&(r.$id=e.id,Te(r,t))}(e,t[0])));return n?as(as({},t),n[1]):t}}function cs({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const n in e)if(-1===ts.indexOf(n)){const o=n,i=e[o];zi(i)&&(t=!0,r[o]=es(i))}if(t)return t=>{const n={};for(const e in r)n[e]=r[e](t);return Yi(Yi({},e),n)}}(e);if(r){const n=e=>ps({paint:r(e),defaultPaint:t});return n.paint=us({paint:e,defaultPaint:t}),n}return us({paint:e,defaultPaint:t})}function us({paint:e,defaultPaint:t}){var r;let n=as({},t);return n=as(as({},n),e),n.fill=null==(r=n.fill)||r,n.stroke=void 0!==n.stroke?n.stroke:!n.fill||!(!n.strokeColor&&!n.strokeOpacity),n}function ps({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let n=as({},t);if(Ii(e)){const n=n=>{const o=ps({paint:e(n),defaultPaint:t,getPaintFunctions:r});return o.type=e.type,o};return n.type=e.type,n}if(function(e){return!!Array.isArray(e)}(e))return n=>ps({paint:ls(e)(n),defaultPaint:t,getPaintFunctions:r});if("get-paint"===e.type){const o=function(e,t){if("function"==typeof e.from)return e.from(e.options);if("string"==typeof e.from&&t){const r=t[e.from];if(r)return r(e.options)}}(e,r);o&&(n=ps({paint:o,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;n=cs({paint:e,defaultPaint:t})}return Ii(n)||("color"in n&&(n.strokeColor||(n.strokeColor=n.color),n.fillColor||(n.fillColor=n.color)),"opacity"in n&&(void 0===n.strokeOpacity&&(n.strokeOpacity=n.opacity),void 0===n.fillOpacity&&(n.fillOpacity=n.opacity))),n}var hs=Object.defineProperty,ds=(e,t,r)=>((e,t,r)=>t in e?hs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class fs{constructor(){ds(this,"backspace",8),ds(this,"tab",9),ds(this,"enter",13),ds(this,"shift",16),ds(this,"ctrl",17),ds(this,"alt",18),ds(this,"pause/break",19),ds(this,"caps_lock",20),ds(this,"escape",27),ds(this,"page_up",33),ds(this,"page_down",34),ds(this,"end",35),ds(this,"home",36),ds(this,"left_arrow",37),ds(this,"up_arrow",38),ds(this,"right_arrow",39),ds(this,"down_arrow",40),ds(this,"insert",45),ds(this,"delete",46),ds(this,"left_window_key",91),ds(this,"right_window_key",92),ds(this,"select_key",93),ds(this,"numpad_0",96),ds(this,"numpad_1",97),ds(this,"numpad_2",98),ds(this,"numpad_3",99),ds(this,"numpad_4",100),ds(this,"numpad_5",101),ds(this,"numpad_6",102),ds(this,"numpad_7",103),ds(this,"numpad_8",104),ds(this,"numpad_9",105),ds(this,"multiply",106),ds(this,"add",107),ds(this,"subtract",109),ds(this,"decimal_point",110),ds(this,"divide",111),ds(this,"f1",112),ds(this,"f2",113),ds(this,"f3",114),ds(this,"f4",115),ds(this,"f5",116),ds(this,"f6",117),ds(this,"f7",118),ds(this,"f8",119),ds(this,"f9",120),ds(this,"f10",121),ds(this,"f11",122),ds(this,"f12",123),ds(this,"num_lock",144),ds(this,"scroll_lock",145),ds(this,"semi-colon",186),ds(this,"equal_sign",187),ds(this,",",188),ds(this,"-",189),ds(this,".",190),ds(this,"/",191),ds(this,"`",192),ds(this,"[",219),ds(this,"\\",220),ds(this,"]",221),ds(this,"'",222)}}var ys=Object.defineProperty,ms=(e,t,r)=>((e,t,r)=>t in e?ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);var gs=Object.defineProperty,bs=(e,t,r)=>((e,t,r)=>t in e?gs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class vs{constructor(e,t){this.webMap=e,bs(this,"name"),bs(this,"event"),bs(this,"value"),t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event=t.event))}getValue(){return this.value}setValue(e){this.value=e}}var ws=Object.defineProperty,_s=(e,t,r)=>((e,t,r)=>t in e?ws(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Os extends vs{constructor(){super(...arguments),_s(this,"name","center"),_s(this,"event","moveend")}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}parse(e){return e.split("_").map(Number)}}var Ls=Object.defineProperty,Ps=(e,t,r)=>((e,t,r)=>t in e?Ls(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Is extends vs{constructor(){super(...arguments),Ps(this,"name","zoom"),Ps(this,"event","zoomend")}getValue(){const e=this.webMap.getZoom();return void 0!==e?Math.round(e):void 0}setValue(e){this.webMap.setZoom(e)}toString(e){return String(e)}parse(e){return Number(e)}}var xs=Object.defineProperty,Es=(e,t,r)=>((e,t,r)=>t in e?xs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),As=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));let js=0;const Cs={minZoom:0,maxZoom:22,paint:{color:"#0000ff",opacity:.4,strokeOpacity:1,stroke:!0,radius:8,weight:1},selectedPaint:{color:"#00008b",opacity:.4,strokeOpacity:1,stroke:!0,radius:12,weight:1},create:!0},Ms=class e{constructor(t){Es(this,"options",Cs),Es(this,"emitter",new r),Es(this,"keys",e.keys),Es(this,"mapAdapter"),Es(this,"runtimeParams",[]),Es(this,"getPaintFunctions",e.getPaintFunctions),Es(this,"mapState",[Os,Is]),Es(this,"id",js++),Es(this,"_initMapState",{}),Es(this,"_starterKits"),Es(this,"_mapState",[]),Es(this,"_extent"),Es(this,"_eventsStatus",{}),Es(this,"_coordFromMapClickAbort"),Es(this,"_mapEvents",{}),this.mapAdapter=t.mapAdapter,this._starterKits=t.starterKits||[],t&&(this.options=d(Cs||{},t)),this.options.runtimeParams&&(this.runtimeParams=this.options.runtimeParams),this._addEventsListeners(),this.options.tileJson&&this._setTileJsonOptions(this.options.tileJson),this.options.create&&this.create()}getId(){return this.id}create(){return As(this,null,(function*(){return this.getEventStatus("create")||(yield this._setInitMapState(this.mapState),yield this._setupMap(),this._emitStatusEvent("create",this)),this}))}setRuntimeParams(e){this.runtimeParams.push(e)}destroy(){this._removeEventListeners(),function(e){for(const t in e)delete e[t]}(this._emitStatusEvent),this.mapAdapter.destroy&&this.mapAdapter.destroy()}getState(){const e={};return this._mapState.forEach((t=>{e[t.name]=t.getValue()})),e}getRuntimeParams(){const e={};return this._mapState.forEach((t=>{for(const r of this.runtimeParams){const n=r.get(t.name);if(void 0!==n){e[t.name]=t.parse(n);break}}})),e}getContainer(){if(this.mapAdapter.getContainer)return this.mapAdapter.getContainer();if(this.options.target){if(this.options.target instanceof HTMLElement)return this.options.target;if("string"==typeof this.options.target){const e=document.getElementById(this.options.target);if(e)return e}}}setCursor(e){this.mapAdapter.setCursor&&this.mapAdapter.setCursor(e)}getCursor(){if(this.mapAdapter.getCursor)return this.mapAdapter.getCursor();const e=this.getContainer();return e?e.style.cursor:void 0}setCenter(e){return this.mapAdapter.setCenter(e),this}getCenter(){return this.mapAdapter.getCenter()}getBounds(){if(this.mapAdapter.getBounds)return this.mapAdapter.getBounds()}getBoundsPolygon(){const e=this.getBounds();if(e){return{type:"Feature",properties:{},geometry:m(e)}}}setZoom(e){return this.mapAdapter.setZoom(e),this}getZoom(){const e=this.mapAdapter.getZoom();if("number"==typeof e)return e}zoomIn(){if(this.mapAdapter.zoomIn)this.mapAdapter.zoomIn();else{const e=this.getZoom();if(void 0!==e){this.setZoom(e+1)}}}zoomOut(){if(this.mapAdapter.zoomOut)this.mapAdapter.zoomOut();else{const e=this.getZoom();if(void 0!==e){this.setZoom(e-1)}}}setView(e,t){if(Array.isArray(e)){const r=e;this.mapAdapter.setView&&r&&p(t)?this.mapAdapter.setView(r,t):(r&&this.mapAdapter.setCenter(r),p(t)&&this.mapAdapter.setZoom(t))}else{this.mapAdapter.setView&&this.mapAdapter.setView(e)}}fitBounds(e,t){return function(e){const[t,r,n,o]=e,i=t<n&&r<o;if(!i){console.log("Error: The extent coordinates are not in the correct order."),console.log(`Received extent: [${t}, ${r}, ${n}, ${o}]`);const e=[Math.min(t,n),Math.min(r,o),Math.max(t,n),Math.max(o,r)];console.log(`Expected order: [${e.join(", ")}]`)}const s=t>=-180&&n<=180,a=r>=-90&&o<=90;s&&a||console.log("Warning: The coordinates may not be within valid geographic ranges.")}(e),e.every((e=>p(e)))&&(e[1]<-85.06&&(e[1]=-85.06),e[3]>85.06&&(e[3]=85.06),this.mapAdapter.fitBounds(e,t)),this}getEventStatus(e){const t=this._eventsStatus[e];return null!=t&&t}onLoad(e="create"){return new Promise((t=>{this.getEventStatus(e)?t(this):this.emitter.once(e,(()=>{t(this)}))}))}onMapLoad(e){return new Promise((t=>{var r;const n=()=>{const r=this.mapAdapter;e&&e(r),r&&t(r)},o=null==(r=this.mapAdapter.isLoaded)||r;this.mapAdapter.map&&o?n():this.mapAdapter.emitter.once("create",(()=>{n()}))}))}getLayerAdapters(){return this.mapAdapter.layerAdapters}getLayerAdapter(e){return this.mapAdapter.layerAdapters[e]}locate(e,t){if(this.mapAdapter&&this.mapAdapter.locate)return this.mapAdapter.locate(e,t);return{stop:()=>({})}}stopGetCoordFromMapClick(){this._coordFromMapClickAbort&&(this._coordFromMapClickAbort(),this._coordFromMapClickAbort=void 0)}getCoordFromMapClick(){return this._coordFromMapClickAbort?this.getCoordFromMapClick():new Promise(((e,t)=>{const r=this.getCursor()||"grab";this._removeEventListeners({include:["click"]}),this.setCursor("crosshair");const n=()=>{this.setCursor(r),this._addEventsListeners({include:["click"]}),this.mapAdapter.emitter.off("click",o),this._coordFromMapClickAbort=void 0},o=t=>{n(),f(t),e(t.lngLat)};this.mapAdapter.emitter.once("click",o),this._coordFromMapClickAbort=n}))}_emitStatusEvent(e,t){const r=e;this._eventsStatus[r]=!0,this.emitter.emit(r,t)}_addLayerProviders(){return As(this,null,(function*(){}))}_onLoadSync(){return As(this,null,(function*(){}))}_setupMap(){return As(this,null,(function*(){if(!this.mapAdapter)throw new Error("WebMap `mapAdapter` option is not set");return yield this.mapAdapter.create(this.options),this._zoomToInitialExtent(),yield this._addLayerProviders(),yield this._onLoadSync(),this._emitStatusEvent("build-map",this.mapAdapter),this}))}_setTileJsonOptions(e){e.center&&(this.options.center=e.center),e.bounds&&(this.options.bounds=e.bounds),p(e.maxzoom)&&(this.options.zoom=e.maxzoom),p(e.minzoom)&&(this.options.zoom=e.minzoom),p(e.maxzoom)&&p(e.minzoom)&&(this.options.zoom=(e.maxzoom+e.minzoom)/2)}_zoomToInitialExtent(){const{center:e,zoom:t,bounds:r}=this.options;this._extent?this.fitBounds(this._extent):e&&t?this.setView(e,t):r&&(this.fitBounds(r),void 0!==t&&this.setZoom(t))}_setInitMapState(e){for(const t of e){const e=new t(this);this._mapState.push(e);for(const t of this.runtimeParams){const r=t.get(e.name);if(void 0!==r){const t=e.parse(r);this._initMapState[e.name]=t,Object.defineProperty(this.options,e.name,{value:t,configurable:!0,enumerable:!0});break}}}}_addEventsListeners(e){let t=["preclick","click","zoomstart","zoom","zoomend","movestart","move","moveend","mousemove","mouseout","mouseover"];e&&e.include&&(t=t.filter((t=>e.include.includes(t)))),t.forEach((e=>{this._mapEvents[e]=t=>{if(this.runtimeParams.length){const t=this._mapState.find((t=>t.event===e));if(t){const e=t.toString(t.getValue());this.runtimeParams.forEach((r=>{r.set(t.name,e)}))}}this._eventsStatus&&this.emitter.emit(e,t)};const t=this._mapEvents[e];t&&this.mapAdapter.emitter.on(e,t)}))}_removeEventListeners(e){let t=Object.entries(this._mapEvents);e&&e.include&&(t=t.filter((t=>e.include.includes(t[0])))),t.forEach((([e,t])=>{t&&this.mapAdapter.emitter.removeListener(e,t)}))}};Es(Ms,"keys",new class{constructor(){ms(this,"keyCodeAlias",new fs),ms(this,"keys",{}),ms(this,"_windowOnFocus"),ms(this,"_keysPressed"),ms(this,"_keysReleased"),this._windowOnFocus=this.windowOnFocus.bind(this),this._keysPressed=this.keysPressed.bind(this),this._keysReleased=this.keysReleased.bind(this),this.addKeyboardEventsListener()}pressed(e){const t=this.keyCodeAlias[e];return!!t&&this.keys[t]}addKeyboardEventsListener(){"undefined"!=typeof window&&(window.addEventListener("focus",this._windowOnFocus,!1),window.addEventListener("keydown",this._keysPressed,!1),window.addEventListener("keyup",this._keysReleased,!1))}removeKeyboardEventsListener(){"undefined"!=typeof window&&(window.removeEventListener("focus",this._windowOnFocus,!1),window.removeEventListener("keydown",this._keysPressed,!1),window.removeEventListener("keyup",this._keysReleased,!1))}keysPressed(e){e.stopPropagation(),this.keys[e.keyCode]||(this.keys[e.keyCode]=!0)}keysReleased(e){e.stopPropagation(),this.keys[e.keyCode]=!1}windowOnFocus(){this.keys={}}}),Es(Ms,"getPaintFunctions");let ks=Ms;function Ss(e){const t={};for(let n=0;n<e.length;n++)t[e[n]]=1+(t[e[n]]||0);let r;for(const n in t){t[n]>((void 0!==r?t[r]:0)||0)&&(r=n)}return r}function Ns(e){let t;if("FeatureCollection"===e.type){t=Ss(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=Ss(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}const Ts={polygon:"path",line:"path",point:"circle"},Fs={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function Bs(e){if(e.data){const t=Fs[Ns(e.data)],r=e.paint;r&&"[object Object]"===Object.prototype.toString.call(r)&&(r.type=r.type?r.type:"polygon"===t||"line"===t?"path":"html"in r||"className"in r?"icon":Ts[t]),e.type=e.type||t}return e}var Rs=Object.defineProperty,$s=Object.defineProperties,Ds=Object.getOwnPropertyDescriptors,qs=Object.getOwnPropertySymbols,Gs=Object.prototype.hasOwnProperty,Vs=Object.prototype.propertyIsEnumerable,Us=(e,t,r)=>t in e?Rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,zs=(e,t)=>{for(var r in t||(t={}))Gs.call(t,r)&&Us(e,r,t[r]);if(qs)for(var r of qs(t))Vs.call(t,r)&&Us(e,r,t[r]);return e},Zs=(e,t)=>$s(e,Ds(t)),Ws=(e,t,r)=>Us(e,"symbol"!=typeof t?t+"":t,r),Js=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Hs extends ks{constructor(e){super(e),Ws(this,"_layersIdCounter",1),Ws(this,"_layersOrderCounter",1),Ws(this,"_baselayers",[]),Ws(this,"_layers",{}),Ws(this,"_selectedLayers",[]);const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}fitLayer(e,t){return Js(this,null,(function*(){const r=this.getLayer(e),n=r&&(r.getBounds||r.getExtent);if(n){const e=yield n.call(r);e&&this.fitBounds(e,t)}}))}isBaseLayer(e){const t=this.getLayer(e);if(t&&t.id)return-1!==this._baselayers.indexOf(t.id)}getBaseLayers(){const e=[];return this._baselayers.forEach((t=>{const r=this._layers[t];r&&e.push(r)})),e}getBaseLayersIds(){return this._baselayers}getLayer(e){return"string"==typeof e?this._layers[e]:e}getLayerId(e){const t=this.getLayer(e);if(t){if(t.id)return null==t?void 0:t.id;if(t&&t.options)return t.options.id}throw new Error("No id for layer")}getLayers(){return Object.keys(this._layers)}allLayers(){return this._layers}orderedLayers(){return Object.values(this._layers).sort(((e,t)=>e.order&&t.order?e.order-t.order:0))}findLayer(e){for(const t in this._layers){const r=this._layers[t];if(e(r))return r}}isLayerVisible(e){const t=this.getLayer(e);return!(!t||void 0===t.options.visibility)&&t.options.visibility}addBaseLayer(e,t){return Js(this,null,(function*(){return yield this.addLayer(e,Zs(zs({},t),{baselayer:!0}),void 0)}))}addLayer(e){return Js(this,arguments,(function*(e,t={},r){var n,o;const i=this._layersIdCounter++,s=p(r)?r:void 0!==t.order?t.order:this.reserveOrder();let a;"string"==typeof e?a=this.getLayerAdapter(e):"function"==typeof e?a=e:"then"in e&&(a=yield e);const l=t;this._updateGeoJsonOptions(l);const c=null==(n=(t=zs({id:String(i),order:s},t)).visibility)||n;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:a});e&&(e.options&&(t=e.options),e.adapter&&(a=e.adapter))}if(void 0!==a){const e=new a(this.mapAdapter.map,t);let r;e.options=zs(zs({},t),e.options),e.options.baselayer&&(t.baselayer=!0,t.order=0,e.options.order=0),e.options.id&&(r=String(e.options.id),this._layers[r]=e),this._emitLayerEvent("layer:preadd",r||"",e),yield this.onMapLoad(),e.map=this.mapAdapter.map;const n=yield e.addLayer(e.options);if(e.layer=n,e.id=e.options.id||String(i),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!=(o=e.options.order)?o:s,r&&delete this._layers[r],r=String(e.id),this._layers[r])throw Error(`layer with id '${r}' already exist`);r&&(this._layers[r]=e,l.filter&&this.filterLayer(e,l.filter),t.baselayer&&this._baselayers.push(r),c&&(yield this.showLayer(r)));const u=t.opacity;void 0!==u&&u<=1&&this.setLayerOpacity(e,u);const p=n&&(e.getBounds||e.getExtent);if(t.fit&&p){const t=yield p.call(e);t&&(yield this.fitBounds(t))}return t.onAdded&&t.onAdded(e),this._emitLayerEvent("layer:add",r,e),e}return Promise.reject("No adapter")}))}addLayerFromAsyncAdapter(e,t,r){return Js(this,null,(function*(){const n=r||void 0!==t.order?t.order:this.reserveOrder(),o=e(),i=yield o;return i?this.addLayer(i,t,n):Promise.reject("No adapter")}))}removeLayers(e){for(const t in this._layers){let r=!0;e&&(r=e(t,this._layers[t])),r&&(this.removeLayer(t),delete this._layers[t])}}getLegend(e){return Js(this,null,(function*(){const t=[];for(const r of this.orderedLayers())r.getLegend&&t.push(r.getLegend(e));return(yield Promise.all(t)).flat()}))}reserveOrder(){return this._layersOrderCounter++}removeOverlays(){this.removeLayers(((e,t)=>!(t&&t.options&&t.options.baselayer)))}removeLayer(e){const t=this.getLayer(e),r=t&&this.getLayerId(t);if(t&&r){if(this.emitter.emit("layer:preremove",t),t.beforeRemove&&t.beforeRemove(),t.removeLayer?t.removeLayer():this.mapAdapter.removeLayer(t.layer),t.options&&t.options.baselayer){const e=this._baselayers.indexOf(r);e&&this._baselayers.splice(e,1)}delete this._layers[r],this.emitter.emit("layer:remove",t)}}addGeoJsonLayer(e={},t){return(e=e||{}).multiselect=void 0!==e.multiselect&&e.multiselect,e.unselectOnSecondClick=void 0===e.unselectOnSecondClick||e.unselectOnSecondClick,t||(e=Bs(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",Zs(zs({},t),{url:e}))}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",Zs(zs({},t),{url:r}))}showLayer(e,t={}){return this.toggleLayer(e,!0,t)}hideLayer(e,t={}){return this.toggleLayer(e,!1,t)}toggleLayer(e,t,r={}){const n=this.getLayer(e),o=void 0!==t?t:!(n&&n.options.visibility),i=void 0!==r.silent&&r.silent,s=e=>Js(this,null,(function*(){const t=String(e.id),r=o?"layer:show":"layer:hide";if(i||(this._emitLayerEvent(o?"layer:preshow":"layer:prehide",t,e),this._emitLayerEvent("layer:pretoggle",t,e)),o&&this.mapAdapter){const t=e.options.baselayer?0:e.options.order;if(e.options.baselayer&&this._baselayers.length){const t=this._baselayers.filter((t=>t!==e.id&&this.isLayerVisible(t)));for(const e of t)yield this.hideLayer(e)}e.showLayer?yield e.showLayer.call(e,e.layer):void 0!==e.layer&&(yield this.mapAdapter.showLayer(e.layer)),void 0!==t&&this.mapAdapter.setLayerOrder(e.layer,t,this._layers)}else e.hideLayer?yield e.hideLayer.call(e,e.layer):void 0!==e.layer&&(yield this.mapAdapter.hideLayer(e.layer));e.options.visibility=o,i||(this._emitLayerEvent(r,t,e),this._emitLayerEvent("layer:toggle",t,e))}));return n?this.onMapLoad().then((()=>s(n))):Promise.resolve()}updateLayer(e){const t=this.getLayer(e);if(t){if(t.updateLayer)return Promise.resolve(t.updateLayer());if(this.isLayerVisible(t))return this.hideLayer(t,{silent:!0}).then((()=>this.showLayer(t,{silent:!0})))}return Promise.resolve()}setLayerOpacity(e,t){const r=this.getLayer(e);r&&(r.setOpacity?r.setOpacity(t):this.mapAdapter.setLayerOpacity&&this.mapAdapter.setLayerOpacity(r.layer,t))}isLayerLabelVisible(e){var t;const r=this.getLayer(e);return r.isLabelVisible?r.isLabelVisible():null==(t=r.options.labelVisibility)||t}showLayerLabel(e){this.toggleLayerLabel(e,!0)}hideLayerLabel(e){this.toggleLayerLabel(e,!1)}toggleLayerLabel(e,t){const r=this.getLayer(e);return t=null!=t?t:!this.isLayerLabelVisible(e),r&&(t?r.showLabel&&(r.options.labelVisibility=!0,r.showLabel()):r.hideLabel&&(r.options.labelVisibility=!1,r.hideLabel()),r.id&&this._emitLayerEvent("layer:label:toggle",r.id,r)),t}selectLayer(e,t){const r=this.getLayer(e);if(r){r&&r.select&&r.select(t);const e=this.getLayerId(r);e&&this._selectedLayers.push(e)}}unSelectLayer(e,t){const r=this.getLayer(e);if(r){const e=r&&r;e.unselect&&e.unselect(t);const n=this.getLayerId(r);if(n){const e=this._selectedLayers.indexOf(n);-1!==e&&this._selectedLayers.splice(e,1)}}}unSelectLayers(){const e=Object.values(this.allLayers());let t;for(t of e)t.unselect&&t.unselect()}filterLayer(e,t){const r=this.getLayer(e);return r.filter?r.filter(t):[]}propertiesFilter(e,t,r){const n=this.getLayer(e);if(n){const e=n;if(e.propertiesFilter)return e.propertiesFilter(t,r);e.filter&&this.filterLayer(e,(e=>!e.feature||!e.feature.properties||Te(e.feature.properties,t)))}return Promise.resolve()}removeLayerFilter(e){const t=this.getLayer(e);t.removeFilter?t.removeFilter():t.filter&&t.filter((()=>!0))}setLayerData(e,t){const r=this.getLayer(e);if(r){if(r.setData)return r.setData(t);if(r.clearLayer&&r.addData)return r.clearLayer(),r.addData(t)}return Promise.resolve()}addLayerData(e,t){const r=this.getLayer(e);r.addData&&r.addData(t)}clearLayerData(e,t){const r=this.getLayer(e);r&&r.clearLayer&&r.clearLayer(t)}setLayerPaint(e,t){const r=this.getLayer(e);t&&r&&r.setPaint&&r.setPaint(t)}setLayerSelectedPaint(e,t){const r=this.getLayer(e);t&&r&&r.setSelectedPaint&&r.setSelectedPaint(t)}updateLayerPaint(e,t){const r=this.getLayer(e);t&&r&&r.updatePaint&&r.updatePaint(t)}updateLayerSelectedPaint(e,t){const r=this.getLayer(e);t&&r&&r.updateSelectedPaint&&r.updateSelectedPaint(t)}getAttributions(e){const t=[];for(const r in this._layers){const n=this._layers[r];let o=!(void 0===e.onlyVisible||e.onlyVisible)||n.options.visibility;if(o&&e.onlyBaselayer&&(o=this._baselayers.includes(r)),o){const e=n.options&&n.options.attribution;e&&t.push(e)}}return t}getActiveBaseLayer(){const e=this.getBaseLayers().find((e=>this.isLayerVisible(e)));if(e)return this.getLayer(e)}addTileJsonLayer(e){return this.addLayer("TILE",{url:e.tiles[0],maxZoom:e.maxzoom,minZoom:e.minzoom,subdomains:e.scheme,attribution:e.attribution})}_emitLayerEvent(e,t,r){const n=String(e);if(p(t)&&n.startsWith("layer:")){const e=n.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}_onLayerClick(e){return Js(this,null,(function*(){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerDoubleClick(e){return Js(this,null,(function*(){return this._emitLayerEvent("layer:dblclick",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerSelect(e){return Js(this,null,(function*(){return this._emitLayerEvent("layer:select",e.layer.id||"",e),Promise.resolve(e)}))}_updateGeoJsonOptions(e){const{onSelect:t,onLayerSelect:r,onClick:n,onDoubleClick:o,onLayerClick:i,onMouseOut:s,onMouseOver:a}=e,l=n||i,c=o||i;e.onClick=e=>(l&&l(e),this._onLayerClick(e)),e.onDoubleClick=e=>(c&&c(e),this._onLayerDoubleClick(e)),e.onMouseOut=e=>{const t=e.layer.id;s&&s(e),p(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;a&&a(e),p(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const u=t||r;e.onSelect=e=>(u&&u(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=ps({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=ps({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}function Qs(e,t){const r=document.createElement("div");let n=!1;t.getStatus?n=t.getStatus():t.status&&(n=t.status);const o=t.title||"",i=t.html;function s(){o&&(r.title="string"==typeof o?o:n?o.on:o.off,r.setAttribute("aria-label",r.title))}function a(e){e instanceof HTMLElement?(r.innerHTML="",r.appendChild(e)):"string"==typeof e&&(r.innerHTML=e)}function l(){i&&("string"==typeof i||i instanceof HTMLElement?a(i):a(n?i.on:i.off),r.setAttribute("aria-label",r.title))}function c(e,t){e.split(" ").forEach((e=>{t?r.classList.add(e):r.classList.remove(e)}))}function u(){t.addClassOn&&c(t.addClassOn,n),t.addClassOff&&c(t.addClassOff,!n)}s(),l(),t.addClass&&c(t.addClass,!0),u();const p=e=>{void 0!==e&&(n=e),l(),s(),u()},h=e=>{if(n=void 0!==e?e:!n,t.onClick){const e=t.onClick(n);Promise.resolve(e).then((()=>p())).catch((()=>n=!n))}else p()},d=e({html:r,onClick:h});return d.onClick=h,d.changeStatus=p,d}var Ks=Object.defineProperty,Xs=(e,t,r)=>((e,t,r)=>t in e?Ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),Ys=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const ea=class e extends Hs{constructor(){super(...arguments),Xs(this,"_loadControlQueue",{"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]}),Xs(this,"_isControlLoading",{"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1})}addControl(e,t,r){return Ys(this,null,(function*(){let n;if(t=null!=t?t:"top-left",n="string"==typeof e?this.getControl(e,r):e,n)return new Promise((e=>{this._setControlQueue(t,(()=>Ys(this,null,(function*(){const r=yield n,o=this.mapAdapter.addControl(r,t);e(o)}))))}))}))}createControl(e,t){return Ys(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}))}createButtonControl(e){return Ys(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}))}createToggleControl(e){return Ys(this,null,(function*(){return yield this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?Qs(this.mapAdapter.createButtonControl,e):void 0}))}removeControl(e){"remove"in e?e.remove():this.mapAdapter.removeControl&&Promise.resolve(e).then((e=>{this.mapAdapter.removeControl(e)}))}getControl(t,r){const n=this.mapAdapter.controlAdapters[t];if(n)return new n(r);{const n=e.controls[t];if(n)return n(this,r)}}getControlContainer(){if(this.mapAdapter.getControlContainer)return this.mapAdapter.getControlContainer()}_setControlQueue(e,t){this._loadControlQueue[e].push(t),this._isControlLoading[e]||this._applyControls(e)}_applyControls(e){return Ys(this,null,(function*(){if(this._loadControlQueue[e].length){this._isControlLoading[e]=!0;const t=this._loadControlQueue[e][0];yield t(),this._loadControlQueue[e].splice(0,1),this._applyControls(e)}else this._isControlLoading[e]=!1}))}};Xs(ea,"controls",{CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)});let ta=ea;const ra={};function na(e){return ra[e]}function oa(e,t){ra[e]=t}var ia=Object.getOwnPropertySymbols,sa=Object.prototype.hasOwnProperty,aa=Object.prototype.propertyIsEnumerable,la=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),ca=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())})),ua=(e,t,r)=>(t=e[la("asyncIterator")])?t.call(e):(e=e[la("iterator")](),t={},r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise(((r,o,i)=>(t=n.call(e,t),i=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:i})),o))))),r("next"),r("return"),t);class pa extends ta{constructor(e){super(e),this._addControls(),oa(this.id,this)}static get(e){return na(e)}_addLayerProviders(){return ca(this,null,(function*(){try{for(var e,t,r,n=ua(this._starterKits);e=!(t=yield n.next()).done;e=!1){const e=t.value;if(e.getLayerAdapters){const t=yield e.getLayerAdapters.call(e);if(t)try{for(var o,i,s,a=ua(t);o=!(i=yield a.next()).done;o=!1){const e=i.value,t=yield e.createAdapter(this);t&&(this.mapAdapter.layerAdapters[e.name]=t)}}catch(i){s=[i]}finally{try{o&&(i=a.return)&&(yield i.call(a))}finally{if(s)throw s[0]}}}}}catch(t){r=[t]}finally{try{e&&(t=n.return)&&(yield t.call(n))}finally{if(r)throw r[0]}}}))}_onLoadSync(){return ca(this,null,(function*(){try{for(var e,t,r,n=ua(this._starterKits);e=!(t=yield n.next()).done;e=!1){const e=t.value;if(e.onLoadSync)try{yield e.onLoadSync.call(e,this)}catch(o){console.error(o)}}}catch(t){r=[t]}finally{try{e&&(t=n.return)&&(yield t.call(n))}finally{if(r)throw r[0]}}}))}_addControls(){this.options.controls&&this.options.controls.forEach((e=>{let t=e,r={};"string"==typeof e&&this.options.controlsOptions&&this.options.controlsOptions[e]&&(r=this.options.controlsOptions[e],void 0!==r.control&&(t=r.control));const n=r,{position:o}=n,i=((e,t)=>{var r={};for(var n in e)sa.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&ia)for(var n of ia(e))t.indexOf(n)<0&&aa.call(e,n)&&(r[n]=e[n]);return r})(n,["position"]);this.addControl(t,o||"top-left",i)})),this._emitStatusEvent("controls:create")}}function ha(){return["ZOOM","ATTRIBUTION"]}var da=Object.defineProperty,fa=Object.defineProperties,ya=Object.getOwnPropertyDescriptors,ma=Object.getOwnPropertySymbols,ga=Object.prototype.hasOwnProperty,ba=Object.prototype.propertyIsEnumerable,va=(e,t,r)=>t in e?da(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,wa=(e,t)=>{for(var r in t||(t={}))ga.call(t,r)&&va(e,r,t[r]);if(ma)for(var r of ma(t))ba.call(t,r)&&va(e,r,t[r]);return e},_a=(e,t)=>fa(e,ya(t));function Oa(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(_a(wa({},r),{resource:t}));else if(Array.isArray(t)){const[o,i]=t;e.push(wa(_a(wa({},r),{resource:o,id:i}),n))}else"object"==typeof t&&e.push(wa(wa(wa({},r),t),n))}var La=Object.defineProperty,Pa=Object.defineProperties,Ia=Object.getOwnPropertyDescriptors,xa=Object.getOwnPropertySymbols,Ea=Object.prototype.hasOwnProperty,Aa=Object.prototype.propertyIsEnumerable,ja=(e,t,r)=>t in e?La(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Ca={target:"map",baseUrl:"",whitlabel:!1,controls:["ZOOM","ATTRIBUTION"],controlsOptions:{ZOOM:{position:"top-left"},ATTRIBUTION:{position:"bottom-right",customAttribution:['<a href="https://nextgis.com" target="_blank">©NextGIS</a>']}},pixelRadius:10};function Ma(e){const t=[new Br];var r;return e.starterKits&&e.starterKits.forEach((e=>{t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new Ie({baseUrl:e.baseUrl||"",auth:e.auth,withCredentials:e.withCredentials}),(e=d(Ca,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new ti({connector:e.connector,auth:e.auth})),r=((e,t)=>{for(var r in t||(t={}))Ea.call(t,r)&&ja(e,r,t[r]);if(xa)for(var r of xa(t))Aa.call(t,r)&&ja(e,r,t[r]);return e})({},e),e=Pa(r,Ia({starterKits:t,create:!1}))}var ka=Object.defineProperty,Sa=Object.defineProperties,Na=Object.getOwnPropertyDescriptors,Ta=Object.getOwnPropertySymbols,Fa=Object.getPrototypeOf,Ba=Object.prototype.hasOwnProperty,Ra=Object.prototype.propertyIsEnumerable,$a=Reflect.get,Da=(e,t,r)=>t in e?ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qa=(e,t)=>{for(var r in t||(t={}))Ba.call(t,r)&&Da(e,r,t[r]);if(Ta)for(var r of Ta(t))Ra.call(t,r)&&Da(e,r,t[r]);return e},Ga=(e,t)=>Sa(e,Na(t)),Va=(e,t,r)=>Da(e,"symbol"!=typeof t?t+"":t,r),Ua=(e,t,r)=>$a(Fa(e),r,t),za=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const Za=class e extends pa{constructor(e){super(Ma(e)),Va(this,"emitter",new r),Va(this,"connector"),Va(this,"_ngwLayers",{}),Va(this,"$$selectFromNgwRaster"),Va(this,"$$selectFromNgwVector"),Va(this,"_promises",{select:[],identify:[]}),e.connector&&(this.connector=e.connector),this._createWebMap().then((()=>{const e=this.getContainer();e&&e.classList.add("ngw-map-container"),this.options.whitlabel&&this._whiteLabel()}))}addControl(t,r,n){return za(this,null,(function*(){return yield this.onLoad("controls:create"),Ua(e.prototype,this,"addControl").call(this,t,r,n)}))}addNgwLayer(e){return za(this,null,(function*(){yield this.onMapLoad();const{keyname:t,resourceId:r}=e;(t||void 0!==r)&&console.warn(`DEPRECATED WARN: ${"set `resource` options instead of `keyname` or `resourceId`"}`);const n=e.resource;if(!t&&!r&&!n)throw new Error("resource, resourceId or keyname is required parameter to add NGW layer");if(p(this.options.baseUrl))try{p(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},p(e.adapterOptions.setViewDelay)||(e.adapterOptions.setViewDelay=this.options.setViewDelay));const t=function(e,t,r){const n=r.getAuthorizationHeaders();return n&&(e.headers=n),void 0!==r.withCredentials&&(e.withCredentials=r.withCredentials),no(e,t,r)}(e,this,this.connector),r=qa(qa({visibility:!0},e),e.adapterOptions),n=yield this.addLayer(t,r),o=n&&this.getLayerId(n);if(n&&o&&(this._ngwLayers[o]={layer:n,resourceId:n.resourceId},n.options.name=n.options.name||n.item&&n.item.resource.display_name,n.options.baselayer)){if(this.getActiveBaseLayer())return n}return n}catch(o){const e=I(n)&&"id"in n?n.id:t||r||n;console.error(`Can't add NGW layer ${e}.`,o)}}))}fit(){const{center:e,zoom:t,bounds:r}=this.options;e?(this.setCenter(e),t&&this.setZoom(t)):r&&this.fitBounds(r)}fetchNgwLayerItem(e){return ut(qa({connector:this.connector},e))}fetchNgwLayerItems(e){return cn(qa({connector:this.connector},e))}fetchNgwLayerFeature(e){return pi(qa({connector:this.connector},e))}fetchNgwLayerFeatures(e){return hn(qa({connector:this.connector},e))}fetchIdentifyItem(e,t){const r=new AbortController,n=r.signal;(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",r.abort),(t=t||{}).signal=n;const o=function(e){const{connector:t,identify:r}=e,n=_i(r);return n&&n.length?ut(vi(vi({connector:t},e.requestOptions),n[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",o,r),o}fetchIdentifyGeoJson(e,t=!1){const r=new AbortController,n=function(e){const{connector:t,identify:r,requestOptions:n}=e;for(const i in r){const e=Number(i);if(!isNaN(e)){const e=r[i];if("features"in e){const t=e.features.find((e=>e.geom));if(t&&t.geom){const e=t.geom;return Promise.resolve(We(wi(vi({},t),{geom:e})))}}}}const o=_i(r);return o&&o.length?pi(vi(wi(vi({},n),{connector:t}),o[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,multiple:t,requestOptions:{signal:r.signal}});return n&&"then"in n?(this._addPromise("identify",n,r),n):Promise.resolve(n)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,t)}getNgwLayers(){return za(this,null,(function*(){return yield this.onLoad(),this._ngwLayers}))}getNgwLayerByResourceId(e){return za(this,null,(function*(){for(const t in this._ngwLayers){const r=this._ngwLayers[t];if(r.resourceId===e)return r&&r.layer;if(r.layer.getIdentificationIds){const t=yield r.layer.getIdentificationIds();if(t&&t.some((t=>t===e)))return r.layer}if(r.layer.getDependLayers){const t=r.layer.getDependLayers().find((t=>t.item&&t.item.parentId===e));if(t)return t.layer}}}))}fitLayer(t,r){return za(this,null,(function*(){let n;n="string"==typeof t||"number"==typeof t?String(n):t.id;const o=n&&this._ngwLayers[n];if(o)if(o.layer.getBounds){const e=yield o.layer.getBounds();e&&this.fitBounds(e,r)}else{let e;if(o.layer.item)e=o.layer.item;else{const t=o.resourceId;e=yield this.connector.getResource(t)}e&&hr({resourceId:e.resource.id,connector:this.connector}).then((e=>{e&&this.fitBounds(e,r)}))}else Ua(e.prototype,this,"fitLayer").call(this,"number"==typeof t?String(t):t,r)}))}zoomToLayer(e){return za(this,null,(function*(){return this.fitLayer(e)}))}onLoad(e="ngw-map:create"){return super.onLoad(e)}removeLayer(e){const t=this.getLayer(e);if(t){const e=this.getLayerId(t);e&&delete this._ngwLayers[e],super.removeLayer(t)}}enableSelection(){this.$$selectFromNgwRaster||(this.$$selectFromNgwRaster=e=>{this._getSelectListenersCount()&&this.selectFromNgwRaster(e)},this.$$selectFromNgwVector=e=>{this._getSelectListenersCount()&&this._selectFromNgwVector(e)},this.emitter.on("click",this.$$selectFromNgwRaster),this.emitter.on("layer:click",this.$$selectFromNgwVector))}disableSelection(){this.$$selectFromNgwRaster&&(this.emitter.removeListener("click",this.$$selectFromNgwRaster),this.$$selectFromNgwRaster=void 0),this.$$selectFromNgwVector&&(this.emitter.removeListener("layer:click",this.$$selectFromNgwVector),this.$$selectFromNgwVector=void 0)}getNgwLayerItem(e){return this.fetchNgwLayerItem(e)}getNgwLayerItems(e){return this.fetchNgwLayerItems(e)}getNgwLayerFeature(e){return this.fetchNgwLayerFeature(e)}getNgwLayerFeatures(e){return this.fetchNgwLayerFeatures(e)}cancelPromise(...e){this.cancelPromises(...e)}cancelPromises(...e){e.length||(e=Object.keys(this._promises)),e.forEach((e=>{const t=this._promises[e];t&&(t.forEach((e=>e[1].abort())),this._promises[e]=[])}))}selectFromNgwRaster(e){return za(this,null,(function*(){var t;this._emitStatusEvent("ngw:preselect");const r=[],n=Object.values(this._ngwLayers);n.sort(((e,t)=>e.layer.order&&t.layer.order?t.layer.order-e.layer.order:1));for(const e of n){const n=e.layer,o="function"==typeof n.getIdentificationIds&&n.getIdentificationIds,i=null==(t=n.options.interactive)||t;o&&n.options.selectable&&i&&this.isLayerVisible(n)&&r.push(o.call(n))}const o=Promise.all(r),i=yield o,s=[];for(const e of i)e&&s.push(...e);if(!s.length)return void this._emitStatusEvent("ngw:select",null);const a=this.options.pixelRadius||10,l=this.getCenter();let c=this.getZoom();if(c=void 0!==c?c:20,!l||!c)return void this._emitStatusEvent("ngw:select",null);const u=function(e,t,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*e[1]/Math.PI))/Math.pow(2,t+8))*5e-4}(l,c,a);let p;if(this.options.highlightIdentification){const t=this.options.highlightIdentification,r="number"==typeof t?t:1e3,[n,o]=e.lngLat;p={type:"Polygon",coordinates:[w(n,o,u)]};const i=yield this.addGeoJsonLayer({data:{type:"Feature",geometry:p}});r!==1/0&&setTimeout((()=>{this.removeLayer(i)}),r)}const h=new AbortController,d=function(e,t){f(e);const[r,n]=e.lngLat,{geom:o,radius:i}=t,s=null!=o?o:w(r,n,i);return Li(wi(vi({},t),{geom:s}))}(e,{layers:s,connector:this.connector,radius:u,geom:p,signal:h.signal}).then((t=>{const r=Ga(qa({},t),{resources:s,sourceType:"raster",event:e}),n=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",n),n}));return this._addPromise("select",d,h),d}))}_addPromise(e,t,r){const n=this._promises[e];if(n&&-1===n.findIndex((e=>e[0]===t))){const e=()=>{const e=n.findIndex((e=>e[0]===t));-1!==e&&n.splice(e,1)};t.then(e),t.catch(e),n.push([t,r])}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}_createWebMap(){return za(this,null,(function*(){yield this.create(),this.options.qmsId&&this._addQmsBaseLayer(),this.options.osm&&this._addOsmBaseLayer();const e=[],t=this._isFitFromResource();if(this.options.webmapId&&Oa(e,this.options.webmapId,{fit:t}),this.options.resources&&Array.isArray(this.options.resources))for(const n of this.options.resources){const r={};t||(r.fit=!1),Oa(e,n,{},r)}for(const n of e)try{yield this.addNgwLayer(n)}catch(r){console.warn(r)}this._emitStatusEvent("ngw-map:create",this),this.enableSelection()}))}_addOsmBaseLayer(){this.addBaseLayer("OSM")}_addQmsBaseLayer(){let e,t;Array.isArray(this.options.qmsId)?(e=this.options.qmsId[0],t=this.options.qmsId[1]):e=Number(this.options.qmsId);const r={qmsId:e};t&&(r.id=t),this.addBaseLayer("QMS",r)}_selectFromNgwVector(e){const t=e.layer;if(!(t.options.selectable&&this.isLayerVisible(t)))return;const r=t.item&&t.item.resource.id,n=e.feature;if(void 0!==r&&n){const e=n.id;if(e){const t={featureCount:1,[r]:{featureCount:1,features:[{id:Number(e),fields:n.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:n.geometry}]}};return this._emitStatusEvent("ngw:select",this._prepareToIdentify(Ga(qa({},t),{resources:[r],sourceType:"vector"}))),t}}}_prepareToIdentify(e){return Ga(qa({},e),{getIdentifyItems:()=>_i(e,!0).map((e=>new ci({feature:e.feature,connector:this.connector})))})}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}_whiteLabel(){return za(this,null,(function*(){const e=this.getContainer();if(e){const t=yield Pi(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}))}};Va(Za,"getIcon",(function(e={}){var t,r,n,o,i,s;const a=null!=(t=e.shape)?t:"circle",u=null!=(r=e.color)?r:"blue",p=null!=(n=e.strokeColor)?n:"white",h=null!=(o=e.size)?o:c,d=null!=(i=e.rotate)?i:0,f=null!=(s=e.anchor)?s:[h/2,h/2],y=void 0!==e.stroke?Number(e.stroke):.8,m=e.p||l[a]||"circle",g="string"==typeof m?m:m(e),b=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").documentElement}(e.svg||function({width:e,height:t,stroke:r=0,content:n}){const o=r/2;return`<svg\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n width="${e}"\n height="${t}"\n viewBox="-${o} -${o} ${c+r} ${c+r}"\n >${n}</svg>`}({width:h,height:h,stroke:y,content:g}));return b.setAttribute("width",String(h)),b.setAttribute("height",String(h)),b.setAttribute("fill",u),y&&(b.setAttribute("stroke",p),b.setAttribute("stroke-width",String(y))),{type:"icon",iconSize:[h,h],iconAnchor:f,html:(new XMLSerializer).serializeToString(b),rotate:d,svg:b}}));let Wa=Za;return e.NgwMap=Wa,e.WebMap=pa,e.WebMapControls=ta,e.WebMapLayers=Hs,e.WebMapMain=ks,e.createNgwMap=function(e){return t=this,r=null,n=function*(){return new Wa(e).onLoad()},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n},e.createToggleControl=Qs,e.createWebMap=function(e){return t=this,r=null,n=function*(){return new pa(e).onLoad()},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n},e.detectGeometryType=Ns,e.findMostFrequentGeomType=Ss,e.getDefaultControls=ha,e.getWebMap=na,e.paintTypeAlias=Ts,e.setWebMap=oa,e.typeAlias=Fs,e.updateGeoJsonAdapterOptions=Bs,e}({});
2
2
  //# sourceMappingURL=ngw-map.global.prod.js.map