@nextgis/ngw-map 3.0.0-alpha.19 → 3.0.0-alpha.20

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";const t={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"/>'};function r(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 n(e,t,r=!1){let o=e;const i=t,s=Array.isArray(i);let a=s&&[]||{};return s&&Array.isArray(i)?r?(o=o||[],a=a.concat(o),i.forEach(((e,t)=>{void 0===a[t]?a[t]=e:"object"==typeof e?a[t]=n(o[t],e,r):-1===o.indexOf(e)&&a.push(e)}))):a=i:(o&&"object"==typeof o&&Object.keys(o).forEach((function(e){a[e]=o[e]})),Object.keys(i).forEach((function(e){a[e]="object"==typeof i[e]&&i[e]&&"object"==typeof o[e]&&"object"==typeof i[e]?n(o[e],i[e],r):i[e]}))),a}function o(e){return null!=e}function i(e){return"string"==typeof e?!!e:o(e)}function s(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}function a(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 l(e){return{type:"Polygon",coordinates:[c(e)]}}function c(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const u=Math.PI/180,p=180/Math.PI;function h(e,t,r=10,n=6){const o=r/6371*p,i=o/Math.cos(t*u),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 d(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:f(e,t));return e===t}function f(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(!d(e[r[o]],t[n[o]],e,t))return!1}return!0}function y(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]=y(e[r])})),t}function m(e){return"[object Object]"===Object.prototype.toString.call(e)}function b(e){return e.replace(/([^:]\/)\/+/g,"$1")}const g=/\{ *([\w_-]+) *\}/g;function v(e,t){return e.replace(g,((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 w=Object.defineProperty,_=Object.getOwnPropertySymbols,O=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,P=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function I(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=v(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={}))O.call(t,r)&&P(e,r,t[r]);if(_)for(var r of _(t))L.call(t,r)&&P(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 x=Object.defineProperty,j=(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);const E=class e{constructor(t={}){var r;j(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,n){return"object"==typeof r&&"valueToSet"in r&&(r.onlyFull=!0),this.add(e,t,r,!0,n)}add(e,t,r,n,o){let s,a;"object"==typeof r&&"valueToSet"in r?(s=r,n=s.onlyFull,o=s.expirationTime,a=s.props):a=r;const l=this._find(e,a);if(l)return l.value;{let r;r=t instanceof Function?t():t;const s=a&&JSON.parse(JSON.stringify(y(a)));o=o?Date.now()+o:void 0;const l={key:e,value:r,props:s,expirationTime:o};return n&&!i(r)?r:(this.cache.push(l),r instanceof Promise?(r.catch((()=>{this.delete(e,a)})),n&&r.then((t=>(i(t)||this.delete(e,a),t))),r):r)}}match(e,t){const r=this._find(e,t);if(!(r&&r.expirationTime&&Date.now()>r.expirationTime))return null==r?void 0:r.value;this.delete(r)}matchAll(e,t){const r=Date.now();return this.cache.forEach((e=>{e.expirationTime&&r>e.expirationTime&&this.delete(e)})),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 f(e.props||{},y(r))}};j(E,"instance",{});let A=E;function C(){}function M(){M.init.call(this)}function k(e){return void 0===e._maxListeners?M.defaultMaxListeners:e._maxListeners}function S(e,t,r,n){var o,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]):(i=e._events=new C,e._eventsCount=0),s){if("function"==typeof s?s=i[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),!s.warned&&(o=k(e))&&o>0&&s.length>o){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,a=l,"function"==typeof console.warn?console.warn(a):console.log(a)}}else s=i[t]=r,++e._eventsCount;return e}function T(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 N(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 R(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}C.prototype=Object.create(null),M.EventEmitter=M,M.usingDomains=!1,M.prototype.domain=void 0,M.prototype._events=void 0,M.prototype._maxListeners=void 0,M.defaultMaxListeners=10,M.init=function(){this.domain=null,M.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new C,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},M.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},M.prototype.getMaxListeners=function(){return k(this)},M.prototype.emit=function(e){var t,r,n,o,i,s,a,l="error"===e;if(s=this._events)l=l&&null==s.error;else if(!l)return!1;if(a=this.domain,l){if(t=arguments[1],!a){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=s[e]))return!1;var u="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=R(e,n),i=0;i<n;++i)o[i].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var o=e.length,i=R(e,o),s=0;s<o;++s)i[s].call(r,n)}(r,u,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=R(e,i),a=0;a<i;++a)s[a].call(r,n,o)}(r,u,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,a=R(e,s),l=0;l<s;++l)a[l].call(r,n,o,i)}(r,u,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=R(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},M.prototype.on=M.prototype.addListener=function(e,t){return S(this,e,t,!1)},M.prototype.prependListener=function(e,t){return S(this,e,t,!0)},M.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,T(this,e,t)),this},M.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,T(this,e,t)),this},M.prototype.removeListener=function(e,t){var r,n,o,i,s;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new C:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length;i-- >0;)if(r[i]===t||r[i].listener&&r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new C,this;delete n[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()}(r,o);n.removeListener&&this.emit("removeListener",e,s||t)}return this},M.prototype.off=function(e,t){return this.removeListener(e,t)},M.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new C,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new C:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new C,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},M.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):[]},M.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):N.call(e,t)},M.prototype.listenerCount=N,M.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var F="3.0.0-alpha.18";class B extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var $=Object.defineProperty,q=(e,t,r)=>((e,t,r)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class D extends Error{constructor(e){super(),q(this,"name","NgwError"),q(this,"title"),q(this,"message"),q(this,"detail"),q(this,"exception"),q(this,"status_code"),q(this,"data"),q(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,D.prototype)}}var U=Object.defineProperty,V=(e,t,r)=>((e,t,r)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class G extends D{constructor(e){super(e),V(this,"name","InsufficientPermissionsError"),V(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,G.prototype)}}var z=Object.defineProperty,Z=(e,t,r)=>((e,t,r)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let W=class e extends D{constructor(t){super(t),Z(this,"message","There is no response from the server or problem connecting to server."),Z(this,"title","Network error"),Z(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var J=Object.defineProperty,H=(e,t,r)=>((e,t,r)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class Q extends Error{constructor(e){super(),H(this,"name","NetworkError"),Object.setPrototypeOf(this,Q.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}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 D{constructor(e){super(e),X(this,"name","ResourceNotFoundError"),X(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,Y.prototype)}}var ee=Object.freeze({__proto__:null,AbortError:B,InsufficientPermissionsError:G,NetworkError:Q,NetworksResponseError:W,NgwError:D,ResourceNotFoundError:Y,extractError:function(e){if(m(e))return e.name&&e.message&&e.title?{title:e.title,message:e.message,detail:e.detail||null,data:e.data&&e.data.data?e.data.data:null}:!e.exception||void 0!==e.status&&0!==e.status&&void 0!==e.data?{title:"string"==typeof e.title?e.title:"Unexpected error",message:"string"==typeof e.message?e.message:"Something went wrong."}:new W({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!m(e)&&(e.status_code&&e.exception&&e.title)}}),te=Object.defineProperty,re=(e,t,r)=>((e,t,r)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ne extends Error{constructor(e){super(e||"Something went wrong."),re(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,ne)}}class oe extends ne{constructor(e){super(e||"There is no response from the server or problem connecting to server."),re(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class ie extends ne{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class se extends ne{constructor(e){super(e.message),re(this,"detail"),re(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ae extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),re(this,"title"),re(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ae)}}class le extends ae{constructor(e){super("Long-running request was cancelled.",e)}}class ce extends ae{constructor(e){super(void 0,e)}}var ue=Object.defineProperty,pe=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable,fe=(e,t,r)=>t in e?ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ye=(e,t)=>{for(var r in t||(t={}))he.call(t,r)&&fe(e,r,t[r]);if(pe)for(var r of pe(t))de.call(t,r)&&fe(e,r,t[r]);return e},me=(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 be(e){return me(this,null,(function*(){const t=yield function(e){return me(this,null,(function*(){try{return e.json()}catch(t){throw new Error}}))}(e);let r=t.delay_ms;const n=void 0!==t.retry_ms?t.retry_ms:2e3,o=`/api/lunkwill/${t.id}/summary`,i=`/api/lunkwill/${t.id}/response`,s=e=>new Promise((t=>setTimeout(t,e)));let a=!1,l=!1;for(;!l;){let e,t;yield s(a?n:r),a=!1;try{e=yield fetch(o,{credentials:"same-origin"}),t=yield e.json()}catch(c){a=!0;continue}switch(t.status){case void 0:throw new ae(void 0,t);case"ready":l=!0;break;case"cancelled":throw new le(t);case"failed":throw new ce(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ae(void 0,t)}}return i}))}const ge=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function ve(e,t){let r="";return void 0!==t&&(r="?"+function(e){const t=[];for(const[r,n]of Object.entries(e))if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)t.push(`${r}=${encodeURIComponent(n)}`);else if(Array.isArray(n))t.push(`${r}=${n.map(encodeURIComponent).join(",")}`);else for(const[e,o]of Object.entries(n)){const n=`${r}[${encodeURIComponent(e)}]`;if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)t.push(`${n}=${encodeURIComponent(o)}`);else if(Array.isArray(o)){const e=o.map(encodeURIComponent);t.push(`${n}=${e.join(",")}`)}}return t.join("&")}(t)),e+r}function we(e,t,r){return me(this,null,(function*(){var n,o;const i=ye(ye({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:s,responseType:a,cacheProps:l,cacheName:c,lunkwill:u,cache:p,query:h,json:d}=i,f=((e,t)=>{var r={};for(var n in e)he.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&pe)for(var n of pe(e))t.indexOf(n)<0&&de.call(e,n)&&(r[n]=e[n]);return r})(i,["withCredentials","responseType","cacheProps","cacheName","lunkwill","cache","query","json"]);f.method=null==(n=f.method)?void 0:n.toUpperCase(),s&&(f.credentials="include");let m=!1;void 0!==u&&(u.toHeaders(f.headers||{}),m=!0);const b=!!f.lunkwillReturnUrl;if(delete f.lunkwillReturnUrl,void 0!==d){f.body=JSON.stringify(d);const e=f.headers||{};e["Content-Type"]="application/json",f.headers=e}const g=ve(e,h),v=()=>me(this,null,(function*(){let e;try{e=yield fetch(g,f)}catch(o){if(f.signal&&f.signal.aborted)throw o;throw new oe}if(m&&function(e){const t=e.headers.get("content-type");return null!=t&&t.includes("application/vnd.lunkwill.request-summary+json")}(e)){const t=yield be(e);if(b)return t;e=yield function(e){return me(this,null,(function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new oe}}))}(t)}const t=e.headers.get("content-type"),r=t&&(t.includes("application/json")||t.includes("application/vnd.lunkwill.request-summary+json"));let n;try{const o=t&&ge.test(t);if("blob"===a||o)n=yield e.blob();else{if(!r)throw new ie;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof ie)throw o;throw new ie}if(400<=e.status&&e.status<=599)throw new se(n);return n}));if(r)if("GET"===(null==(o=f.method)?void 0:o.toUpperCase())){if(!1!==p){const e=l||ye({},y({withCredentials:s,responseType:a}));return r.add(c||g,v,{props:e,expirationTime:p?void 0:500})}}else{["api/feature_layer/identify"].every((t=>!e.includes(t)))&&r.clean()}return v()}))}var _e=Object.defineProperty,Oe=Object.defineProperties,Le=Object.getOwnPropertyDescriptors,Pe=Object.getOwnPropertySymbols,Ie=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,je=(e,t,r)=>t in e?_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ee=(e,t)=>{for(var r in t||(t={}))Ie.call(t,r)&&je(e,r,t[r]);if(Pe)for(var r of Pe(t))xe.call(t,r)&&je(e,r,t[r]);return e},Ae=(e,t)=>{var r={};for(var n in e)Ie.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Pe)for(var n of Pe(e))t.indexOf(n)<0&&xe.call(e,n)&&(r[n]=e[n]);return r};function Ce(e,t,r,...n){const[o,...i]=r[e],s=n[0];let a;if(void 0===s)a=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");a=[];for(const[e,t]of Object.entries(s))a[i.indexOf(e)]=String(t)}else a=n.map((e=>String(e)));return b(t+o.replace(/\{(\w+)\}/g,(function(e,t){const r=parseInt(t),n=a[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)})))}function Me(e,t,...r){const n={url:n=>{return o=this,i=null,s=function*(){var o;const i=yield t.connect();return ve(Ce(e,null!=(o=t.options.baseUrl)?o:"",i,...r),null==n?void 0:n.query)},new Promise(((e,t)=>{var r=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(r,n);a((s=s.apply(o,i)).next())}));var o,i,s}},o=["get","post","put","delete","patch"];for(const i of o){const o=n=>{var o;const s=n||{},{headers:a}=s,l=Ae(s,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new B;return t.connect().then((n=>{var o;const s=Ce(e,null!=(o=t.options.baseUrl)?o:"",n,...r),c=y(Ee(Ee({},t.getAuthorizationHeaders()),null!=a?a:{}));return we(s,(u=Ee({headers:c},l),Oe(u,Le({method:i}))),t.cache);var u}))};n[i]=o}return n}function ke(e){return"[object Object]"===Object.prototype.toString.call(e)}let Se;Se=(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 D(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 Q(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)};const Te=[];function Ne(e){Te.push(e)}var Re=Object.defineProperty,Fe=Object.defineProperties,Be=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,Ue=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ve=(e,t)=>{for(var r in t||(t={}))qe.call(t,r)&&Ue(e,r,t[r]);if($e)for(var r of $e(t))De.call(t,r)&&Ue(e,r,t[r]);return e},Ge=(e,t,r)=>Ue(e,"symbol"!=typeof t?t+"":t,r),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())}));let Ze=0,We=0;class Je{constructor(e){this.options=e,Ge(this,"id",Ze++),Ge(this,"emitter",new M),Ge(this,"user"),Ge(this,"cache"),Ge(this,"withCredentials"),Ge(this,"routeCache"),Ge(this,"client",`NextGIS-NGW-Connector/${F}`),Ge(this,"routeStr","/api/component/pyramid/route"),Ge(this,"activeRequests",{}),Ge(this,"requestTransform");const t=function(e){return Te.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return f(t.options.auth,e.auth)}}))}(e);if(this.cache=new A({namespace:e.cacheId}),this.routeCache=new A({namespace:"routecache"}),t)return t;{const{route:e,requestTransform:t,withCredentials:r}=this.options;e&&(this.routeStr=e),t&&(this.requestTransform=t),void 0!==r&&(this.withCredentials=r),Ne(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,Ne(this)}connect(){return ze(this,arguments,(function*({signal:e}={}){const t=this.options.auth;if(t){const{login:e,password:r}=t;e&&r&&(yield this._login({login:e,password:r}))}const r=`${this.routeStr}?client=${this.client}`;return this.routeCache.add(this.options.baseUrl||String(this.id),(()=>this.makeQuery(r,null,{signal:e,cache:!1})))}))}login(e,t){return this.logout(),Ne(this),this._login(e,t)}logout(){this.abort(),function(e){const t=Te.indexOf(e);-1!==t&&Te.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.routeCache.clean(),this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return ze(this,null,(function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Ve({headers:this.getAuthorizationHeaders(e),cache:!0},t);return this.makeQuery("/api/component/auth/current_user",{},r)}))}getAuthorizationHeaders(e){const t=this.makeClientId(e);return t?{Authorization:`Basic ${t}`}:{}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=[t,r].map(encodeURIComponent).join(":");return window.btoa(n)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return Ve({},this.activeRequests)}route(e,...t){return Me(e,this,...t)}makeQuery(e,t){return ze(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)qe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&$e)for(var n of $e(e))t.indexOf(n)<0&&De.call(e,n)&&(r[n]=e[n]);return r})(t,["paramList"]);e=v(e,r)}e=encodeURI(b(e)),r=Ve({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 B;i.addEventListener("abort",(()=>{h.abort()}))}r.signal=d;const f=()=>ze(this,null,(function*(){const t=We++;this.activeRequests[t]=h;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}}));if("GET"===s&&!1!==o){const r=c||(m=Ve({},y({headers:a,withCredentials:p,responseType:u,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),Fe(m,Be({params:t})));return this.cache.add(l||e,f,{props:r,expirationTime:o?void 0:500})}var m;return f()}))}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise(((r,n)=>{var o;if(this.user&&((t=t||{}).headers=Ve(Ve({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Se(e,r,t,n,(e=>{i=e})),null==(o=t.signal)||o.addEventListener("abort",(()=>{void 0!==i&&i(),n(new B)}))})).catch((e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e}))}_login(e,t){return ze(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 D){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new Y(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new G(e)}return e}}Ge(Je,"errors",ee);const He=["description"];function Qe(e,t=""){t=t?t+"__":"";const r={};for(const[n,i]of Object.entries(e))if(-1===He.indexOf(n))if(ke(i))if("owner_user"===n){const e=Qe(i,n);Object.assign(r,e)}else"parent"===n&&"id"in i&&(r.parent_id=i.id);else o(i)&&(r[t+n]=i);return r}var Ke=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,et=Object.getOwnPropertySymbols,tt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,nt=(e,t,r)=>t in e?Ke(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ot=(e,t)=>{for(var r in t||(t={}))tt.call(t,r)&&nt(e,r,t[r]);if(et)for(var r of et(t))rt.call(t,r)&&nt(e,r,t[r]);return e},it=(e,t)=>Xe(e,Ye(t)),st=(e,t,r)=>nt(e,"symbol"!=typeof t?t+"":t,r),at=(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 lt{constructor({connector:e,cacheId:t}){st(this,"cache"),st(this,"connector"),this.connector=e,this.cache=new A({namespace:t})}getOne(e,t){const r=ot({},t);return"string"==typeof e||"number"==typeof e||ke(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):ke(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 Y}))}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||ke(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,Qe(e)),this.connector.route("resource.search").get(it(ot({},t),{query:ot({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=>{var r,n;return(null==(n=null==(r=null==e?void 0:e.resource)?void 0:r.parent)?void 0:n.id)?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){return at(this,arguments,(function*(e,t,r=[]){let n;n="string"==typeof e?yield this.getId(e,t):"object"==typeof e?e.id:e;const o=yield this.connector.route("resource.collection").get(it(ot({},t),{query:{parent:n}})),i=[];for(const s of o)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&i.push(this._getChildrenOf(s.resource.id,t,r));return i.length?Promise.all(i).then((()=>r)):r}))}_cleanResourceItemCache(e){return at(this,null,(function*(){var t;const r=this.cache.all(),n=[];for(const o of r){const r=null==(t=o.props)?void 0:t.id;if(["resource.item","resource"].includes(o.key)&&void 0!==r)if("number"==typeof r)r===e&&n.push(o);else{(yield this.getId(r))===e&&n.push(o)}}for(const e of n)this.cache.delete(e)}))}_fetchResourceById(e,t){return this.connector.route("resource.item",{id:e}).get(t)}_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:o(e.id)&&o(t.resource.id)?e.id===t.resource.id:f(e,t.resource)})),[])))}}var ct=Object.defineProperty,ut=(e,t,r)=>((e,t,r)=>t in e?ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class pt extends Je{constructor(e){super(e),ut(this,"resources"),this.resources=new lt({connector:this,cacheId:e.cacheId})}static create(e){return new this(e)}clearCache(){super.clearCache(),this.resources.cache.clean()}apiRequest(e,t={},r={}){var n;return I({name:e,params:y(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)}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)}}var ht=Object.defineProperty,dt=Object.defineProperties,ft=Object.getOwnPropertyDescriptors,yt=Object.getOwnPropertySymbols,mt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,gt=(e,t,r)=>t in e?ht(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,vt=(e,t)=>{for(var r in t||(t={}))mt.call(t,r)&&gt(e,r,t[r]);if(yt)for(var r of yt(t))bt.call(t,r)&&gt(e,r,t[r]);return e},wt=(e,t)=>dt(e,ft(t));function _t(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 Ot({resourceId:e,connector:t,cache:r=!0,signal:n}){return t.route("layer.extent",{id:Number(e)}).get({cache:r,signal:n}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}function Lt(e){return e.connector.getResource(e.resourceId,{signal:e.signal,cache:e.cache}).then((t=>{if(t)return Pt(t,e.connector,e)}))}function Pt(e,t,r){if(e.webmap)return Promise.resolve(_t(e.webmap));{const n=e.resource;return n.cls&&n.parent&&-1!==n.cls.indexOf("style")?t.getResource(n.parent.id,r).then((e=>{if(e)return Ot(wt(vt({},r),{resourceId:e.resource.id,connector:t}))})):Ot(wt(vt({},r),{resourceId:n.id,connector:t}))}}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),jt=(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 Et{constructor(){xt(this,"item"),xt(this,"connector"),xt(this,"_extent")}getExtent(){return jt(this,null,(function*(){return this.getBounds()}))}getBounds(e){return jt(this,null,(function*(){return this._extent?this._extent:this.item?(this._extent=yield Pt(this.item,this.connector,e),this._extent):void 0}))}}function At(e,t){return r=this,n=null,o=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 At(r,t)),!i&&o){const e=yield t.getResource(o);e&&(i=e.resource.id)}return 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}var Ct=Object.defineProperty,Mt=Object.getOwnPropertySymbols,kt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Tt=(e,t,r)=>t in e?Ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Nt=(e,t,r)=>Tt(e,"symbol"!=typeof t?t+"":t,r),Rt=(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 Ft(e){return Rt(this,arguments,(function*({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:n}){return class{constructor(){Nt(this,"options",{}),Nt(this,"layer",[]),Nt(this,"_removed",!1),Nt(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 Rt(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 Rt(this,null,(function*(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)yield e.hideLayer(t)}))}loadLayer(){return Rt(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,((e,t)=>{for(var r in t||(t={}))kt.call(t,r)&&Tt(e,r,t[r]);if(Mt)for(var r of Mt(t))St.call(t,r)&&Tt(e,r,t[r]);return e})({},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}))}}}))}function Bt(e){return t=this,r=arguments,n=function*({webMap:e,connector:t,item:r,adapterOptions:n={},idPrefix:o="first-show-adapter"}){return Ft({webMap:e,adapterOptions:n,onLayerAdded:e=>{e.options.baselayer=!1,e.id=o+"-"+r.resource_id},createAdapter:()=>Wi({resource:r.resource_id,adapterOptions:{name:r.display_name,opacity:r.opacity}},e,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}var $t=Object.defineProperty,qt=Object.getOwnPropertySymbols,Dt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Vt=(e,t,r)=>t in e?$t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function Gt(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 zt={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)=>Gt(e,t),ilike:(e,t)=>Gt(e,t,!0)};function Zt(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Wt(e,t){const r=((e,t)=>{for(var r in t||(t={}))Dt.call(t,r)&&Vt(e,r,t[r]);if(qt)for(var r of qt(t))Ut.call(t,r)&&Vt(e,r,t[r]);return e})({},e.properties);return!!r&&(r.$id=e.id,Jt(r,t))}function Jt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(Zt(t)){const[r,n,o]=t,i=zt[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 Jt(e,t)},o=t.filter((e=>Array.isArray(e)));return"any"===r?o.some(n):o.every(n)}const Ht={defaultRequestLimit:7e3};var Qt=Object.defineProperty,Kt=Object.defineProperties,Xt=Object.getOwnPropertyDescriptors,Yt=Object.getOwnPropertySymbols,er=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable,rr=(e,t,r)=>t in e?Qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,nr=(e,t)=>{for(var r in t||(t={}))er.call(t,r)&&rr(e,r,t[r]);if(Yt)for(var r of Yt(t))tr.call(t,r)&&rr(e,r,t[r]);return e},or=(e,t)=>Kt(e,Xt(t)),ir=(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 sr={srs:4326,geom_format:"geojson",dt_format:"iso"};function ar(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function lr(e,t){const{extensions:r,geom:n,fields:i,srs:s,ilike:a,like:l}=t;e.extensions=r||[],i&&(e.fields=i),void 0!==n&&(e.geom=n,n||(delete e.srs,delete e.geom_format)),o(a)?e.ilike=a:o(l)&&(e.like=l),o(s)&&(e.srs=s)}function cr(e){return ir(this,null,(function*(){const t=pr(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 ur(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 pr(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)Zt(l)?t.push(dr(or(nr({},e),{paramList:[...r,...i,ur(l)]}))):pr(or(nr({},e),{filters:l}),t,[...r]);else if("all"===s){const n=[],o=[];for(const e of a)Zt(e)?n.push(ur(e)):o.push(e);if(o.length)for(const i of o)pr(or(nr({},e),{filters:i}),t,[...r,...n]);else t.push(dr(or(nr({},e),{paramList:[...r,...i,...n]})))}return t}function hr(e){return`POLYGON((${e.map((([e,t])=>{const[r,n]=a(e,t).map((e=>Math.round(1*(e+Number.EPSILON))/1));return r+" "+n})).join(", ")}))`}function dr(e){const t=nr({},sr),{limit:r,query:n,cache:o,signal:i,offset:s,orderBy:a,paramList:l,connector:u,geomFormat:p,intersects:h,resourceId:d}=e;if(t.limit=r&&r!==Number.POSITIVE_INFINITY?r:Ht.defaultRequestLimit,s&&(t.offset=s),p&&(t.geom_format=p),lr(t,e),a&&(t.order_by=a.join(",")),Array.isArray(h)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(h)?c(h):h;t.intersects=hr(e)}else"string"==typeof h&&(t.intersects=h);return l&&Object.assign(t,function(e){return e.reduce(((e,[t,r])=>(e[t]=r,e)),{})}(l)),u.route("feature_layer.feature.collection",{id:Number(d)}).get({query:nr(nr({},t),n),cache:o,signal:i})}function fr(e){let t;for(t in e){const r=e[t];if(m(r)){const n=r;if(o(n.year)&&o(n.month)&&o(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 yr=Object.defineProperty,mr=Object.defineProperties,br=Object.getOwnPropertyDescriptors,gr=Object.getOwnPropertySymbols,vr=Object.prototype.hasOwnProperty,wr=Object.prototype.propertyIsEnumerable,_r=(e,t,r)=>t in e?yr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Or=(e,t)=>{for(var r in t||(t={}))vr.call(t,r)&&_r(e,r,t[r]);if(gr)for(var r of gr(t))wr.call(t,r)&&_r(e,r,t[r]);return e},Lr=(e,t)=>mr(e,br(t)),Pr=(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 Ir(e){return Pr(this,null,(function*(){var t;const r=e.filters;if(r){let n=yield cr(Lr(Or({},e),{filters:r}));return(null!=(t=e.clientFilterValidate)?t:xr(r))&&(n=n.filter((e=>Jt(fr(Lr(Or({},e.fields),{id:e.id})),r)))),n}return dr(e)}))}function xr(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(xr(r))return!0}}return!1}function jr({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),Oo(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 Er=Object.defineProperty,Ar=Object.defineProperties,Cr=Object.getOwnPropertyDescriptors,Mr=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,Tr=(e,t,r)=>t in e?Er(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Nr=(e,t)=>{for(var r in t||(t={}))kr.call(t,r)&&Tr(e,r,t[r]);if(Mr)for(var r of Mr(t))Sr.call(t,r)&&Tr(e,r,t[r]);return e},Rr=(e,t)=>Ar(e,Cr(t)),Fr=(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 Br(e){return Fr(this,null,(function*(){const t=Nr({},sr);lr(t,e);const r=yield e.connector.route("feature_layer.feature.item",{id:Number(e.resourceId),fid:e.featureId}).get(Rr(Nr({},e),{query:t}));return Rr(Nr({},r),{toGeojson:()=>Fr(this,null,(function*(){if(r.geom)return ar(r);{const t=(yield Br(Rr(Nr({},e),{geom:!0,fields:null,extensions:null}))).geom;return ar(Rr(Nr({},r),{geom:t}))}}))})}))}var $r=Object.defineProperty,qr=Object.getOwnPropertySymbols,Dr=Object.prototype.hasOwnProperty,Ur=Object.prototype.propertyIsEnumerable,Vr=(e,t,r)=>t in e?$r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gr=(e,t,r)=>Vr(e,"symbol"!=typeof t?t+"":t,r);class zr{constructor(e){this.options=e,Gr(this,"name"),Gr(this,"resourceId"),Gr(this,"item"),Gr(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.route("feature_layer.feature.item_extent",{id:this.resourceId,fid:this.item.id}).get(e).then((e=>{if(e.extent){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(ar(this.item)):Br(((e,t)=>{for(var r in t||(t={}))Dr.call(t,r)&&Vr(e,r,t[r]);if(qr)for(var r of qr(t))Ur.call(t,r)&&Vr(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,ar(this.item))))}}var Zr=Object.defineProperty,Wr=(e,t,r)=>((e,t,r)=>t in e?Zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Jr{constructor(e,t,r){Wr(this,"options"),Wr(this,"emitter",new M),Wr(this,"name"),Wr(this,"item"),Wr(this,"_blocked",!1),Wr(this,"_container"),Wr(this,"_value"),Wr(this,"_removeEventsListener"),this.item=t,this.options=Object.assign({},r),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 Hr=Object.defineProperty,Qr=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Xr=Object.prototype.propertyIsEnumerable,Yr=(e,t,r)=>t in e?Hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,en=(e,t)=>{for(var r in t||(t={}))Kr.call(t,r)&&Yr(e,r,t[r]);if(Qr)for(var r of Qr(t))Xr.call(t,r)&&Yr(e,r,t[r]);return e};const tn=class e extends Jr{constructor(t,r,n){super(t,r,en(en({},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,en(en({},t),{propagation:!0,bubble:!1}))}}}};Yr(tn,"options"+"",{hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"});let rn=tn;var nn=Object.defineProperty,on=Object.getOwnPropertySymbols,sn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable,ln=(e,t,r)=>t in e?nn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,cn=(e,t,r)=>ln(e,"symbol"!=typeof t?t+"":t,r);const un=class e{constructor(e,t){this.item=e,cn(this,"options",{}),cn(this,"_properties",{}),cn(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={}))sn.call(t,r)&&ln(e,r,t[r]);if(on)for(var r of on(t))an.call(t,r)&&ln(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}};cn(un,"handlers",{CheckProperty:rn});let pn=un;function hn(e,t,r,n){return!!yn(e,t,r,mn)}function dn(e,t,r,n){return yn(e,t,r,bn)}function fn(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 yn(e,t=e=>!!e,r="children",n,o){return n(e,"function"==typeof t?t:e=>Jt(e,t),r)}function mn(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(t(e))return e;const n=fn(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){const e=mn(o[i],t,r,n);if(e)return e}}function bn(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{t(e)&&n.push(e);const i=fn(e,r);i&&(o=i)}for(let i=0;i<o.length;i++)o[i]&&bn(o[i],t,r,n);return n}function gn(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(!t(e))return!1;const n=fn(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){if(!gn(o[i],t,r,n))return!1}return!0}var vn=Object.defineProperty,wn=(e,t,r)=>((e,t,r)=>t in e?vn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class _n{constructor(e){wn(this,"item"),wn(this,"_children",[]),wn(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?dn(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 yn(this._children,e,(e=>e.tree.getChildren()),mn)}every(e){return!!yn(this._children,e,(e=>e.tree.getChildren()),gn)}some(e){return hn(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return dn(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}var On=Object.defineProperty,Ln=Object.getOwnPropertySymbols,Pn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable,xn=(e,t,r)=>t in e?On(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jn=(e,t,r)=>xn(e,"symbol"!=typeof t?t+"":t,r);let En=0;class An{constructor(e){jn(this,"options",{}),jn(this,"properties"),jn(this,"tree"),jn(this,"id",En),En+=1,this.options=((e,t)=>{for(var r in t||(t={}))Pn.call(t,r)&&xn(e,r,t[r]);if(Ln)for(var r of Ln(t))In.call(t,r)&&xn(e,r,t[r]);return e})({},e),this.tree=new _n(this)}initProperties(){this.properties=new pn(this,this.options.properties)}}function Cn(e,t){return{[`symbols[${e}]`]:t.join(",")||void 0}}var Mn=Object.defineProperty,kn=Object.defineProperties,Sn=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,Nn=Object.prototype.hasOwnProperty,Rn=Object.prototype.propertyIsEnumerable,Fn=(e,t,r)=>t in e?Mn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Bn=(e,t)=>{for(var r in t||(t={}))Nn.call(t,r)&&Fn(e,r,t[r]);if(Tn)for(var r of Tn(t))Rn.call(t,r)&&Fn(e,r,t[r]);return e},$n=(e,t,r)=>Fn(e,"symbol"!=typeof t?t+"":t,r);class qn{constructor({legendSymbols:e,resourceId:t,connector:r,layerId:n,legend:o,webMap:i,layer:s,onSymbolRenderChange:a}){$n(this,"layerId"),$n(this,"layer"),$n(this,"resourceId"),$n(this,"legendSymbols","expand"),$n(this,"legend"),$n(this,"layerVisibility",!0),$n(this,"onSymbolRenderChange"),$n(this,"webMap"),$n(this,"connector"),e&&(this.legendSymbols=e),this.connector=r,this.layer=s,this.layerId=n,o&&(this.legend=this.createLegend(o)),this.resourceId=t,this.webMap=i,this.onSymbolRenderChange=a}attachLayer(e){this.layerId=String(e.id),this.layer=e}create(){return e=this,t=arguments,r=function*(e={}){if(this.connector){const t=yield this.connector.route("render.legend_symbols",{id:this.resourceId}).get(Bn({},e));return this.legend=t,this.createLegend(t)}},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())}));var e,t,r}createLegend(e){return e.map((e=>{return t=Bn({},e),kn(t,Sn({name:e.display_name,symbol:e.icon}));var t}))}setSymbolRender(e,t){if(this.legend){const r=this.legend.find((t=>t.index===e));if(r){if(r.render!==t){r.render=t;const e=this.legend.filter((e=>e.render)).map((e=>e.index));this.setLegendSymbol(e),this.onSymbolRenderChange&&this.onSymbolRenderChange(e)}}}}setLegendSymbol(e){const t=this._consolidateIntervals(e);t.length||this._hideLayer(),this.layer.updateLayer&&this.layer.updateLayer({params:Bn({},Cn(this.resourceId,t))}),t.length&&this._showLayer()}_hideLayer(){this.layer.options.id&&this.webMap.mapAdapter.hideLayer(this.layer.layer)}_showLayer(){this.layer.options.id&&this.layerVisibility&&this.webMap.showLayer(this.layer.options.id,{silent:!0})}_consolidateIntervals(e){const t=e.slice().sort(((e,t)=>e-t)),r=[];let n=t[0],o=n;for(let i=1;i<=t.length;i++)t[i]===o+1?o=t[i]:(r.push(n===o?`${n}`:`${n}-${o}`),n=t[i],o=n);return r}}var Dn=Object.defineProperty,Un=Object.defineProperties,Vn=Object.getOwnPropertyDescriptors,Gn=Object.getOwnPropertySymbols,zn=Object.prototype.hasOwnProperty,Zn=Object.prototype.propertyIsEnumerable,Wn=(e,t,r)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jn=(e,t)=>{for(var r in t||(t={}))zn.call(t,r)&&Wn(e,r,t[r]);if(Gn)for(var r of Gn(t))Zn.call(t,r)&&Wn(e,r,t[r]);return e},Hn=(e,t)=>Un(e,Vn(t)),Qn=(e,t,r)=>Wn(e,"symbol"!=typeof t?t+"":t,r),Kn=(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 Xn=class e extends An{constructor({webMap:t,item:r,options:n,connector:o,parent:i,noInit:s}){if(super(Jn(Jn({},e.options),n)),Qn(this,"item"),Qn(this,"webMap"),Qn(this,"connector"),Qn(this,"layer"),Qn(this,"legend"),Qn(this,"emitter",new M),Qn(this,"_rootDescendantsCount",0),this.webMap=t,o&&(this.connector=o),i&&this.tree.setParent(i),this.item=r,"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(),s||this._init(r)}static create(t,r,n,o,i){return Kn(this,null,(function*(){const s=new e({webMap:t,item:r,options:n,connector:o,parent:i,noInit:!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 Kn(this,null,(function*(){var t,r;const n=null==(t=this.layer)?void 0:t.id;if(void 0!==n){if(this.connector&&"resourceId"in this.item){const t=Number(this.item.resourceId);if("layer"===this.item.item_type&&this.layer){const o=new qn({connector:this.connector,layerId:n,layer:this.layer,resourceId:t,webMap:this.webMap,legendSymbols:null!=(r=this.item.legend_symbols)?r:void 0,onSymbolRenderChange:e=>{this.webMap.emitter.emit("event-symbol-render:change",{layerId:n,resourceId:t,indexes:e})}});return yield o.create(e),[o]}return[]}}return[]}))}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,n=Hn(Jn({visibility:!1,name:e.display_name},this.options),{params:{resource:"resourceId"in this.item?this.item.resourceId:void 0,item:this.item}});if(delete n.id,this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e&&null!=e.draw_order_position?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,Hn(Jn({updateWmsParams:e.updateWmsParams},n),{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 function(e,t=0){const r=t,n=function(){if(void 0===Po){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),Po=t}return Po}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e;return function(e){return Math.log(e/256)/Math.LN2}(n)}(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor({webMap:this.webMap,item:e,options:this.options,connector:this.connector,parent: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),null!=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=>{this.webMap.emitter.on("layer:toggle",(t=>{if(t.id===e.id){const t=this.properties.get("visibility"),r=this.webMap.isLayerVisible(e);t!==r&&this.properties.set("visibility",r)}})),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}};Qn(Xn,"GetAdapterFromLayerType",{}),Qn(Xn,"options",{properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return hn(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 Jr{getProperty(){const e=this.item.layer;return e&&e&&e.options&&null!=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 Yn=Xn;var eo=Object.defineProperty,to=Object.defineProperties,ro=Object.getOwnPropertyDescriptors,no=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable,so=(e,t,r)=>t in e?eo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ao=(e,t)=>{for(var r in t||(t={}))oo.call(t,r)&&so(e,r,t[r]);if(no)for(var r of no(t))io.call(t,r)&&so(e,r,t[r]);return e},lo=(e,t,r)=>so(e,"symbol"!=typeof t?t+"":t,r),co=(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 uo{constructor(e,t){this.map=e,this.options=t,lo(this,"layer"),lo(this,"NgwWebmapItem",Yn),lo(this,"pixelRadius",10),lo(this,"resourceId"),lo(this,"webmapClassName","webmap"),lo(this,"emitter",new M),lo(this,"_extent"),lo(this,"webmapResource"),lo(this,"_webmapBaselayersIds",[]),lo(this,"_lastActiveBaselayer");const r=t.resourceId;if(Array.isArray(r)?(this.resourceId=r[0],this.options.id=r[1]):this.resourceId=r,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}addLayer(e){return co(this,null,(function*(){var t;this.options=ao(ao({},this.options),e),this.layer=yield this._getWebMapLayerItem();const r=null==(t=this.webmapResource)?void 0:t.constraining_extent;return this.options.useExtentConstrained&&this._extent&&r&&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.webmapResource}showLayer(){return co(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}))}hideLayer(){return co(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}))}setOpacity(e){return co(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.webmapResource;if(e)return _t(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.webmapResource;if(e&&e.bookmark_resource)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 Ir(ao({connector:r,resourceId:t,geom:!1,fields:s?[s]:void 0},e)).then((e=>{const n=[];for(const o of e){const e=new zr({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 co(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 co(this,null,(function*(){const e=[];let t=this.getDependLayers();return t=t.sort(((e,t)=>t.id-e.id)),t.forEach((t=>{const r=t.item,n="style_parent_id"in r?r.style_parent_id:void 0;if(null!=n&&"layer"===r.item_type&&r.layer_identifiable){const r=t.properties.property("visibility");r.get()&&!r.isBlocked()&&e.push(n)}})),e}))}_getWebMapLayerItem(){return co(this,null,(function*(){if(!this.resourceId)return;const e=yield this.getWebMapConfig(this.resourceId);return e&&e.root_item?new Promise((t=>{var r;const n=this.options.connector,o=(null==n?void 0:n.options.auth)?n.getAuthorizationHeaders():void 0,i=n.withCredentials,s=(a=ao({},this.options),l={withCredentials:i,headers:o,drawOrderEnabled:null!=(r=e.draw_order_enabled)&&r},to(a,ro(l)));var a,l;const c=new this.NgwWebmapItem({webMap:this.options.webMap,item:e.root_item,options:s,connector:n});c.emitter.on("init",(()=>{t(c)}))})):void 0}))}getWebMapConfig(e){return co(this,null,(function*(){var t;const r=yield this.options.connector.getResource(e);if(r){const e=r[this.webmapClassName];if(this.webmapResource=e,this._setupBaselayers(r),e)return this._extent=null!=(t=e.initial_extent)?t:void 0,this._updateItemsParams(e.root_item,this.options.webMap,r),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)Bt({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){var n;if(e)if("group"===e.item_type||"root"===e.item_type){if("children"in e&&e.children){const n=e.children.map((e=>this._updateItemsParams(e,t,r)));e.children=n}"root"===e.item_type&&(e.display_name=r.resource.display_name)}else if("layer"===e.item_type){const r=e,n=b(this.options.connector.options.baseUrl+"/api/component/render/image"),o=r.layer_style_id;r.url=n,r.resourceId=o,r.updateWmsParams=e=>Oo(e,o);const i=jr({options:{adapter:r.layer_adapter.toUpperCase(),resource:o},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e=ao(ao({},r),i)}return"function"==typeof(null==(n=this.options.nativeOptions)?void 0:n.beforeItemCreated)&&(e=this.options.nativeOptions.beforeItemCreated(e)),e}}var po=Object.defineProperty,ho=Object.defineProperties,fo=Object.getOwnPropertyDescriptors,yo=Object.getOwnPropertySymbols,mo=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable,go=(e,t,r)=>t in e?po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,vo=(e,t)=>{for(var r in t||(t={}))mo.call(t,r)&&go(e,r,t[r]);if(yo)for(var r of yo(t))bo.call(t,r)&&go(e,r,t[r]);return e},wo=(e,t)=>ho(e,fo(t)),_o=(e,t)=>{var r={};for(var n in e)mo.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&yo)for(var n of yo(e))t.indexOf(n)<0&&bo.call(e,n)&&(r[n]=e[n]);return r};function Oo(e,t){const r=e,{bbox:n,width:o,height:i,nd:s}=r,a=_o(r,["bbox","width","height","nd"]);return wo(vo({},a),{resource:Array.isArray(t)?t.join(","):t,extent:n,size:o+","+i,timestamp:Date.now(),nd:null!=s?s:200})}const Lo={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 Po;const Io={tms:"TILE"};var xo=Object.defineProperty,jo=Object.getOwnPropertySymbols,Eo=Object.prototype.hasOwnProperty,Ao=Object.prototype.propertyIsEnumerable,Co=(e,t,r)=>t in e?xo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Mo=(e,t)=>{for(var r in t||(t={}))Eo.call(t,r)&&Co(e,r,t[r]);if(jo)for(var r of jo(t))Ao.call(t,r)&&Co(e,r,t[r]);return e},ko=(e,t,r)=>Co(e,"symbol"!=typeof t?t+"":t,r);const So="https://qms.nextgis.com";function To(e,t=So,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)Eo.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&jo)for(var n of jo(e))t.indexOf(n)<0&&Ao.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=So);class o{constructor(e,t){ko(this,"qms"),ko(this,"options"),ko(this,"map"),this.map=e;const n=Mo(Mo({},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",b(e),!0),n.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=Io[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=Mo(Mo({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 No=Object.defineProperty,Ro=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,$o=(e,t,r)=>t in e?No(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qo=(e,t)=>{for(var r in t||(t={}))Fo.call(t,r)&&$o(e,r,t[r]);if(Ro)for(var r of Ro(t))Bo.call(t,r)&&$o(e,r,t[r]);return e},Do=(e,t,r)=>$o(e,"symbol"!=typeof t?t+"":t,r);class Uo{constructor(e){Do(this,"options",{url:"https://qms.nextgis.com"}),Do(this,"url"),this.options=qo(qo({},this.options),e),this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return To({webMap:e,url:this.url})}}Do(Uo,"utils",{createQmsAdapter:To});var Vo=Object.defineProperty,Go=Object.defineProperties,zo=Object.getOwnPropertyDescriptors,Zo=Object.getOwnPropertySymbols,Wo=Object.getPrototypeOf,Jo=Object.prototype.hasOwnProperty,Ho=Object.prototype.propertyIsEnumerable,Qo=Reflect.get,Ko=(e,t,r)=>t in e?Vo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Xo=(e,t)=>{for(var r in t||(t={}))Jo.call(t,r)&&Ko(e,r,t[r]);if(Zo)for(var r of Zo(t))Ho.call(t,r)&&Ko(e,r,t[r]);return e},Yo=(e,t)=>Go(e,zo(t)),ei=(e,t,r)=>Qo(Wo(e),r,t),ti=(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())}));var ri=(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 ni(e){return function(e){return ri(this,null,(function*(){const t=yield Ir(e),r=[];return t.forEach((e=>{r.push(ar(e))})),r}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const oi=["fields","intersects","limit","orderBy","strategy"];function ii(e){const t={};return oi.forEach((r=>{const n=e[r];void 0!==n&&(t[r]=n)})),t}var si=Object.defineProperty,ai=Object.defineProperties,li=Object.getOwnPropertyDescriptors,ci=Object.getOwnPropertySymbols,ui=Object.getPrototypeOf,pi=Object.prototype.hasOwnProperty,hi=Object.prototype.propertyIsEnumerable,di=Reflect.get,fi=(e,t,r)=>t in e?si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,yi=(e,t)=>{for(var r in t||(t={}))pi.call(t,r)&&fi(e,r,t[r]);if(ci)for(var r of ci(t))hi.call(t,r)&&fi(e,r,t[r]);return e},mi=(e,t)=>ai(e,li(t)),bi=(e,t,r)=>fi(e,"symbol"!=typeof t?t+"":t,r),gi=(e,t,r)=>di(ui(e),r,t),vi=(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 wi(e){return vi(this,null,(function*(){var t,r;const{item:n,webMap:o,Adapter:i,connector:s,layerOptions:a,addLayerOptionsPriority:l}=e,c=null==l||l,u=a,p=i||a.Adapter||o.mapAdapter.layerAdapters.GEOJSON,h=[];let d,f,y=!1;const m=yield At(u,s);(null==(r=null==(t=u.adapterOptions)?void 0:t.popupOptions)?void 0:r.fromProperties)&&(u.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,n));const b=(e,t)=>vi(this,null,(function*(){v(),f=new AbortController;const r=f.signal;return(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",f.abort),(t=t||{}).signal=r,d={filters:e,options:t},ni(yi({resourceId:m,filters:e,connector:s,cache:!0},t))}));let g=!1;const v=()=>{f&&(f.abort(),f=void 0)};class w extends p{constructor(){super(...arguments),bi(this,"emitter",new M),bi(this,"__onMapMove"),bi(this,"__onMapMoveStart"),bi(this,"__enableMapMoveListener"),bi(this,"__disableMapMoveListener")}addLayer(e){return vi(this,null,(function*(){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==u.id&&(e.id=u.id),n&&n.vector_layer&&(e.type=Lo[n.vector_layer.geometry_type]),u.adapterOptions&&(e=c?yi(yi({},u.adapterOptions),e):yi(yi({},e),u.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=gi(w.prototype,this,"addLayer").call(this,e);let s;return d={filters:e.propertiesFilter,options:ii(e)},t&&(s=this.updateLayer()),r&&s&&(yield s),o&&o.startsWith("BBOX")&&!y&&this._addBboxEventListener(),i}))}getExtent(){return this.getBounds()}getBounds(){return vi(this,null,(function*(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?Lt({connector:s,resourceId:n.resource.id}):gi(w.prototype,this,"getBounds")?gi(w.prototype,this,"getBounds").call(this):void 0}))}beforeRemove(){g=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,v()}getCount(){return function({connector:e,resourceId:t,cache:r=!0,signal:n}){return e.route("feature_layer.feature.count",{id:t}).get({cache:r,signal:n}).then((e=>e.total_count))}({connector:s,resourceId:m,cache:!0})}updateLayer(e){return vi(this,null,(function*(){var t;const r=e||d||{};if(null==(t=this.options.strategy)?void 0:t.startsWith("BBOX")){yield o.onLoad("create"),r.options=r.options||{},r.options.intersects=o.getBounds();const{minZoom:e,maxZoom:t}=this.options,n=o.getZoom();if(void 0!==n){if(void 0!==e&&n<e)return;if(void 0!==t&&n>t)return;if(y)return}}if(!g){try{this.emitter.emit("preupdate",r),o._emitLayerEvent("layer:preupdate",u.id||"",r);const e=yield b(r.filters,mi(yi({},r.options),{srs:this.options.srs}));let t=e;const n=yield this.getCount();if("BBOX+"===this.options.strategy){t={type:"FeatureCollection",features:[]};for(const r of e.features)-1===h.indexOf(String(r.id))&&(h.push(String(r.id)),t.features.push(r));y=void 0!==n&&h.length>=n,yield o.addLayerData(this,t)}else y=void 0!==n&&e.features.length>=n,yield o.setLayerData(this,e);this.emitter.emit("updated",e),o._emitLayerEvent("layer:updated",u.id||"",{data:e,newData:t,isFull:y})}catch(n){if(n instanceof Error&&"AbortError"!==n.name)throw n}gi(w.prototype,this,"updateLayer")&&gi(w.prototype,this,"updateLayer").call(this)}}))}propertiesFilter(e,t){return vi(this,null,(function*(){if(v(),this.filter&&y)this.filter((t=>{const r=t.feature&&t.feature.properties&&fr(yi({},t.feature.properties));return!r||Jt(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=yield b(e,mi(yi({},t),{srs:this.options.srs}));this.setData(r)}}))}removeFilter(){d=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()},o.emitter.on("layer:show",this.__enableMapMoveListener),o.emitter.on("layer:hide",this.__disableMapMoveListener),this.__enableMapMoveListener(this)}_removeBboxEventListener(){this.__enableMapMoveListener&&o.emitter.on("layer:show",this.__enableMapMoveListener),this.__disableMapMoveListener&&o.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=v,o.emitter.on("movestart",this.__onMapMoveStart),o.emitter.on("moveend",this.__onMapMove)}_removeMoveEventListener(){this.__onMapMove&&o.emitter.removeListener("moveend",this.__onMapMove),this.__onMapMoveStart&&o.emitter.removeListener("movestart",this.__onMapMoveStart)}}return w}))}var _i=(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())}));var Oi=Object.defineProperty,Li=Object.defineProperties,Pi=Object.getOwnPropertyDescriptors,Ii=Object.getOwnPropertySymbols,xi=Object.prototype.hasOwnProperty,ji=Object.prototype.propertyIsEnumerable,Ei=(e,t,r)=>t in e?Oi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ai=(e,t)=>{for(var r in t||(t={}))xi.call(t,r)&&Ei(e,r,t[r]);if(Ii)for(var r of Ii(t))ji.call(t,r)&&Ei(e,r,t[r]);return e},Ci=(e,t)=>Li(e,Pi(t)),Mi=(e,t,r)=>Ei(e,"symbol"!=typeof t?t+"":t,r),ki=(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 Si(e){return ki(this,arguments,(function*({layerOptions:e,connector:t,webMap:r,item:n}){const i=n.resource.cls;let s=e.adapter||i&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[i]||"IMAGE";if(void 0!==s&&(e.adapter=s),"IMAGE"===s){const e=r.getLayerAdapters();!e||e.IMAGE||(s="TILE")}const a=r.mapAdapter.layerAdapters[s];if(a){const i=yield At(e,t);return class extends a{constructor(s,a){super(s,a),this.map=s,Mi(this,"item",n),Mi(this,"resourceId",i),Mi(this,"blocked",!1),Mi(this,"layerVisibility");const l=jr({options:e,webMap:r,baseUrl:t.options.baseUrl||""});if(l){const t=Ci(Ai(Ai({},l),e.adapterOptions),{params:{resource:i},layers:l.layers||String(i),resourceId:i});e.adapterOptions&&o(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options=Ai(Ai({},this.options),t)}}addLayer(e){return super.addLayer(Ai(Ai({},this.options),e))}getIdentificationIds(){return ki(this,null,(function*(){if(this.item){if("MVT"===s)return[this.item.resource.id];if(this.item.resource.parent){const e=this.item.resource.parent.id;if(o(e))return[e]}}return[]}))}getLegend(e){return ki(this,null,(function*(){const n=this.options.id;if(void 0!==n){const o=yield t.route("render.legend_symbols",{id:i}).get(Ai({cache:!0},e));return[new qn({layerId:n,layer:this,resourceId:i,webMap:r,legend:o})]}return[]}))}}}throw new Error(s+" not supported yet. Only TILE")}))}var Ti=Object.defineProperty,Ni=Object.defineProperties,Ri=Object.getOwnPropertyDescriptors,Fi=Object.getOwnPropertySymbols,Bi=Object.prototype.hasOwnProperty,$i=Object.prototype.propertyIsEnumerable,qi=(e,t,r)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Di=(e,t)=>{for(var r in t||(t={}))Bi.call(t,r)&&qi(e,r,t[r]);if(Fi)for(var r of Fi(t))$i.call(t,r)&&qi(e,r,t[r]);return e},Ui=(e,t)=>Ni(e,Ri(t)),Vi=(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 Gi={},zi=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];function Zi(e){return Vi(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 Wi(Ui(Di({},e),{resource:s.resource.id}),t,r)}))}function Wi(e,t,n){return Vi(this,null,(function*(){let o,i;const s=e.adapter,a=yield At(e,n);if(a){const r=e.resource;if(i=r&&r.resource&&void 0!==r.resource.id?r:yield n.getResource(a),!i)throw"Resource item is not found";{const r=i.resource.cls,l={layerOptions:Ui(Di({},e),{resource:a}),connector:n,webMap:t,item:i};if(-1!==zi.indexOf(r))if("webmap"===r)o=function(e){return _i(this,arguments,(function*({layerOptions:e,webMap:t,connector:r}){const n=yield At(e,r);return class extends uo{constructor(e){super(e,{url:"",webMap:t,resourceId:n,connector:r})}}}))}(l);else if("vector_layer"===r||"postgis_layer"===r){const t=l.layerOptions.adapterOptions||{};if(t.type=t.type||i.vector_layer&&Lo[i.vector_layer.geometry_type],l.layerOptions.adapterOptions=t,e.adapterOptions=l,void 0!==s&&"GEOJSON"!==s){if("MVT"!==s)return Zi(l);o=Si(l)}else o=wi(l)}else{if("raster_layer"===r)return Zi(l);if("basemap_layer"===r)o=function(e){return ti(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(Uo.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 ti(this,null,(function*(){if(n)return ei(e.prototype,this,"addLayer").call(this,Yo(Xo({},t),{url:n}))}))}}return e}}}}))}(l);else if("GEOJSON"===s&&i.resource.parent){const t=yield n.getResource(i.resource.parent.id);if(t){const r=Ui(Di({},e),{resource:i.resource.parent.id});o=wi(Ui(Di({},l),{item:t,layerOptions:r}))}}else o=Si(l)}else{if(!Gi[r])throw`Resource class '${r}' not yet supported.`;{const e=Gi[r];let t;t=s&&"function"!=typeof t?e[s]:e,t&&(o=t(l))}}}}if(o)return o.then((e=>{if(e){const t=e;return i&&(t.prototype.item=i,t.prototype.resourceId=i.resource.id,t.prototype.connector=n),r(t,[Et],{replace:!1}),t}}))}))}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},es=(e,t,r)=>Xi(e,"symbol"!=typeof t?t+"":t,r);class ts{constructor(e){if(this.options=e,es(this,"url"),es(this,"connector"),es(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 pt({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){Gi[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(uo,Yi({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 uo{constructor(e,r){super(e,r=vo(vo({},t),r))}};var t}}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},ls=(e,t,r)=>ss(e,"symbol"!=typeof t?t+"":t,r),cs=(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 us{constructor(e){ls(this,"id"),ls(this,"label"),ls(this,"layerId"),ls(this,"parent"),ls(this,"fields"),ls(this,"geom"),ls(this,"extensions"),ls(this,"connector"),ls(this,"_item"),ls(this,"_geojson"),ls(this,"_resource"),ls(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):Br(as({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 cs(this,null,(function*(){return(yield this.composite(e)).feature_layer}))}composite(e){return cs(this,null,(function*(){if(this._resource&&this._resource.feature_layer)return this._resource;const t=yield this.connector.getResource(this.layerId,e);if(!t)throw new Error("Resource does not exist");if(!t.feature_layer)throw new Error("Resource is not a vector layer");return this._resource=t,t}))}getBounds(e){return this._extent?Promise.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:n=!0,signal:o}){return r.route("feature_layer.feature.item_extent",{id:Number(e),fid:t}).get({cache:n,signal:o}).then((e=>{if(e&&e.extent){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}(as({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)))))}}function ps(e){return t=this,r=null,n=function*(){return ar(yield Br(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}function hs(e,t){return r=this,n=null,o=function*(){var r,n;const o=yield e.route("pyramid.settings").get({query:{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="";const a=null==(n=(yield e.route("pyramid.csettings").get({query:{pyramid:["header_logo"]}})).pyramid)?void 0:n.header_logo;if(!a)return;{const[e,t]=a,r=atob(t),n=new Array(r.length);for(let s=0;s<r.length;s++)n[s]=r.charCodeAt(s);const o=new Uint8Array(n),i=new Blob([o],{type:e}),l=(window.URL||window.webkitURL).createObjectURL(i);s.src=l}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(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}var ds=Object.defineProperty,fs=Object.defineProperties,ys=Object.getOwnPropertyDescriptors,ms=Object.getOwnPropertySymbols,bs=Object.prototype.hasOwnProperty,gs=Object.prototype.propertyIsEnumerable,vs=(e,t,r)=>t in e?ds(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ws=(e,t)=>{for(var r in t||(t={}))bs.call(t,r)&&vs(e,r,t[r]);if(ms)for(var r of ms(t))gs.call(t,r)&&vs(e,r,t[r]);return e},_s=(e,t)=>fs(e,ys(t));function Os(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=Ls(s.features,Number(o),t);if(e.length&&(n.push(...e),!t))break}}return n}function Ls(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 Ps(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]=a(e,t);return`${r} ${n}`})).join(",")}))`}(t);if(!i)throw new Error("Not valid geometry format to make intersection");const s={geom:i,srs:3857,layers:o};return e.connector.route("feature_layer.identify").post({json:s,signal:r,cache:n})}const Is={};function xs(e){return Is[e]}function js(e,t){Is[e]=t}function Es(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}function As(e){return(t,r)=>{const n=t.map((e=>e()));return e(n,r)}}const Cs={"!":As((function([e]){return!e})),"!=":As((function([e,t]){return e!==t})),"<":As((function([e,t]){return e<t})),"<=":As((function([e,t]){return e<=t})),"==":As((function([e,t]){return e===t})),">":As((function([e,t]){return e>t})),">=":As((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()}},Ms={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 ks(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return Ss(e);if("string"==typeof(t=e)&&t in Ms)return function(e){return Ss(Ms[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 Ss(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 Ts(e,t,r,n,o){if("number"==typeof r&&"number"==typeof o)return r+(e-t)/(n-t)*(o-r);try{const i=ks(r),s=ks(o);return function(e){return`rgb(${e.join(",")})`}(i.map(((r,o)=>Math.ceil(Ts(e,t,r,n,s[o])))))}catch(i){console.log(i)}throw new Error("Unsupported output type for linear interpolation.")}const Ns={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 Ts(n,e,t,s,a)}throw new Error("Invalid interpolation type.")}};const Rs={get:As((function([e,t],r){const n=t||r;return n&&"object"==typeof n&&e in n?n[e]:null})),length:As((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:As((function([e,t]){return t[e]})),has:As((function([e,t],r){const n=t||r;return!(!n||"object"!=typeof n||!(e in n))})),in:As((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":As((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:As((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}.`)}))},Fs={"+":As((e=>e.reduce(((e,t)=>e+t),0))),"-":As((e=>e.reduce(((e,t)=>e-t)))),"*":As((e=>e.reduce(((e,t)=>e*t),1))),"/":As((e=>e.reduce(((e,t)=>e/t)))),"%":As((e=>e[0]%e[1])),"^":As((e=>Math.pow(e[0],e[1]))),abs:As((e=>Math.abs(e[0]))),acos:As((e=>Math.acos(e[0]))),asin:As((e=>Math.asin(e[0]))),atan:As((e=>Math.atan(e[0]))),ceil:As((e=>Math.ceil(e[0]))),cos:As((e=>Math.cos(e[0]))),e:()=>Math.E,floor:As((e=>Math.floor(e[0]))),ln:As((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:As((e=>Math.log10(e[0]))),log2:As((e=>Math.log2(e[0]))),max:As((e=>Math.max(...e))),min:As((e=>Math.min(...e))),pi:()=>Math.PI,round:As((e=>Math.round(e[0]))),sin:As((e=>Math.sin(e[0]))),sqrt:As((e=>Math.sqrt(e[0]))),tan:As((e=>Math.tan(e[0])))},Bs={concat:As((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:As((e=>String(e[0]).toLowerCase())),upcase:As((e=>String(e[0]).toUpperCase()))},$s=(e,t,r)=>{try{const n=e(t,r);if(void 0!==n)return n}catch(n){}};function qs(e){return(t,r)=>{for(const n of t){const t=$s(e,n,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}const Ds={array:As((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:As(qs((e=>"boolean"==typeof e?e:void 0))),literal:As((([e])=>e)),number:As(qs((e=>"number"==typeof e?e:void 0))),object:As(qs((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:As(qs((e=>"string"==typeof e?e:void 0))),"to-boolean":As(qs(Boolean)),"to-number":As(qs(Number)),"to-string":As(qs(String)),typeof:As((([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 Us=Object.defineProperty,Vs=Object.getOwnPropertySymbols,Gs=Object.prototype.hasOwnProperty,zs=Object.prototype.propertyIsEnumerable,Zs=(e,t,r)=>t in e?Us(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ws=(e,t)=>{for(var r in t||(t={}))Gs.call(t,r)&&Zs(e,r,t[r]);if(Vs)for(var r of Vs(t))zs.call(t,r)&&Zs(e,r,t[r]);return e};function Js(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in Hs&&r.length>0}return!1}const Hs=Ws(Ws(Ws(Ws(Ws(Ws({},Fs),Ds),Bs),Rs),Cs),Ns);function Qs(e,t={}){const[r,...n]=e,o=Hs[r];if(o)return o(n.map((e=>()=>Js(e)?Qs(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}var Ks=Object.defineProperty,Xs=Object.getOwnPropertySymbols,Ys=Object.prototype.hasOwnProperty,ea=Object.prototype.propertyIsEnumerable,ta=(e,t,r)=>t in e?Ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ra=(e,t)=>{for(var r in t||(t={}))Ys.call(t,r)&&ta(e,r,t[r]);if(Xs)for(var r of Xs(t))ea.call(t,r)&&ta(e,r,t[r]);return e};function na(e){return t=>{const r=t.properties;return!!r&&Qs(e,r)}}const oa=["iconSize","iconAnchor"];function ia(e){return"function"==typeof e}var sa=Object.defineProperty,aa=Object.getOwnPropertySymbols,la=Object.prototype.hasOwnProperty,ca=Object.prototype.propertyIsEnumerable,ua=(e,t,r)=>t in e?sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,pa=(e,t)=>{for(var r in t||(t={}))la.call(t,r)&&ua(e,r,t[r]);if(aa)for(var r of aa(t))ca.call(t,r)&&ua(e,r,t[r]);return e};function ha(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=>Wt(e,t[0])));return n?pa(pa({},t),n[1]):t}}function da({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const n in e)if(-1===oa.indexOf(n)){const o=n,i=e[o];Js(i)&&(t=!0,r[o]=na(i))}if(t)return t=>{const n={};for(const e in r)n[e]=r[e](t);return ra(ra({},e),n)}}(e);if(r){const n=e=>ya({paint:r(e),defaultPaint:t});return n.paint=fa({paint:e,defaultPaint:t}),n}return fa({paint:e,defaultPaint:t})}function fa({paint:e,defaultPaint:t}){var r;let n=pa({},t);return n=pa(pa({},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 ya({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let n=pa({},t);if(ia(e)){const n=n=>{const o=ya({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=>ya({paint:ha(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=ya({paint:o,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;n=da({paint:e,defaultPaint:t})}return ia(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}function ma(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 ba(e){let t;if("FeatureCollection"===e.type){t=ma(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=ma(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}const ga={polygon:"path",line:"path",point:"circle"},va={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function wa(e){if(e.data){const t=va[ba(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":ga[t]),e.type=e.type||t}return e}var _a=Object.defineProperty,Oa=(e,t,r)=>((e,t,r)=>t in e?_a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class La{constructor(){Oa(this,"backspace",8),Oa(this,"tab",9),Oa(this,"enter",13),Oa(this,"shift",16),Oa(this,"ctrl",17),Oa(this,"alt",18),Oa(this,"pause/break",19),Oa(this,"caps_lock",20),Oa(this,"escape",27),Oa(this,"page_up",33),Oa(this,"page_down",34),Oa(this,"end",35),Oa(this,"home",36),Oa(this,"left_arrow",37),Oa(this,"up_arrow",38),Oa(this,"right_arrow",39),Oa(this,"down_arrow",40),Oa(this,"insert",45),Oa(this,"delete",46),Oa(this,"left_window_key",91),Oa(this,"right_window_key",92),Oa(this,"select_key",93),Oa(this,"numpad_0",96),Oa(this,"numpad_1",97),Oa(this,"numpad_2",98),Oa(this,"numpad_3",99),Oa(this,"numpad_4",100),Oa(this,"numpad_5",101),Oa(this,"numpad_6",102),Oa(this,"numpad_7",103),Oa(this,"numpad_8",104),Oa(this,"numpad_9",105),Oa(this,"multiply",106),Oa(this,"add",107),Oa(this,"subtract",109),Oa(this,"decimal_point",110),Oa(this,"divide",111),Oa(this,"f1",112),Oa(this,"f2",113),Oa(this,"f3",114),Oa(this,"f4",115),Oa(this,"f5",116),Oa(this,"f6",117),Oa(this,"f7",118),Oa(this,"f8",119),Oa(this,"f9",120),Oa(this,"f10",121),Oa(this,"f11",122),Oa(this,"f12",123),Oa(this,"num_lock",144),Oa(this,"scroll_lock",145),Oa(this,"semi-colon",186),Oa(this,"equal_sign",187),Oa(this,",",188),Oa(this,"-",189),Oa(this,".",190),Oa(this,"/",191),Oa(this,"`",192),Oa(this,"[",219),Oa(this,"\\",220),Oa(this,"]",221),Oa(this,"'",222)}}var Pa=Object.defineProperty,Ia=(e,t,r)=>((e,t,r)=>t in e?Pa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);var xa=Object.defineProperty,ja=(e,t,r)=>((e,t,r)=>t in e?xa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Ea{constructor(e,t){this.webMap=e,ja(this,"name"),ja(this,"event"),ja(this,"value"),t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event="string"==typeof t.event?[t.event]:t.event))}getValue(){return this.value}setValue(e){this.value=e}}var Aa=Object.defineProperty,Ca=(e,t,r)=>((e,t,r)=>t in e?Aa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Ma extends Ea{constructor(){super(...arguments),Ca(this,"name","bounds"),Ca(this,"event",["moveend"])}getValue(){return this.webMap.getBounds()}setValue(e){this.webMap.setView({bounds:e})}toString(){const e=this.getValue();if(e)return e.slice(0,4).map((e=>e.toFixed(5))).join("_")}parse(e){return e.split("_").map(Number)}}var ka=Object.defineProperty,Sa=(e,t,r)=>((e,t,r)=>t in e?ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Ta extends Ea{constructor(){super(...arguments),Sa(this,"name","center"),Sa(this,"event",["moveend"])}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(){const e=this.getValue();if(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}return""}parse(e){return e.split("_").map(Number)}}var Na=Object.defineProperty,Ra=(e,t,r)=>((e,t,r)=>t in e?Na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Fa extends Ea{constructor(){super(...arguments),Ra(this,"name","zoom"),Ra(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(){return String(this.getValue())}parse(e){return Number(e)}}var Ba=Object.defineProperty,$a=(e,t,r)=>((e,t,r)=>t in e?Ba(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),qa=(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 Da=0;const Ua={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},Va=class e{constructor(t){$a(this,"options",Ua),$a(this,"emitter",new M),$a(this,"keys",e.keys),$a(this,"mapAdapter"),$a(this,"runtimeParams",[]),$a(this,"getPaintFunctions",e.getPaintFunctions),$a(this,"mapStateItems",[Ta,Fa,Ma]),$a(this,"id",Da++),$a(this,"mapState",[]),$a(this,"_initMapState",{}),$a(this,"_starterKits"),$a(this,"_extent"),$a(this,"_eventsStatus",{}),$a(this,"_coordFromMapClickAbort"),$a(this,"_mapEvents",{}),this.mapAdapter=t.mapAdapter,this._starterKits=t.starterKits||[],t&&(this.options=n(Ua||{},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 qa(this,null,(function*(){return this.getEventStatus("create")||(yield this._setInitMapState(this.mapStateItems),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()}mapStateWithFunc(e){const t={};return this.mapState.forEach((r=>{t[r.name]=e(r)})),t}getStateAsString(){return this.mapStateWithFunc((e=>e.toString()))}getState(){return this.mapStateWithFunc((e=>e.getValue()))}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.onLoad().then((()=>{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:l(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&&o(t)?this.mapAdapter.setView(r,t):(r&&this.mapAdapter.setCenter(r),o(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=>o(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(),s(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 qa(this,null,(function*(){}))}_onLoadSync(){return qa(this,null,(function*(){}))}_setupMap(){return qa(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),o(e.maxzoom)&&(this.options.zoom=e.maxzoom),o(e.minzoom)&&(this.options.zoom=e.minzoom),o(e.maxzoom)&&o(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){this.mapState.filter((t=>t.event.includes(e))).forEach((e=>{const t=e.toString();this.runtimeParams.forEach((r=>{r.set(e.name,t)}))}))}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)}))}};$a(Va,"keys",new class{constructor(){Ia(this,"keyCodeAlias",new La),Ia(this,"keys",{}),Ia(this,"_windowOnFocus"),Ia(this,"_keysPressed"),Ia(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={}}}),$a(Va,"getPaintFunctions");let Ga=Va;var za=Object.defineProperty,Za=Object.defineProperties,Wa=Object.getOwnPropertyDescriptors,Ja=Object.getOwnPropertySymbols,Ha=Object.prototype.hasOwnProperty,Qa=Object.prototype.propertyIsEnumerable,Ka=(e,t,r)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Xa=(e,t)=>{for(var r in t||(t={}))Ha.call(t,r)&&Ka(e,r,t[r]);if(Ja)for(var r of Ja(t))Qa.call(t,r)&&Ka(e,r,t[r]);return e},Ya=(e,t)=>Za(e,Wa(t)),el=(e,t,r)=>Ka(e,"symbol"!=typeof t?t+"":t,r),tl=(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 rl extends Ga{constructor(e){super(e),el(this,"_layersIdCounter",1),el(this,"_layersOrderCounter",1),el(this,"_baselayers",[]),el(this,"_layers",{}),el(this,"_selectedLayers",[]);const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}fitLayer(e,t){return tl(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 tl(this,null,(function*(){return yield this.addLayer(e,Ya(Xa({},t),{baselayer:!0}),void 0)}))}addLayer(e){return tl(this,arguments,(function*(e,t={},r){var n,i;const s=this._layersIdCounter++,a=o(r)?r:void 0!==t.order?t.order:this.reserveOrder();let l;"string"==typeof e?l=this.getLayerAdapter(e):"function"==typeof e?l=e:"then"in e&&(l=yield e);const c=t;this._updateGeoJsonOptions(c);const u=null==(n=(t=Xa({id:String(s),order:a},t)).visibility)||n;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:l});e&&(e.options&&(t=e.options),e.adapter&&(l=e.adapter))}if(void 0!==l){const e=new l(this.mapAdapter.map,t);let r;e.options=Xa(Xa({},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(s),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!=(i=e.options.order)?i:a,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,c.filter&&this.filterLayer(e,c.filter),t.baselayer&&this._baselayers.push(r),u&&(yield this.showLayer(r)));const o=t.opacity;null!=o&&o<=1&&this.setLayerOpacity(e,o);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 tl(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 tl(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=wa(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",Ya(Xa({},t),{url:e}))}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",Ya(Xa({},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=>tl(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,t){const r=this.getLayer(e);if(r){if(r.updateLayer)return Promise.resolve(r.updateLayer(t));if(this.isLayerVisible(r))return this.hideLayer(r,{silent:!0}).then((()=>this.showLayer(r,{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||Jt(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(o(t)&&n.startsWith("layer:")){const e=n.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}_onLayerClick(e){return tl(this,null,(function*(){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerDoubleClick(e){return tl(this,null,(function*(){return this._emitLayerEvent("layer:dblclick",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerSelect(e){return tl(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:i,onLayerClick:s,onMouseOut:a,onMouseOver:l}=e,c=n||s,u=i||s;e.onClick=e=>(c&&c(e),this._onLayerClick(e)),e.onDoubleClick=e=>(u&&u(e),this._onLayerDoubleClick(e)),e.onMouseOut=e=>{const t=e.layer.id;a&&a(e),o(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;l&&l(e),o(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const p=t||r;e.onSelect=e=>(p&&p(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=ya({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=ya({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}var nl=Object.defineProperty,ol=(e,t,r)=>((e,t,r)=>t in e?nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),il=(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 sl=class e extends rl{constructor(){super(...arguments),ol(this,"_loadControlQueue",{"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]}),ol(this,"_isControlLoading",{"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1})}addControl(e,t,r){return il(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,(()=>il(this,null,(function*(){const r=yield n,o=this.mapAdapter.addControl(r,t);e(o)}))))}))}))}createControl(e,t){return il(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}))}createButtonControl(e){return il(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}))}createToggleControl(e){return il(this,null,(function*(){return yield this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?Es(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 il(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}))}};ol(sl,"controls",{CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)});let al=sl;var ll=Object.getOwnPropertySymbols,cl=Object.prototype.hasOwnProperty,ul=Object.prototype.propertyIsEnumerable,pl=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),hl=(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())})),dl=(e,t,r)=>(t=e[pl("asyncIterator")])?t.call(e):(e=e[pl("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 fl extends al{constructor(e){super(e),this._addControls(),js(this.id,this)}static get(e){return xs(e)}_addLayerProviders(){return hl(this,null,(function*(){try{for(var e,t,r,n=dl(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=dl(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 hl(this,null,(function*(){try{for(var e,t,r,n=dl(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)cl.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&ll)for(var n of ll(e))t.indexOf(n)<0&&ul.call(e,n)&&(r[n]=e[n]);return r})(n,["position"]);this.addControl(t,o||"top-left",i)})),this._emitStatusEvent("controls:create")}}function yl(){return["ZOOM","ATTRIBUTION"]}var ml=Object.defineProperty,bl=Object.defineProperties,gl=Object.getOwnPropertyDescriptors,vl=Object.getOwnPropertySymbols,wl=Object.prototype.hasOwnProperty,_l=Object.prototype.propertyIsEnumerable,Ol=(e,t,r)=>t in e?ml(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ll=(e,t)=>{for(var r in t||(t={}))wl.call(t,r)&&Ol(e,r,t[r]);if(vl)for(var r of vl(t))_l.call(t,r)&&Ol(e,r,t[r]);return e},Pl=(e,t)=>bl(e,gl(t));function Il(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(Pl(Ll({},r),{resource:t}));else if(Array.isArray(t)){const[o,i]=t;e.push(Ll(Pl(Ll({},r),{resource:o,id:i}),n))}else"object"==typeof t&&e.push(Ll(Ll(Ll({},r),t),n))}var xl=Object.defineProperty,jl=Object.defineProperties,El=Object.getOwnPropertyDescriptors,Al=Object.getOwnPropertySymbols,Cl=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable,kl=(e,t,r)=>t in e?xl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Sl={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 Tl(e){const t=[new Uo];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 pt({baseUrl:e.baseUrl||"",auth:e.auth,withCredentials:e.withCredentials}),(e=n(Sl,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new ts({connector:e.connector,auth:e.auth})),r=((e,t)=>{for(var r in t||(t={}))Cl.call(t,r)&&kl(e,r,t[r]);if(Al)for(var r of Al(t))Ml.call(t,r)&&kl(e,r,t[r]);return e})({},e),e=jl(r,El({starterKits:t,create:!1}))}var Nl=Object.defineProperty,Rl=Object.defineProperties,Fl=Object.getOwnPropertyDescriptors,Bl=Object.getOwnPropertySymbols,$l=Object.getPrototypeOf,ql=Object.prototype.hasOwnProperty,Dl=Object.prototype.propertyIsEnumerable,Ul=Reflect.get,Vl=(e,t,r)=>t in e?Nl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gl=(e,t)=>{for(var r in t||(t={}))ql.call(t,r)&&Vl(e,r,t[r]);if(Bl)for(var r of Bl(t))Dl.call(t,r)&&Vl(e,r,t[r]);return e},zl=(e,t)=>Rl(e,Fl(t)),Zl=(e,t,r)=>Vl(e,"symbol"!=typeof t?t+"":t,r),Wl=(e,t,r)=>Ul($l(e),r,t),Jl=(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 Hl=class e extends fl{constructor(e){super(Tl(e)),Zl(this,"emitter",new M),Zl(this,"connector"),Zl(this,"_ngwLayers",{}),Zl(this,"$$selectFromNgwRaster"),Zl(this,"$$selectFromNgwVector"),Zl(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 Jl(this,null,(function*(){return yield this.onLoad("controls:create"),Wl(e.prototype,this,"addControl").call(this,t,r,n)}))}addNgwLayer(e){return Jl(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(o(this.options.baseUrl))try{o(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},o(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),Wi(e,t,r)}(e,this,this.connector),r=Gl(Gl({visibility:!0},e),e.adapterOptions),n=yield this.addLayer(t,r),i=n&&this.getLayerId(n);if(n&&i&&(this._ngwLayers[i]={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(i){const e=m(n)&&"id"in n?n.id:t||r||n;console.error(`Can't add NGW layer ${e}.`,i)}}))}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 Br(Gl({connector:this.connector},e))}fetchNgwLayerItems(e){return Ir(Gl({connector:this.connector},e))}fetchNgwLayerFeature(e){return ps(Gl({connector:this.connector},e))}fetchNgwLayerFeatures(e){return ni(Gl({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=Os(r);return n&&n.length?Br(ws(ws({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,{multiple:t,signal:r}={}){const n=new AbortController;if(r){if(r.aborted)return Promise.reject(new pt.errors.AbortError);r.addEventListener("abort",(()=>{n.abort("AbortError")}))}const o=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(ar(_s(ws({},t),{geom:e})))}}}}const o=Os(r);return o&&o.length?ps(ws(_s(ws({},n),{connector:t}),o[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,multiple:t,requestOptions:{signal:n.signal}});return o&&"then"in o?(this._addPromise("identify",o,n),o):Promise.resolve(o)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,{multiple:t})}getNgwLayers(){return Jl(this,null,(function*(){return yield this.onLoad(),this._ngwLayers}))}getNgwLayerByResourceId(e){return Jl(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&&"style_parent_id"in t.item&&void 0!==t.item.style_parent_id&&t.item.style_parent_id===e));if(t)return t.layer}}}))}fitLayer(t,r){return Jl(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&&this.fitResource(e.resource.id)}else Wl(e.prototype,this,"fitLayer").call(this,"number"==typeof t?String(t):t,r)}))}fitResource(e,t){return Jl(this,null,(function*(){const r=yield this.connector.resources.getIdOrFail(e),n=yield Lt({resourceId:r,connector:this.connector});n&&this.fitBounds(n,t)}))}zoomToLayer(e){return Jl(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 Jl(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;if(o&&n.options.selectable&&i&&this.isLayerVisible(n)){const e=o.call(n);r.push(e)}}const o=Promise.all(r),i=yield o,a=[];for(const e of i)e&&a.push(...e);if(!a.length)return void this._emitStatusEvent("ngw:select",null);const l=this.options.pixelRadius||10,c=this.getCenter();let u=this.getZoom();if(u=void 0!==u?u:20,!c||!u)return void this._emitStatusEvent("ngw:select",null);const p=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}(c,u,l);let d;if(this.options.highlightIdentification){const t=this.options.highlightIdentification,r="number"==typeof t?t:1e3,[n,o]=e.lngLat;d={type:"Polygon",coordinates:[h(n,o,p)]};const i=yield this.addGeoJsonLayer({data:{type:"Feature",geometry:d}});r!==1/0&&setTimeout((()=>{this.removeLayer(i)}),r)}const f=new AbortController,y=function(e,t){s(e);const[r,n]=e.lngLat,{geom:o,radius:i}=t,a=null!=o?o:h(r,n,i);return Ps(_s(ws({},t),{geom:a}))}(e,{layers:a,connector:this.connector,radius:p,geom:d,signal:f.signal}).then((t=>{const r=zl(Gl({},t),{resources:a,sourceType:"raster",event:e}),n=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",n),n}));return this._addPromise("select",y,f),y}))}_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,e),n.push([t,r])}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}_createWebMap(){return Jl(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&&Il(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),Il(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,features:[{id:Number(e),fields:n.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:n.geometry}]},o={featureCount:1,[r]:t};return this._emitStatusEvent("ngw:select",this._prepareToIdentify(zl(Gl({},o),{resources:[r],sourceType:"vector"}))),o}}}_prepareToIdentify(e){return zl(Gl({},e),{getIdentifyItems:()=>Os(e,!0).map((e=>new us({feature:e.feature,connector:this.connector})))})}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}_whiteLabel(){return Jl(this,null,(function*(){const e=this.getContainer();if(e){const t=yield hs(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}))}};Zl(Hl,"getIcon",(function(e={}){var r,n,o,i,s,a;const l=null!=(r=e.shape)?r:"circle",c=null!=(n=e.color)?n:"blue",u=null!=(o=e.strokeColor)?o:"white",p=null!=(i=e.size)?i:12,h=null!=(s=e.rotate)?s:0,d=null!=(a=e.anchor)?a:[p/2,p/2],f=void 0!==e.stroke?Number(e.stroke):.8,y=e.p||t[l]||"circle",m="string"==typeof y?y:y(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} ${12+r} ${12+r}"\n >${n}</svg>`}({width:p,height:p,stroke:f,content:m}));return b.setAttribute("width",String(p)),b.setAttribute("height",String(p)),b.setAttribute("fill",c),f&&(b.setAttribute("stroke",u),b.setAttribute("stroke-width",String(f))),{type:"icon",iconSize:[p,p],iconAnchor:d,html:(new XMLSerializer).serializeToString(b),rotate:h,svg:b}}));let Ql=Hl;return e.NgwMap=Ql,e.WebMap=fl,e.WebMapControls=al,e.WebMapLayers=rl,e.WebMapMain=Ga,e.createNgwMap=function(e){return t=this,r=null,n=function*(){return new Ql(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=Es,e.createWebMap=function(e){return t=this,r=null,n=function*(){return new fl(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=ba,e.findMostFrequentGeomType=ma,e.getDefaultControls=yl,e.getWebMap=xs,e.paintTypeAlias=ga,e.setWebMap=js,e.typeAlias=va,e.updateGeoJsonAdapterOptions=wa,e}({});
1
+ var NgwMap=function(e){"use strict";const t={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"/>'},r=12;function n(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 o(e,t,r=!1){let n=e;const i=t,s=Array.isArray(i);let a=s&&[]||{};return s&&Array.isArray(i)?r?(n=n||[],a=a.concat(n),i.forEach(((e,t)=>{void 0===a[t]?a[t]=e:"object"==typeof e?a[t]=o(n[t],e,r):-1===n.indexOf(e)&&a.push(e)}))):a=i:(n&&"object"==typeof n&&Object.keys(n).forEach((function(e){a[e]=n[e]})),Object.keys(i).forEach((function(e){a[e]="object"==typeof i[e]&&i[e]&&"object"==typeof n[e]&&"object"==typeof i[e]?o(n[e],i[e],r):i[e]}))),a}function i(e){return null!=e}function s(e){return"string"==typeof e?!!e:i(e)}function a(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}const l=6371;function c(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 u(e){return{type:"Polygon",coordinates:[p(e)]}}function p(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const h=Math.PI/180,d=180/Math.PI;function f(e,t,r=10,n=6){const o=r/l*d,i=o/Math.cos(t*h),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 y(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:m(e,t));return e===t}function m(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(!y(e[r[o]],t[n[o]],e,t))return!1}return!0}function b(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]=b(e[r])})),t}function g(e){return"[object Object]"===Object.prototype.toString.call(e)}function v(e){return e.replace(/([^:]\/)\/+/g,"$1")}const w=/\{ *([\w_-]+) *\}/g;function _(e,t){return e.replace(w,((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 O=Object.defineProperty,L=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,x=(e,t,r)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function j(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=_(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={}))P.call(t,r)&&x(e,r,t[r]);if(L)for(var r of L(t))I.call(t,r)&&x(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 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 C=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,n){return"object"==typeof r&&"valueToSet"in r&&(r.onlyFull=!0),this.add(e,t,r,!0,n)}add(e,t,r,n,o){let i,a;"object"==typeof r&&"valueToSet"in r?(i=r,n=i.onlyFull,o=i.expirationTime,a=i.props):a=r;const l=this._find(e,a);if(l)return l.value;{let r;r=t instanceof Function?t():t;const i=a&&JSON.parse(JSON.stringify(b(a)));o=o?Date.now()+o:void 0;const l={key:e,value:r,props:i,expirationTime:o};return n&&!s(r)?r:(this.cache.push(l),r instanceof Promise?(r.catch((()=>{this.delete(e,a)})),n&&r.then((t=>(s(t)||this.delete(e,a),t))),r):r)}}match(e,t){const r=this._find(e,t);if(!(r&&r.expirationTime&&Date.now()>r.expirationTime))return null==r?void 0:r.value;this.delete(r)}matchAll(e,t){const r=Date.now();return this.cache.forEach((e=>{e.expirationTime&&r>e.expirationTime&&this.delete(e)})),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 m(e.props||{},b(r))}};A(C,"instance",{});let M=C;function k(){}function S(){S.init.call(this)}function T(e){return void 0===e._maxListeners?S.defaultMaxListeners:e._maxListeners}function N(e,t,r,n){var o,i,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]):(i=e._events=new k,e._eventsCount=0),s){if("function"==typeof s?s=i[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),!s.warned&&(o=T(e))&&o>0&&s.length>o){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,a=l,"function"==typeof console.warn?console.warn(a):console.log(a)}}else s=i[t]=r,++e._eventsCount;return e}function R(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 F(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 B(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}k.prototype=Object.create(null),S.EventEmitter=S,S.usingDomains=!1,S.prototype.domain=void 0,S.prototype._events=void 0,S.prototype._maxListeners=void 0,S.defaultMaxListeners=10,S.init=function(){this.domain=null,S.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new k,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},S.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},S.prototype.getMaxListeners=function(){return T(this)},S.prototype.emit=function(e){var t,r,n,o,i,s,a,l="error"===e;if(s=this._events)l=l&&null==s.error;else if(!l)return!1;if(a=this.domain,l){if(t=arguments[1],!a){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(r=s[e]))return!1;var u="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=B(e,n),i=0;i<n;++i)o[i].call(r)}(r,u,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var o=e.length,i=B(e,o),s=0;s<o;++s)i[s].call(r,n)}(r,u,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=B(e,i),a=0;a<i;++a)s[a].call(r,n,o)}(r,u,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,a=B(e,s),l=0;l<s;++l)a[l].call(r,n,o,i)}(r,u,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=B(e,o),s=0;s<o;++s)i[s].apply(r,n)}(r,u,this,o)}return!0},S.prototype.on=S.prototype.addListener=function(e,t){return N(this,e,t,!1)},S.prototype.prependListener=function(e,t){return N(this,e,t,!0)},S.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,R(this,e,t)),this},S.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,R(this,e,t)),this},S.prototype.removeListener=function(e,t){var r,n,o,i,s;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(n=this._events))return this;if(!(r=n[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new k:(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(o=-1,i=r.length;i-- >0;)if(r[i]===t||r[i].listener&&r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new k,this;delete n[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()}(r,o);n.removeListener&&this.emit("removeListener",e,s||t)}return this},S.prototype.off=function(e,t){return this.removeListener(e,t)},S.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new k,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new k:delete r[e]),this;if(0===arguments.length){for(var n,o=Object.keys(r),i=0;i<o.length;++i)"removeListener"!==(n=o[i])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=new k,this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},S.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):[]},S.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):F.call(e,t)},S.prototype.listenerCount=F,S.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var $="3.0.0-alpha.20";class q extends Error{constructor(e="AbortError"){super(e),this.name="AbortError"}}var D=Object.defineProperty,U=(e,t,r)=>((e,t,r)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class V extends Error{constructor(e){super(),U(this,"name","NgwError"),U(this,"title"),U(this,"message"),U(this,"detail"),U(this,"exception"),U(this,"status_code"),U(this,"data"),U(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,V.prototype)}}var G=Object.defineProperty,z=(e,t,r)=>((e,t,r)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Z extends V{constructor(e){super(e),z(this,"name","InsufficientPermissionsError"),z(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,Z.prototype)}}var W=Object.defineProperty,J=(e,t,r)=>((e,t,r)=>t in e?W(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);let H=class e extends V{constructor(t){super(t),J(this,"message","There is no response from the server or problem connecting to server."),J(this,"title","Network error"),J(this,"detail","Check network connectivity and try again later."),Object.setPrototypeOf(this,e.prototype)}};var Q=Object.defineProperty,K=(e,t,r)=>((e,t,r)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class X extends Error{constructor(e){super(),K(this,"name","NetworkError"),Object.setPrototypeOf(this,X.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}var Y=Object.defineProperty,ee=(e,t,r)=>((e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class te extends V{constructor(e){super(e),ee(this,"name","ResourceNotFoundError"),ee(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,te.prototype)}}var re=Object.freeze({__proto__:null,AbortError:q,InsufficientPermissionsError:Z,NetworkError:X,NetworksResponseError:H,NgwError:V,ResourceNotFoundError:te,extractError:function(e){if(g(e))return e.name&&e.message&&e.title?{title:e.title,message:e.message,detail:e.detail||null,data:e.data&&e.data.data?e.data.data:null}:!e.exception||void 0!==e.status&&0!==e.status&&void 0!==e.data?{title:"string"==typeof e.title?e.title:"Unexpected error",message:"string"==typeof e.message?e.message:"Something went wrong."}:new H({title:e.title,status_code:e.status_code,exception:e.exception})},isError:function(e){return!!g(e)&&(e.status_code&&e.exception&&e.title)}}),ne=Object.defineProperty,oe=(e,t,r)=>((e,t,r)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ie extends Error{constructor(e){super(e||"Something went wrong."),oe(this,"title"),this.name="BaseAPIError",this.title="Unknown API error",Error.captureStackTrace&&Error.captureStackTrace(this,ie)}}class se extends ie{constructor(e){super(e||"There is no response from the server or problem connecting to server."),oe(this,"detail"),this.title="Network error",this.detail="Check network connectivity and try again later."}}class ae extends ie{constructor(e){super(e||"Something went wrong."),this.title="Unexpected server response"}}class le extends ie{constructor(e){super(e.message),oe(this,"detail"),oe(this,"data"),this.title=e.title||this.title,this.detail=e.detail||null,this.data=e}}class ce extends Error{constructor(e,t={}){super(e||"Unexpected error while processing long-running request."),oe(this,"title"),oe(this,"data"),this.name="LunkwillError",this.title="Long-running request error",this.data=t,Error.captureStackTrace&&Error.captureStackTrace(this,ce)}}class ue extends ce{constructor(e){super("Long-running request was cancelled.",e)}}class pe extends ce{constructor(e){super(void 0,e)}}var he=Object.defineProperty,de=Object.getOwnPropertySymbols,fe=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,me=(e,t,r)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,be=(e,t)=>{for(var r in t||(t={}))fe.call(t,r)&&me(e,r,t[r]);if(de)for(var r of de(t))ye.call(t,r)&&me(e,r,t[r]);return e},ge=(e,t)=>{var r={};for(var n in e)fe.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&de)for(var n of de(e))t.indexOf(n)<0&&ye.call(e,n)&&(r[n]=e[n]);return r},ve=(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 we(e){return ve(this,null,(function*(){const t=yield function(e){return ve(this,null,(function*(){try{return e.json()}catch(t){throw new Error}}))}(e);let r=t.delay_ms;const n=void 0!==t.retry_ms?t.retry_ms:2e3,o=`/api/lunkwill/${t.id}/summary`,i=`/api/lunkwill/${t.id}/response`,s=e=>new Promise((t=>setTimeout(t,e)));let a=!1,l=!1;for(;!l;){let e,t;yield s(a?n:r),a=!1;try{e=yield fetch(o,{credentials:"same-origin"}),t=yield e.json()}catch(c){a=!0;continue}switch(t.status){case void 0:throw new ce(void 0,t);case"ready":l=!0;break;case"cancelled":throw new ue(t);case"failed":throw new pe(t);case"spooled":case"processing":case"buffering":r=t.delay_ms;break;default:throw new ce(void 0,t)}}return i}))}const _e=new RegExp(["application/pdf","image/png","image/jpeg","image/tiff","text/csv"].join("|"));function Oe(e,t){let r="";return void 0!==t&&(r="?"+function(e){const t=[];for(const[r,n]of Object.entries(e))if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)t.push(`${r}=${encodeURIComponent(n)}`);else if(Array.isArray(n))t.push(`${r}=${n.map(encodeURIComponent).join(",")}`);else for(const[e,o]of Object.entries(n)){const n=`${r}[${encodeURIComponent(e)}]`;if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)t.push(`${n}=${encodeURIComponent(o)}`);else if(Array.isArray(o)){const e=o.map(encodeURIComponent);t.push(`${n}=${e.join(",")}`)}}return t.join("&")}(t)),e+r}function Le(e,t,r){return ve(this,null,(function*(){var n,o;const i=be(be({},{method:"GET",credentials:"same-origin",headers:{}}),t),{withCredentials:s,responseType:a,cacheProps:l,cacheName:c,lunkwill:u,cache:p,query:h,json:d}=i,f=ge(i,["withCredentials","responseType","cacheProps","cacheName","lunkwill","cache","query","json"]);f.method=null==(n=f.method)?void 0:n.toUpperCase(),s&&(f.credentials="include");let y=!1;void 0!==u&&(u.toHeaders(f.headers||{}),y=!0);const m=!!f.lunkwillReturnUrl;if(delete f.lunkwillReturnUrl,void 0!==d){f.body=JSON.stringify(d);const e=f.headers||{};e["Content-Type"]="application/json",f.headers=e}const g=Oe(e,h),v=()=>ve(this,null,(function*(){let e;try{e=yield fetch(g,f)}catch(o){if(f.signal&&f.signal.aborted)throw o;throw new se}if(y&&function(e){const t=e.headers.get("content-type");return null!=t&&t.includes("application/vnd.lunkwill.request-summary+json")}(e)){const t=yield we(e);if(m)return t;e=yield function(e){return ve(this,null,(function*(){try{return yield window.fetch(e,{credentials:"same-origin"})}catch(o){throw new se}}))}(t)}const t=e.headers.get("content-type"),r=t&&(t.includes("application/json")||t.includes("application/vnd.lunkwill.request-summary+json"));let n;try{const o=t&&_e.test(t);if("blob"===a||o)n=yield e.blob();else{if(!r)throw new ae;n=yield e.json()}}catch(o){if("AbortError"===o.name||o instanceof ae)throw o;throw new ae}if(400<=e.status&&e.status<=599)throw new le(n);return n}));if(r)if("GET"===(null==(o=f.method)?void 0:o.toUpperCase())){if(!1!==p){const e=l||be({},b({withCredentials:s,responseType:a}));return r.add(c||g,v,{props:e,expirationTime:p?void 0:500})}}else{["api/feature_layer/identify"].every((t=>!e.includes(t)))&&r.clean()}return v()}))}var Pe=Object.defineProperty,Ie=Object.defineProperties,xe=Object.getOwnPropertyDescriptors,je=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Ce=(e,t,r)=>t in e?Pe(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)&&Ce(e,r,t[r]);if(je)for(var r of je(t))Ae.call(t,r)&&Ce(e,r,t[r]);return e},ke=(e,t)=>{var r={};for(var n in e)Ee.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&je)for(var n of je(e))t.indexOf(n)<0&&Ae.call(e,n)&&(r[n]=e[n]);return r};function Se(e,t,r,...n){const[o,...i]=r[e],s=n[0];let a;if(void 0===s)a=[];else if("object"==typeof s&&null!==s){if(n.length>1)throw new Error("Too many arguments for route(name, object)!");a=[];for(const[e,t]of Object.entries(s))a[i.indexOf(e)]=String(t)}else a=n.map((e=>String(e)));return v(t+o.replace(/\{(\w+)\}/g,(function(e,t){const r=parseInt(t),n=a[r];if(void 0===n){throw new Error(`Undefined parameter ${r} in "${o}".`)}return String(n)})))}function Te(e,t,...r){const n={url:n=>{return o=this,i=null,s=function*(){var o;const i=yield t.connect();return Oe(Se(e,null!=(o=t.options.baseUrl)?o:"",i,...r),null==n?void 0:n.query)},new Promise(((e,t)=>{var r=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(r,n);a((s=s.apply(o,i)).next())}));var o,i,s}},o=["get","post","put","delete","patch"];for(const i of o){const o=n=>{var o;const s=n||{},{headers:a}=s,l=ke(s,["headers"]);if(null==(o=null==n?void 0:n.signal)?void 0:o.aborted)throw new q;return t.connect().then((n=>{var o;const s=Se(e,null!=(o=t.options.baseUrl)?o:"",n,...r),c=b(Me(Me({},t.getAuthorizationHeaders()),null!=a?a:{}));return Le(s,(u=Me({headers:c},l),Ie(u,xe({method:i}))),t.cache);var u}))};n[i]=o}return n}function Ne(e){return"[object Object]"===Object.prototype.toString.call(e)}let Re;Re=(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 V(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 X(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)};const Fe=[];function Be(e){Fe.push(e)}var $e=Object.defineProperty,qe=Object.defineProperties,De=Object.getOwnPropertyDescriptors,Ue=Object.getOwnPropertySymbols,Ve=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable,ze=(e,t,r)=>t in e?$e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ze=(e,t)=>{for(var r in t||(t={}))Ve.call(t,r)&&ze(e,r,t[r]);if(Ue)for(var r of Ue(t))Ge.call(t,r)&&ze(e,r,t[r]);return e},We=(e,t,r)=>ze(e,"symbol"!=typeof t?t+"":t,r),Je=(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 He=0,Qe=0;class Ke{constructor(e){this.options=e,We(this,"id",He++),We(this,"emitter",new S),We(this,"user"),We(this,"cache"),We(this,"withCredentials"),We(this,"routeCache"),We(this,"client",`NextGIS-NGW-Connector/${$}`),We(this,"routeStr","/api/component/pyramid/route"),We(this,"activeRequests",{}),We(this,"requestTransform");const t=function(e){return Fe.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return m(t.options.auth,e.auth)}}))}(e);if(this.cache=new M({namespace:e.cacheId}),this.routeCache=new M({namespace:"routecache"}),t)return t;{const{route:e,requestTransform:t,withCredentials:r}=this.options;e&&(this.routeStr=e),t&&(this.requestTransform=t),void 0!==r&&(this.withCredentials=r),Be(this)}}clearCache(){this.cache.clean()}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,Be(this)}connect(){return Je(this,arguments,(function*({signal:e}={}){const t=this.options.auth;if(t){const{login:e,password:r}=t;e&&r&&(yield this._login({login:e,password:r}))}const r=`${this.routeStr}?client=${this.client}`;return this.routeCache.add(this.options.baseUrl||String(this.id),(()=>this.makeQuery(r,null,{signal:e,cache:!1})))}))}login(e,t){return this.logout(),Be(this),this._login(e,t)}logout(){this.abort(),function(e){const t=Fe.indexOf(e);-1!==t&&Fe.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.routeCache.clean(),this.clearCache(),this.emitter.emit("logout")}getUserInfo(e,t){return Je(this,null,(function*(){if(this.user&&this.user.id)return this.user;e&&(this.options.auth=e);const r=Ze({headers:this.getAuthorizationHeaders(e),cache:!0},t);return this.makeQuery("/api/component/auth/current_user",{},r)}))}getAuthorizationHeaders(e){const t=this.makeClientId(e);return t?{Authorization:`Basic ${t}`}:{}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=[t,r].map(encodeURIComponent).join(":");return window.btoa(n)}}abort(){for(const e of Object.values(this.activeRequests))e.abort();this.activeRequests={}}getActiveApiRequests(){return Ze({},this.activeRequests)}route(e,...t){return Te(e,this,...t)}makeQuery(e,t){return Je(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)Ve.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ue)for(var n of Ue(e))t.indexOf(n)<0&&Ge.call(e,n)&&(r[n]=e[n]);return r})(t,["paramList"]);e=_(e,r)}e=encodeURI(v(e)),r=Ze({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 q;i.addEventListener("abort",(()=>{h.abort()}))}r.signal=d;const f=()=>Je(this,null,(function*(){const t=Qe++;this.activeRequests[t]=h;try{return this._loadData(e,r)}finally{this._cleanActiveRequest(t)}}));if("GET"===s&&!1!==o){const r=c||(y=Ze({},b({headers:a,withCredentials:p,responseType:u,baseUrl:this.options.baseUrl,userId:null==(n=this.user)?void 0:n.id})),qe(y,De({params:t})));return this.cache.add(l||e,f,{props:r,expirationTime:o?void 0:500})}var y;return f()}))}_loadData(e,t){return t.responseType=t.responseType||"json",new Promise(((r,n)=>{var o;if(this.user&&((t=t||{}).headers=Ze(Ze({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}let i;Re(e,r,t,n,(e=>{i=e})),null==(o=t.signal)||o.addEventListener("abort",(()=>{void 0!==i&&i(),n(new q)}))})).catch((e=>{if("AbortError"!==e.name){const t=this._handleHttpError(e);if(t)throw t}throw e}))}_login(e,t){return Je(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 V){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new te(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new Z(e)}return e}}We(Ke,"errors",re);const Xe=["description"];function Ye(e,t=""){t=t?t+"__":"";const r={};for(const[n,o]of Object.entries(e))if(-1===Xe.indexOf(n))if(Ne(o))if("owner_user"===n){const e=Ye(o,n);Object.assign(r,e)}else"parent"===n&&"id"in o&&(r.parent_id=o.id);else i(o)&&(r[t+n]=o);return r}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)=>st(e,"symbol"!=typeof t?t+"":t,r),ut=(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 pt{constructor({connector:e,cacheId:t}){ct(this,"cache"),ct(this,"connector"),this.connector=e,this.cache=new M({namespace:t})}getOne(e,t){const r=at({},t);return"string"==typeof e||"number"==typeof e||Ne(e),"string"==typeof e?this._fetchResourceBy({keyname:e},r):"number"==typeof e?this._fetchResourceById(e,r):Ne(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 te}))}getId(e,t){return"number"==typeof e?Promise.resolve(e):"string"==typeof e||Ne(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,Ye(e)),this.connector.route("resource.search").get(lt(at({},t),{query:at({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=>{var r,n;return(null==(n=null==(r=null==e?void 0:e.resource)?void 0:r.parent)?void 0:n.id)?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){return ut(this,arguments,(function*(e,t,r=[]){let n;n="string"==typeof e?yield this.getId(e,t):"object"==typeof e?e.id:e;const o=yield this.connector.route("resource.collection").get(lt(at({},t),{query:{parent:n}})),i=[];for(const s of o)(null==t?void 0:t.cache)&&this.cache.add("resource.item",Promise.resolve(s),{id:s.resource.id}),r.push(s),(null==t?void 0:t.recursive)&&s.resource.children&&i.push(this._getChildrenOf(s.resource.id,t,r));return i.length?Promise.all(i).then((()=>r)):r}))}_cleanResourceItemCache(e){return ut(this,null,(function*(){var t;const r=this.cache.all(),n=[];for(const o of r){const r=null==(t=o.props)?void 0:t.id;if(["resource.item","resource"].includes(o.key)&&void 0!==r)if("number"==typeof r)r===e&&n.push(o);else{(yield this.getId(r))===e&&n.push(o)}}for(const e of n)this.cache.delete(e)}))}_fetchResourceById(e,t){return this.connector.route("resource.item",{id:e}).get(t)}_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:i(e.id)&&i(t.resource.id)?e.id===t.resource.id:m(e,t.resource)})),[])))}}var ht=Object.defineProperty,dt=(e,t,r)=>((e,t,r)=>t in e?ht(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,t+"",r);class ft extends Ke{constructor(e){super(e),dt(this,"resources"),this.resources=new pt({connector:this,cacheId:e.cacheId})}static create(e){return new this(e)}clearCache(){super.clearCache(),this.resources.cache.clean()}apiRequest(e,t={},r={}){var n;return j({name:e,params:b(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)}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)}}var yt=Object.defineProperty,mt=Object.defineProperties,bt=Object.getOwnPropertyDescriptors,gt=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,_t=(e,t,r)=>t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ot=(e,t)=>{for(var r in t||(t={}))vt.call(t,r)&&_t(e,r,t[r]);if(gt)for(var r of gt(t))wt.call(t,r)&&_t(e,r,t[r]);return e},Lt=(e,t)=>mt(e,bt(t));function Pt(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 It({resourceId:e,connector:t,cache:r=!0,signal:n}){return t.route("layer.extent",{id:Number(e)}).get({cache:r,signal:n}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}function xt(e){return e.connector.getResource(e.resourceId,{signal:e.signal,cache:e.cache}).then((t=>{if(t)return jt(t,e.connector,e)}))}function jt(e,t,r){if(e.webmap)return Promise.resolve(Pt(e.webmap));{const n=e.resource;return n.cls&&n.parent&&-1!==n.cls.indexOf("style")?t.getResource(n.parent.id,r).then((e=>{if(e)return It(Lt(Ot({},r),{resourceId:e.resource.id,connector:t}))})):It(Lt(Ot({},r),{resourceId:n.id,connector:t}))}}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),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())}));class Mt{constructor(){At(this,"item"),At(this,"connector"),At(this,"_extent")}getExtent(){return Ct(this,null,(function*(){return this.getBounds()}))}getBounds(e){return Ct(this,null,(function*(){return this._extent?this._extent:this.item?(this._extent=yield jt(this.item,this.connector,e),this._extent):void 0}))}}var kt=(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 St(e,t){return kt(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 St(r,t)),!i&&o){const e=yield t.getResource(o);e&&(i=e.resource.id)}return i}))}var Tt=Object.defineProperty,Nt=Object.getOwnPropertySymbols,Rt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable,Bt=(e,t,r)=>t in e?Tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$t=(e,t)=>{for(var r in t||(t={}))Rt.call(t,r)&&Bt(e,r,t[r]);if(Nt)for(var r of Nt(t))Ft.call(t,r)&&Bt(e,r,t[r]);return e},qt=(e,t,r)=>Bt(e,"symbol"!=typeof t?t+"":t,r),Dt=(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 t=this,r=arguments,n=function*({webMap:e,connector:t,item:r,adapterOptions:n={},idPrefix:o="first-show-adapter"}){const i=function(e){return Dt(this,arguments,(function*({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:n}){return class{constructor(){qt(this,"options",{}),qt(this,"layer",[]),qt(this,"_removed",!1),qt(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 Dt(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 Dt(this,null,(function*(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)yield e.hideLayer(t)}))}loadLayer(){return Dt(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,$t({},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:()=>Qi({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 Vt=Object.defineProperty,Gt=Object.getOwnPropertySymbols,zt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,Wt=(e,t,r)=>t in e?Vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jt=(e,t)=>{for(var r in t||(t={}))zt.call(t,r)&&Wt(e,r,t[r]);if(Gt)for(var r of Gt(t))Zt.call(t,r)&&Wt(e,r,t[r]);return e};function Ht(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 Qt={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)=>Ht(e,t),ilike:(e,t)=>Ht(e,t,!0)};function Kt(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Xt(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(Kt(t)){const[r,n,o]=t,i=Qt[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 Xt(e,t)},o=t.filter((e=>Array.isArray(e)));return"any"===r?o.some(n):o.every(n)}var Yt=Object.defineProperty,er=Object.defineProperties,tr=Object.getOwnPropertyDescriptors,rr=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,or=Object.prototype.propertyIsEnumerable,ir=(e,t,r)=>t in e?Yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,sr=(e,t)=>{for(var r in t||(t={}))nr.call(t,r)&&ir(e,r,t[r]);if(rr)for(var r of rr(t))or.call(t,r)&&ir(e,r,t[r]);return e},ar=(e,t)=>er(e,tr(t)),lr=(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 cr={srs:4326,geom_format:"geojson",dt_format:"iso"};function ur(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function pr(e,t){const{extensions:r,geom:n,fields:o,srs:s,ilike:a,like:l}=t;e.extensions=r||[],o&&(e.fields=o),void 0!==n&&(e.geom=n,n||(delete e.srs,delete e.geom_format)),i(a)?e.ilike=a:i(l)&&(e.like=l),i(s)&&(e.srs=s)}function hr(e){return lr(this,null,(function*(){const t=fr(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 dr(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 fr(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)Kt(l)?t.push(mr(ar(sr({},e),{paramList:[...r,...i,dr(l)]}))):fr(ar(sr({},e),{filters:l}),t,[...r]);else if("all"===s){const n=[],o=[];for(const e of a)Kt(e)?n.push(dr(e)):o.push(e);if(o.length)for(const i of o)fr(ar(sr({},e),{filters:i}),t,[...r,...n]);else t.push(mr(ar(sr({},e),{paramList:[...r,...i,...n]})))}return t}function yr(e){return`POLYGON((${e.map((([e,t])=>{const[r,n]=c(e,t).map((e=>Math.round(1*(e+Number.EPSILON))/1));return r+" "+n})).join(", ")}))`}function mr(e){const t=sr({},cr),{limit:r,query:n,cache:o,signal:i,offset:s,orderBy:a,paramList:l,connector:c,geomFormat:u,intersects:h,resourceId:d}=e;if("number"==typeof r&&r!==Number.POSITIVE_INFINITY&&(t.limit=r),s&&(t.offset=s),u&&(t.geom_format=u),pr(t,e),a&&(t.order_by=a.join(",")),Array.isArray(h)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(h)?p(h):h;t.intersects=yr(e)}else"string"==typeof h&&(t.intersects=h);return l&&Object.assign(t,function(e){return e.reduce(((e,[t,r])=>(e[t]=r,e)),{})}(l)),c.route("feature_layer.feature.collection",{id:Number(d)}).get({query:sr(sr({},t),n),cache:o,signal:i})}function br(e){let t;for(t in e){const r=e[t];if(g(r)){const n=r;if(i(n.year)&&i(n.month)&&i(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 gr=Object.defineProperty,vr=Object.defineProperties,wr=Object.getOwnPropertyDescriptors,_r=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Pr=(e,t,r)=>t in e?gr(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(_r)for(var r of _r(t))Lr.call(t,r)&&Pr(e,r,t[r]);return e},xr=(e,t)=>vr(e,wr(t)),jr=(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 Er(e){return jr(this,null,(function*(){var t;const r=e.filters;if(r){let n=yield hr(xr(Ir({},e),{filters:r}));return(null!=(t=e.clientFilterValidate)?t:Ar(r))&&(n=n.filter((e=>Xt(br(xr(Ir({},e.fields),{id:e.id})),r)))),n}return mr(e)}))}function Ar(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(Ar(r))return!0}}return!1}function Cr({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),Io(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 Mr=Object.defineProperty,kr=Object.defineProperties,Sr=Object.getOwnPropertyDescriptors,Tr=Object.getOwnPropertySymbols,Nr=Object.prototype.hasOwnProperty,Rr=Object.prototype.propertyIsEnumerable,Fr=(e,t,r)=>t in e?Mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Br=(e,t)=>{for(var r in t||(t={}))Nr.call(t,r)&&Fr(e,r,t[r]);if(Tr)for(var r of Tr(t))Rr.call(t,r)&&Fr(e,r,t[r]);return e},$r=(e,t)=>kr(e,Sr(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 Dr(e){return qr(this,null,(function*(){const t=Br({},cr);pr(t,e);const r=yield e.connector.route("feature_layer.feature.item",{id:Number(e.resourceId),fid:e.featureId}).get($r(Br({},e),{query:t}));return $r(Br({},r),{toGeojson:()=>qr(this,null,(function*(){if(r.geom)return ur(r);{const t=(yield Dr($r(Br({},e),{geom:!0,fields:null,extensions:null}))).geom;return ur($r(Br({},r),{geom:t}))}}))})}))}var Ur=Object.defineProperty,Vr=Object.getOwnPropertySymbols,Gr=Object.prototype.hasOwnProperty,zr=Object.prototype.propertyIsEnumerable,Zr=(e,t,r)=>t in e?Ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wr=(e,t,r)=>Zr(e,"symbol"!=typeof t?t+"":t,r);class Jr{constructor(e){this.options=e,Wr(this,"name"),Wr(this,"resourceId"),Wr(this,"item"),Wr(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.route("feature_layer.feature.item_extent",{id:this.resourceId,fid:this.item.id}).get(e).then((e=>{if(e.extent){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(ur(this.item)):Dr(((e,t)=>{for(var r in t||(t={}))Gr.call(t,r)&&Zr(e,r,t[r]);if(Vr)for(var r of Vr(t))zr.call(t,r)&&Zr(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,ur(this.item))))}}var Hr=Object.defineProperty,Qr=(e,t,r)=>((e,t,r)=>t in e?Hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Kr{constructor(e,t,r){Qr(this,"options"),Qr(this,"emitter",new S),Qr(this,"name"),Qr(this,"item"),Qr(this,"_blocked",!1),Qr(this,"_container"),Qr(this,"_value"),Qr(this,"_removeEventsListener"),this.item=t,this.options=Object.assign({},r),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 Xr=Object.defineProperty,Yr=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,rn=(e,t,r)=>t in e?Xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,nn=(e,t)=>{for(var r in t||(t={}))en.call(t,r)&&rn(e,r,t[r]);if(Yr)for(var r of Yr(t))tn.call(t,r)&&rn(e,r,t[r]);return e};const on=class e extends Kr{constructor(t,r,n){super(t,r,nn(nn({},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,nn(nn({},t),{propagation:!0,bubble:!1}))}}}};rn(on,"options"+"",{hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"});let sn=on;var an=Object.defineProperty,ln=Object.getOwnPropertySymbols,cn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable,pn=(e,t,r)=>t in e?an(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,hn=(e,t,r)=>pn(e,"symbol"!=typeof t?t+"":t,r);const dn=class e{constructor(e,t){this.item=e,hn(this,"options",{}),hn(this,"_properties",{}),hn(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={}))cn.call(t,r)&&pn(e,r,t[r]);if(ln)for(var r of ln(t))un.call(t,r)&&pn(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}};hn(dn,"handlers",{CheckProperty:sn});let fn=dn;function yn(e,t,r,n){return!!gn(e,t,r,vn)}function mn(e,t,r,n){return gn(e,t,r,wn)}function bn(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 gn(e,t=e=>!!e,r="children",n,o){return n(e,"function"==typeof t?t:e=>Xt(e,t),r)}function vn(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(t(e))return e;const n=bn(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){const e=vn(o[i],t,r,n);if(e)return e}}function wn(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{t(e)&&n.push(e);const i=bn(e,r);i&&(o=i)}for(let i=0;i<o.length;i++)o[i]&&wn(o[i],t,r,n);return n}function _n(e,t=e=>!!e,r,n=[]){let o=[];if(Array.isArray(e))o=e;else{if(!t(e))return!1;const n=bn(e,r);n&&(o=n)}for(let i=0;i<o.length;i++)if(o[i]){if(!_n(o[i],t,r,n))return!1}return!0}var On=Object.defineProperty,Ln=(e,t,r)=>((e,t,r)=>t in e?On(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Pn{constructor(e){Ln(this,"item"),Ln(this,"_children",[]),Ln(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?mn(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 gn(this._children,e,(e=>e.tree.getChildren()),vn)}every(e){return!!gn(this._children,e,(e=>e.tree.getChildren()),_n)}some(e){return yn(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return mn(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}var In=Object.defineProperty,xn=Object.getOwnPropertySymbols,jn=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable,An=(e,t,r)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Cn=(e,t,r)=>An(e,"symbol"!=typeof t?t+"":t,r);let Mn=0;class kn{constructor(e){Cn(this,"options",{}),Cn(this,"properties"),Cn(this,"tree"),Cn(this,"id",Mn),Mn+=1,this.options=((e,t)=>{for(var r in t||(t={}))jn.call(t,r)&&An(e,r,t[r]);if(xn)for(var r of xn(t))En.call(t,r)&&An(e,r,t[r]);return e})({},e),this.tree=new Pn(this)}initProperties(){this.properties=new fn(this,this.options.properties)}}function Sn(e,t){return{[`symbols[${e}]`]:t.join(",")||void 0}}var Tn=Object.defineProperty,Nn=Object.defineProperties,Rn=Object.getOwnPropertyDescriptors,Fn=Object.getOwnPropertySymbols,Bn=Object.prototype.hasOwnProperty,$n=Object.prototype.propertyIsEnumerable,qn=(e,t,r)=>t in e?Tn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Dn=(e,t)=>{for(var r in t||(t={}))Bn.call(t,r)&&qn(e,r,t[r]);if(Fn)for(var r of Fn(t))$n.call(t,r)&&qn(e,r,t[r]);return e},Un=(e,t,r)=>qn(e,"symbol"!=typeof t?t+"":t,r);class Vn{constructor({legendSymbols:e,resourceId:t,connector:r,layerId:n,legend:o,webMap:i,layer:s,onSymbolRenderChange:a}){Un(this,"layerId"),Un(this,"layer"),Un(this,"resourceId"),Un(this,"legendSymbols","expand"),Un(this,"legend"),Un(this,"layerVisibility",!0),Un(this,"onSymbolRenderChange"),Un(this,"webMap"),Un(this,"connector"),e&&(this.legendSymbols=e),this.connector=r,this.layer=s,this.layerId=n,o&&(this.legend=this.createLegend(o)),this.resourceId=t,this.webMap=i,this.onSymbolRenderChange=a}attachLayer(e){this.layerId=String(e.id),this.layer=e}create(){return e=this,t=arguments,r=function*(e={}){if(this.connector){const t=yield this.connector.route("render.legend_symbols",{id:this.resourceId}).get(Dn({},e));return this.legend=t,this.createLegend(t)}},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())}));var e,t,r}createLegend(e){return e.map((e=>{return t=Dn({},e),Nn(t,Rn({name:e.display_name,symbol:e.icon}));var t}))}setSymbolRender(e,t){if(this.legend){const r=this.legend.find((t=>t.index===e));if(r){if(r.render!==t){r.render=t;const e=this.legend.filter((e=>e.render)).map((e=>e.index));this.setLegendSymbol(e),this.onSymbolRenderChange&&this.onSymbolRenderChange(e)}}}}setLegendSymbol(e){const t=this._consolidateIntervals(e);t.length||this._hideLayer(),this.layer.updateLayer&&this.layer.updateLayer({params:Dn({},Sn(this.resourceId,t))}),t.length&&this._showLayer()}_hideLayer(){this.layer.options.id&&this.webMap.mapAdapter.hideLayer(this.layer.layer)}_showLayer(){this.layer.options.id&&this.layerVisibility&&this.webMap.showLayer(this.layer.options.id,{silent:!0})}_consolidateIntervals(e){const t=e.slice().sort(((e,t)=>e-t)),r=[];let n=t[0],o=n;for(let i=1;i<=t.length;i++)t[i]===o+1?o=t[i]:(r.push(n===o?`${n}`:`${n}-${o}`),n=t[i],o=n);return r}}var Gn=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?Gn(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)=>Qn(e,"symbol"!=typeof t?t+"":t,r),eo=(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 to=class e extends kn{constructor({webMap:t,item:r,options:n,connector:o,parent:i,noInit:s}){if(super(Kn(Kn({},e.options),n)),Yn(this,"item"),Yn(this,"webMap"),Yn(this,"connector"),Yn(this,"layer"),Yn(this,"legend"),Yn(this,"emitter",new S),Yn(this,"_rootDescendantsCount",0),this.webMap=t,o&&(this.connector=o),i&&this.tree.setParent(i),this.item=r,"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(),s||this._init(r)}static create(t,r,n,o,i){return eo(this,null,(function*(){const s=new e({webMap:t,item:r,options:n,connector:o,parent:i,noInit:!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 eo(this,null,(function*(){var t,r;const n=null==(t=this.layer)?void 0:t.id;if(void 0!==n){if(this.connector&&"resourceId"in this.item){const t=Number(this.item.resourceId);if("layer"===this.item.item_type&&this.layer){const o=new Vn({connector:this.connector,layerId:n,layer:this.layer,resourceId:t,webMap:this.webMap,legendSymbols:null!=(r=this.item.legend_symbols)?r:void 0,onSymbolRenderChange:e=>{this.webMap.emitter.emit("event-symbol-render:change",{layerId:n,resourceId:t,indexes:e})}});return yield o.create(e),[o]}return[]}}return[]}))}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,n=Xn(Kn({visibility:!1,name:e.display_name},this.options),{params:{resource:"resourceId"in this.item?this.item.resourceId:void 0,item:this.item}});if(delete n.id,this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e&&null!=e.draw_order_position?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,Xn(Kn({updateWmsParams:e.updateWmsParams},n),{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 function(e,t=0){const r=t,n=function(){if(void 0===jo){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),jo=t}return jo}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e;return function(e){return Math.log(e/256)/Math.LN2}(n)}(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor({webMap:this.webMap,item:e,options:this.options,connector:this.connector,parent: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),null!=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=>{this.webMap.emitter.on(`layer-${e.id}:toggle`,(t=>{const r=this.properties.get("visibility"),n=this.webMap.isLayerVisible(e);r!==n&&this.properties.set("visibility",n)})),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}};Yn(to,"GetAdapterFromLayerType",{}),Yn(to,"options",{properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return yn(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 Kr{getProperty(){const e=this.item.layer;return e&&e&&e.options&&null!=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 ro=to;var no=Object.defineProperty,oo=Object.defineProperties,io=Object.getOwnPropertyDescriptors,so=Object.getOwnPropertySymbols,ao=Object.prototype.hasOwnProperty,lo=Object.prototype.propertyIsEnumerable,co=(e,t,r)=>t in e?no(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,uo=(e,t)=>{for(var r in t||(t={}))ao.call(t,r)&&co(e,r,t[r]);if(so)for(var r of so(t))lo.call(t,r)&&co(e,r,t[r]);return e},po=(e,t,r)=>co(e,"symbol"!=typeof t?t+"":t,r),ho=(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 fo{constructor(e,t){this.map=e,this.options=t,po(this,"layer"),po(this,"NgwWebmapItem",ro),po(this,"pixelRadius",10),po(this,"resourceId"),po(this,"webmapClassName","webmap"),po(this,"emitter",new S),po(this,"_extent"),po(this,"webmapResource"),po(this,"_webmapBaselayersIds",[]),po(this,"_lastActiveBaselayer");const r=t.resourceId;if(Array.isArray(r)?(this.resourceId=r[0],this.options.id=r[1]):this.resourceId=r,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}addLayer(e){return ho(this,null,(function*(){var t;this.options=uo(uo({},this.options),e),this.layer=yield this._getWebMapLayerItem();const r=null==(t=this.webmapResource)?void 0:t.constraining_extent;return this.options.useExtentConstrained&&this._extent&&r&&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.webmapResource}showLayer(){return ho(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}))}hideLayer(){return ho(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}))}setOpacity(e){return ho(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.webmapResource;if(e)return Pt(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.webmapResource;if(e&&e.bookmark_resource)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 Er(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 Jr({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 ho(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 ho(this,null,(function*(){const e=[];let t=this.getDependLayers();return t=t.sort(((e,t)=>t.id-e.id)),t.forEach((t=>{const r=t.item,n="style_parent_id"in r?r.style_parent_id:void 0;if(null!=n&&"layer"===r.item_type&&r.layer_identifiable){const r=t.properties.property("visibility");r.get()&&!r.isBlocked()&&e.push(n)}})),e}))}_getWebMapLayerItem(){return ho(this,null,(function*(){if(!this.resourceId)return;const e=yield this.getWebMapConfig(this.resourceId);return e&&e.root_item?new Promise((t=>{var r;const n=this.options.connector,o=(null==n?void 0:n.options.auth)?n.getAuthorizationHeaders():void 0,i=n.withCredentials,s=(a=uo({},this.options),l={withCredentials:i,headers:o,drawOrderEnabled:null!=(r=e.draw_order_enabled)&&r},oo(a,io(l)));var a,l;const c=new this.NgwWebmapItem({webMap:this.options.webMap,item:e.root_item,options:s,connector:n});c.emitter.on("init",(()=>{t(c)}))})):void 0}))}getWebMapConfig(e){return ho(this,null,(function*(){var t;const r=yield this.options.connector.getResource(e);if(r){const e=r[this.webmapClassName];if(this.webmapResource=e,this._setupBaselayers(r),e)return this._extent=null!=(t=e.initial_extent)?t:void 0,this._updateItemsParams(e.root_item,this.options.webMap,r),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)Ut({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){var n;if(e)if("group"===e.item_type||"root"===e.item_type){if("children"in e&&e.children){const n=e.children.map((e=>this._updateItemsParams(e,t,r)));e.children=n}"root"===e.item_type&&(e.display_name=r.resource.display_name)}else if("layer"===e.item_type){const r=e,n=v(this.options.connector.options.baseUrl+"/api/component/render/image"),o=r.layer_style_id;r.url=n,r.resourceId=o,r.updateWmsParams=e=>Io(e,o);const i=Cr({options:{adapter:r.layer_adapter.toUpperCase(),resource:o},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e=uo(uo({},r),i)}return"function"==typeof(null==(n=this.options.nativeOptions)?void 0:n.beforeItemCreated)&&(e=this.options.nativeOptions.beforeItemCreated(e)),e}}var yo=Object.defineProperty,mo=Object.defineProperties,bo=Object.getOwnPropertyDescriptors,go=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(go)for(var r of go(t))wo.call(t,r)&&_o(e,r,t[r]);return e},Lo=(e,t)=>mo(e,bo(t)),Po=(e,t)=>{var r={};for(var n in e)vo.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&go)for(var n of go(e))t.indexOf(n)<0&&wo.call(e,n)&&(r[n]=e[n]);return r};function Io(e,t){const r=e,{bbox:n,width:o,height:i,nd:s}=r,a=Po(r,["bbox","width","height","nd"]);return Lo(Oo({},a),{resource:Array.isArray(t)?t.join(","):t,extent:n,size:o+","+i,timestamp:Date.now(),nd:null!=s?s:200})}const xo={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 jo;const Eo={tms:"TILE"};var Ao=Object.defineProperty,Co=Object.getOwnPropertySymbols,Mo=Object.prototype.hasOwnProperty,ko=Object.prototype.propertyIsEnumerable,So=(e,t,r)=>t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,To=(e,t)=>{for(var r in t||(t={}))Mo.call(t,r)&&So(e,r,t[r]);if(Co)for(var r of Co(t))ko.call(t,r)&&So(e,r,t[r]);return e},No=(e,t,r)=>So(e,"symbol"!=typeof t?t+"":t,r);const Ro="https://qms.nextgis.com";function Fo(e,t=Ro,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)Mo.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Co)for(var n of Co(e))t.indexOf(n)<0&&ko.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=Ro);class o{constructor(e,t){No(this,"qms"),No(this,"options"),No(this,"map"),this.map=e;const n=To(To({},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",v(e),!0),n.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=Eo[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=To(To({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 Bo=Object.defineProperty,$o=Object.getOwnPropertySymbols,qo=Object.prototype.hasOwnProperty,Do=Object.prototype.propertyIsEnumerable,Uo=(e,t,r)=>t in e?Bo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vo=(e,t)=>{for(var r in t||(t={}))qo.call(t,r)&&Uo(e,r,t[r]);if($o)for(var r of $o(t))Do.call(t,r)&&Uo(e,r,t[r]);return e},Go=(e,t,r)=>Uo(e,"symbol"!=typeof t?t+"":t,r);class zo{constructor(e){Go(this,"options",{url:"https://qms.nextgis.com"}),Go(this,"url"),this.options=Vo(Vo({},this.options),e),this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return Fo({webMap:e,url:this.url})}}Go(zo,"utils",{createQmsAdapter:Fo});var Zo=Object.defineProperty,Wo=Object.defineProperties,Jo=Object.getOwnPropertyDescriptors,Ho=Object.getOwnPropertySymbols,Qo=Object.getPrototypeOf,Ko=Object.prototype.hasOwnProperty,Xo=Object.prototype.propertyIsEnumerable,Yo=Reflect.get,ei=(e,t,r)=>t in e?Zo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ti=(e,t)=>{for(var r in t||(t={}))Ko.call(t,r)&&ei(e,r,t[r]);if(Ho)for(var r of Ho(t))Xo.call(t,r)&&ei(e,r,t[r]);return e},ri=(e,t)=>Wo(e,Jo(t)),ni=(e,t,r)=>Yo(Qo(e),r,t),oi=(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())}));var ii=(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 si(e){return function(e){return ii(this,null,(function*(){const t=yield Er(e),r=[];return t.forEach((e=>{r.push(ur(e))})),r}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const ai=["fields","intersects","limit","orderBy","strategy"];function li(e){const t={};return ai.forEach((r=>{const n=e[r];void 0!==n&&(t[r]=n)})),t}var ci=Object.defineProperty,ui=Object.defineProperties,pi=Object.getOwnPropertyDescriptors,hi=Object.getOwnPropertySymbols,di=Object.getPrototypeOf,fi=Object.prototype.hasOwnProperty,yi=Object.prototype.propertyIsEnumerable,mi=Reflect.get,bi=(e,t,r)=>t in e?ci(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,gi=(e,t)=>{for(var r in t||(t={}))fi.call(t,r)&&bi(e,r,t[r]);if(hi)for(var r of hi(t))yi.call(t,r)&&bi(e,r,t[r]);return e},vi=(e,t)=>ui(e,pi(t)),wi=(e,t,r)=>bi(e,"symbol"!=typeof t?t+"":t,r),_i=(e,t,r)=>mi(di(e),r,t),Oi=(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 Li(e){return Oi(this,null,(function*(){var t,r;const{item:n,webMap:o,Adapter:i,connector:s,layerOptions:a,addLayerOptionsPriority:l}=e,c=null==l||l,u=a,p=i||a.Adapter||o.mapAdapter.layerAdapters.GEOJSON,h=[];let d,f,y=!1;const m=yield St(u,s);(null==(r=null==(t=u.adapterOptions)?void 0:t.popupOptions)?void 0:r.fromProperties)&&(u.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,n));const b=(e,t)=>Oi(this,null,(function*(){v(),f=new AbortController;const r=f.signal;return(null==t?void 0:t.signal)&&t.signal.addEventListener("abort",f.abort),(t=t||{}).signal=r,d={filters:e,options:t},si(gi({resourceId:m,filters:e,connector:s,cache:!0},t))}));let g=!1;const v=()=>{f&&(f.abort(),f=void 0)};class w extends p{constructor(){super(...arguments),wi(this,"emitter",new S),wi(this,"__onMapMove"),wi(this,"__onMapMoveStart"),wi(this,"__enableMapMoveListener"),wi(this,"__disableMapMoveListener")}addLayer(e){return Oi(this,null,(function*(){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==u.id&&(e.id=u.id),n&&n.vector_layer&&(e.type=xo[n.vector_layer.geometry_type]),u.adapterOptions&&(e=c?gi(gi({},u.adapterOptions),e):gi(gi({},e),u.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=_i(w.prototype,this,"addLayer").call(this,e);let s;return d={filters:e.propertiesFilter,options:li(e)},t&&(s=this.updateLayer()),r&&s&&(yield s),o&&o.startsWith("BBOX")&&!y&&this._addBboxEventListener(),i}))}getExtent(){return this.getBounds()}getBounds(){return Oi(this,null,(function*(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?xt({connector:s,resourceId:n.resource.id}):_i(w.prototype,this,"getBounds")?_i(w.prototype,this,"getBounds").call(this):void 0}))}beforeRemove(){g=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,v()}getCount(){return function({connector:e,resourceId:t,cache:r=!0,signal:n}){return e.route("feature_layer.feature.count",{id:t}).get({cache:r,signal:n}).then((e=>e.total_count))}({connector:s,resourceId:m,cache:!0})}updateLayer(e){return Oi(this,null,(function*(){var t;const r=e||d||{};if(null==(t=this.options.strategy)?void 0:t.startsWith("BBOX")){yield o.onLoad("create"),r.options=r.options||{},r.options.intersects=o.getBounds();const{minZoom:e,maxZoom:t}=this.options,n=o.getZoom();if(void 0!==n){if(void 0!==e&&n<e)return;if(void 0!==t&&n>t)return;if(y)return}}if(!g){try{this.emitter.emit("preupdate",r),o._emitLayerEvent("layer:preupdate",u.id||"",r);const e=yield b(r.filters,vi(gi({},r.options),{srs:this.options.srs}));let t=e;const n=yield this.getCount();if("BBOX+"===this.options.strategy){t={type:"FeatureCollection",features:[]};for(const r of e.features)-1===h.indexOf(String(r.id))&&(h.push(String(r.id)),t.features.push(r));y=void 0!==n&&h.length>=n,yield o.addLayerData(this,t)}else y=void 0!==n&&e.features.length>=n,yield o.setLayerData(this,e);this.emitter.emit("updated",e),o._emitLayerEvent("layer:updated",u.id||"",{data:e,newData:t,isFull:y})}catch(n){if(n instanceof Error&&"AbortError"!==n.name)throw n}_i(w.prototype,this,"updateLayer")&&_i(w.prototype,this,"updateLayer").call(this)}}))}propertiesFilter(e,t){return Oi(this,null,(function*(){if(v(),this.filter&&y)this.filter((t=>{const r=t.feature&&t.feature.properties&&br(gi({},t.feature.properties));return!r||Xt(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=yield b(e,vi(gi({},t),{srs:this.options.srs}));this.setData(r)}}))}removeFilter(){d=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()},o.emitter.on("layer:show",this.__enableMapMoveListener),o.emitter.on("layer:hide",this.__disableMapMoveListener),this.__enableMapMoveListener(this)}_removeBboxEventListener(){this.__enableMapMoveListener&&o.emitter.on("layer:show",this.__enableMapMoveListener),this.__disableMapMoveListener&&o.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=v,o.emitter.on("movestart",this.__onMapMoveStart),o.emitter.on("moveend",this.__onMapMove)}_removeMoveEventListener(){this.__onMapMove&&o.emitter.removeListener("moveend",this.__onMapMove),this.__onMapMoveStart&&o.emitter.removeListener("movestart",this.__onMapMoveStart)}}return w}))}var Pi=(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())}));var Ii=Object.defineProperty,xi=Object.defineProperties,ji=Object.getOwnPropertyDescriptors,Ei=Object.getOwnPropertySymbols,Ai=Object.prototype.hasOwnProperty,Ci=Object.prototype.propertyIsEnumerable,Mi=(e,t,r)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ki=(e,t)=>{for(var r in t||(t={}))Ai.call(t,r)&&Mi(e,r,t[r]);if(Ei)for(var r of Ei(t))Ci.call(t,r)&&Mi(e,r,t[r]);return e},Si=(e,t)=>xi(e,ji(t)),Ti=(e,t,r)=>Mi(e,"symbol"!=typeof t?t+"":t,r),Ni=(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 Ri(e){return Ni(this,arguments,(function*({layerOptions:e,connector:t,webMap:r,item:n}){const o=n.resource.cls;let s=e.adapter||o&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[o]||"IMAGE";if(void 0!==s&&(e.adapter=s),"IMAGE"===s){const e=r.getLayerAdapters();!e||e.IMAGE||(s="TILE")}const a=r.mapAdapter.layerAdapters[s];if(a){const o=yield St(e,t);return class extends a{constructor(s,a){super(s,a),this.map=s,Ti(this,"item",n),Ti(this,"resourceId",o),Ti(this,"blocked",!1),Ti(this,"layerVisibility");const l=Cr({options:e,webMap:r,baseUrl:t.options.baseUrl||""});if(l){const t=Si(ki(ki({},l),e.adapterOptions),{params:{resource:o},layers:l.layers||String(o),resourceId:o});e.adapterOptions&&i(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options=ki(ki({},this.options),t)}}addLayer(e){return super.addLayer(ki(ki({},this.options),e))}getIdentificationIds(){return Ni(this,null,(function*(){if(this.item){if("MVT"===s)return[this.item.resource.id];if(this.item.resource.parent){const e=this.item.resource.parent.id;if(i(e))return[e]}}return[]}))}getLegend(e){return Ni(this,null,(function*(){const n=this.options.id;if(void 0!==n){const i=yield t.route("render.legend_symbols",{id:o}).get(ki({cache:!0},e));return[new Vn({layerId:n,layer:this,resourceId:o,webMap:r,legend:i})]}return[]}))}}}throw new Error(s+" not supported yet. Only TILE")}))}var Fi=Object.defineProperty,Bi=Object.defineProperties,$i=Object.getOwnPropertyDescriptors,qi=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Ui=Object.prototype.propertyIsEnumerable,Vi=(e,t,r)=>t in e?Fi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gi=(e,t)=>{for(var r in t||(t={}))Di.call(t,r)&&Vi(e,r,t[r]);if(qi)for(var r of qi(t))Ui.call(t,r)&&Vi(e,r,t[r]);return e},zi=(e,t)=>Bi(e,$i(t)),Zi=(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 Wi={},Ji=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];function Hi(e){return Zi(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 Qi(zi(Gi({},e),{resource:s.resource.id}),t,r)}))}function Qi(e,t,r){return Zi(this,null,(function*(){let o,i;const s=e.adapter,a=yield St(e,r);if(a){const n=e.resource;if(i=n&&n.resource&&void 0!==n.resource.id?n:yield r.getResource(a),!i)throw"Resource item is not found";{const n=i.resource.cls,l={layerOptions:zi(Gi({},e),{resource:a}),connector:r,webMap:t,item:i};if(-1!==Ji.indexOf(n))if("webmap"===n)o=function(e){return Pi(this,arguments,(function*({layerOptions:e,webMap:t,connector:r}){const n=yield St(e,r);return class extends fo{constructor(e){super(e,{url:"",webMap:t,resourceId:n,connector:r})}}}))}(l);else if("vector_layer"===n||"postgis_layer"===n){const t=l.layerOptions.adapterOptions||{};if(t.type=t.type||i.vector_layer&&xo[i.vector_layer.geometry_type],l.layerOptions.adapterOptions=t,e.adapterOptions=l,void 0!==s&&"GEOJSON"!==s){if("MVT"!==s)return Hi(l);o=Ri(l)}else o=Li(l)}else{if("raster_layer"===n)return Hi(l);if("basemap_layer"===n)o=function(e){return oi(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(zo.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 oi(this,null,(function*(){if(n)return ni(e.prototype,this,"addLayer").call(this,ri(ti({},t),{url:n}))}))}}return e}}}}))}(l);else if("GEOJSON"===s&&i.resource.parent){const t=yield r.getResource(i.resource.parent.id);if(t){const r=zi(Gi({},e),{resource:i.resource.parent.id});o=Li(zi(Gi({},l),{item:t,layerOptions:r}))}}else o=Ri(l)}else{if(!Wi[n])throw`Resource class '${n}' not yet supported.`;{const e=Wi[n];let t;t=s&&"function"!=typeof t?e[s]:e,t&&(o=t(l))}}}}if(o)return o.then((e=>{if(e){const t=e;return i&&(t.prototype.item=i,t.prototype.resourceId=i.resource.id,t.prototype.connector=r),n(t,[Mt],{replace:!1}),t}}))}))}var Ki=Object.defineProperty,Xi=Object.getOwnPropertySymbols,Yi=Object.prototype.hasOwnProperty,es=Object.prototype.propertyIsEnumerable,ts=(e,t,r)=>t in e?Ki(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rs=(e,t)=>{for(var r in t||(t={}))Yi.call(t,r)&&ts(e,r,t[r]);if(Xi)for(var r of Xi(t))es.call(t,r)&&ts(e,r,t[r]);return e},ns=(e,t,r)=>ts(e,"symbol"!=typeof t?t+"":t,r);class os{constructor(e){if(this.options=e,ns(this,"url"),ns(this,"connector"),ns(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 ft({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){Wi[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(fo,rs({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 fo{constructor(e,r){super(e,r=Oo(Oo({},t),r))}};var t}}var is=Object.defineProperty,ss=Object.getOwnPropertySymbols,as=Object.prototype.hasOwnProperty,ls=Object.prototype.propertyIsEnumerable,cs=(e,t,r)=>t in e?is(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,us=(e,t)=>{for(var r in t||(t={}))as.call(t,r)&&cs(e,r,t[r]);if(ss)for(var r of ss(t))ls.call(t,r)&&cs(e,r,t[r]);return e},ps=(e,t,r)=>cs(e,"symbol"!=typeof t?t+"":t,r),hs=(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 ds{constructor(e){ps(this,"id"),ps(this,"label"),ps(this,"layerId"),ps(this,"parent"),ps(this,"fields"),ps(this,"geom"),ps(this,"extensions"),ps(this,"connector"),ps(this,"_item"),ps(this,"_geojson"),ps(this,"_resource"),ps(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):Dr(us({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 hs(this,null,(function*(){return(yield this.composite(e)).feature_layer}))}composite(e){return hs(this,null,(function*(){if(this._resource&&this._resource.feature_layer)return this._resource;const t=yield this.connector.getResource(this.layerId,e);if(!t)throw new Error("Resource does not exist");if(!t.feature_layer)throw new Error("Resource is not a vector layer");return this._resource=t,t}))}getBounds(e){return this._extent?Promise.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:n=!0,signal:o}){return r.route("feature_layer.feature.item_extent",{id:Number(e),fid:t}).get({cache:n,signal:o}).then((e=>{if(e&&e.extent){const{maxLat:t,maxLon:r,minLat:n,minLon:o}=e.extent;return[o,n,r,t]}}))}(us({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 fs=(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 ys(e){return fs(this,null,(function*(){return ur(yield Dr(e))}))}function ms(e,t){return r=this,n=null,o=function*(){var r,n;const o=yield e.route("pyramid.settings").get({query:{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="";const a=null==(n=(yield e.route("pyramid.csettings").get({query:{pyramid:["header_logo"]}})).pyramid)?void 0:n.header_logo;if(!a)return;{const[e,t]=a,r=atob(t),n=new Array(r.length);for(let s=0;s<r.length;s++)n[s]=r.charCodeAt(s);const o=new Uint8Array(n),i=new Blob([o],{type:e}),l=(window.URL||window.webkitURL).createObjectURL(i);s.src=l}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(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}var bs=Object.defineProperty,gs=Object.defineProperties,vs=Object.getOwnPropertyDescriptors,ws=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Os=Object.prototype.propertyIsEnumerable,Ls=(e,t,r)=>t in e?bs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ps=(e,t)=>{for(var r in t||(t={}))_s.call(t,r)&&Ls(e,r,t[r]);if(ws)for(var r of ws(t))Os.call(t,r)&&Ls(e,r,t[r]);return e},Is=(e,t)=>gs(e,vs(t));function xs(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=js(s.features,Number(o),t);if(e.length&&(n.push(...e),!t))break}}return n}function js(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 Es(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]=c(e,t);return`${r} ${n}`})).join(",")}))`}(t);if(!i)throw new Error("Not valid geometry format to make intersection");const s={geom:i,srs:3857,layers:o};return e.connector.route("feature_layer.identify").post({json:s,signal:r,cache:n})}const As={};function Cs(e){return As[e]}function Ms(e,t){As[e]=t}function ks(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}function Ss(e){return(t,r)=>{const n=t.map((e=>e()));return e(n,r)}}const Ts={"!":Ss((function([e]){return!e})),"!=":Ss((function([e,t]){return e!==t})),"<":Ss((function([e,t]){return e<t})),"<=":Ss((function([e,t]){return e<=t})),"==":Ss((function([e,t]){return e===t})),">":Ss((function([e,t]){return e>t})),">=":Ss((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()}},Ns={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 Rs(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return Fs(e);if("string"==typeof(t=e)&&t in Ns)return function(e){return Fs(Ns[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 Fs(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 Bs(e,t,r,n,o){if("number"==typeof r&&"number"==typeof o)return r+(e-t)/(n-t)*(o-r);try{const i=Rs(r),s=Rs(o);return function(e){return`rgb(${e.join(",")})`}(i.map(((r,o)=>Math.ceil(Bs(e,t,r,n,s[o])))))}catch(i){console.log(i)}throw new Error("Unsupported output type for linear interpolation.")}const $s={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 Bs(n,e,t,s,a)}throw new Error("Invalid interpolation type.")}};const qs={get:Ss((function([e,t],r){const n=t||r;return n&&"object"==typeof n&&e in n?n[e]:null})),length:Ss((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:Ss((function([e,t]){return t[e]})),has:Ss((function([e,t],r){const n=t||r;return!(!n||"object"!=typeof n||!(e in n))})),in:Ss((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":Ss((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:Ss((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}.`)}))},Ds={"+":Ss((e=>e.reduce(((e,t)=>e+t),0))),"-":Ss((e=>e.reduce(((e,t)=>e-t)))),"*":Ss((e=>e.reduce(((e,t)=>e*t),1))),"/":Ss((e=>e.reduce(((e,t)=>e/t)))),"%":Ss((e=>e[0]%e[1])),"^":Ss((e=>Math.pow(e[0],e[1]))),abs:Ss((e=>Math.abs(e[0]))),acos:Ss((e=>Math.acos(e[0]))),asin:Ss((e=>Math.asin(e[0]))),atan:Ss((e=>Math.atan(e[0]))),ceil:Ss((e=>Math.ceil(e[0]))),cos:Ss((e=>Math.cos(e[0]))),e:()=>Math.E,floor:Ss((e=>Math.floor(e[0]))),ln:Ss((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:Ss((e=>Math.log10(e[0]))),log2:Ss((e=>Math.log2(e[0]))),max:Ss((e=>Math.max(...e))),min:Ss((e=>Math.min(...e))),pi:()=>Math.PI,round:Ss((e=>Math.round(e[0]))),sin:Ss((e=>Math.sin(e[0]))),sqrt:Ss((e=>Math.sqrt(e[0]))),tan:Ss((e=>Math.tan(e[0])))},Us={concat:Ss((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:Ss((e=>String(e[0]).toLowerCase())),upcase:Ss((e=>String(e[0]).toUpperCase()))},Vs=(e,t,r)=>{try{const n=e(t,r);if(void 0!==n)return n}catch(n){}};function Gs(e){return(t,r)=>{for(const n of t){const t=Vs(e,n,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}const zs={array:Ss((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:Ss(Gs((e=>"boolean"==typeof e?e:void 0))),literal:Ss((([e])=>e)),number:Ss(Gs((e=>"number"==typeof e?e:void 0))),object:Ss(Gs((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:Ss(Gs((e=>"string"==typeof e?e:void 0))),"to-boolean":Ss(Gs(Boolean)),"to-number":Ss(Gs(Number)),"to-string":Ss(Gs(String)),typeof:Ss((([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 Zs=Object.defineProperty,Ws=Object.getOwnPropertySymbols,Js=Object.prototype.hasOwnProperty,Hs=Object.prototype.propertyIsEnumerable,Qs=(e,t,r)=>t in e?Zs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ks=(e,t)=>{for(var r in t||(t={}))Js.call(t,r)&&Qs(e,r,t[r]);if(Ws)for(var r of Ws(t))Hs.call(t,r)&&Qs(e,r,t[r]);return e};function Xs(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in Ys&&r.length>0}return!1}const Ys=Ks(Ks(Ks(Ks(Ks(Ks({},Ds),zs),Us),qs),Ts),$s);function ea(e,t={}){const[r,...n]=e,o=Ys[r];if(o)return o(n.map((e=>()=>Xs(e)?ea(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}var ta=Object.defineProperty,ra=Object.getOwnPropertySymbols,na=Object.prototype.hasOwnProperty,oa=Object.prototype.propertyIsEnumerable,ia=(e,t,r)=>t in e?ta(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,sa=(e,t)=>{for(var r in t||(t={}))na.call(t,r)&&ia(e,r,t[r]);if(ra)for(var r of ra(t))oa.call(t,r)&&ia(e,r,t[r]);return e};function aa(e){return t=>{const r=t.properties;return!!r&&ea(e,r)}}const la=["iconSize","iconAnchor"];function ca(e){return"function"==typeof e}var ua=Object.defineProperty,pa=Object.getOwnPropertySymbols,ha=Object.prototype.hasOwnProperty,da=Object.prototype.propertyIsEnumerable,fa=(e,t,r)=>t in e?ua(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ya=(e,t)=>{for(var r in t||(t={}))ha.call(t,r)&&fa(e,r,t[r]);if(pa)for(var r of pa(t))da.call(t,r)&&fa(e,r,t[r]);return e};function ma(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=Jt({},e.properties);return!!r&&(r.$id=e.id,Xt(r,t))}(e,t[0])));return n?ya(ya({},t),n[1]):t}}function ba({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const n in e)if(-1===la.indexOf(n)){const o=n,i=e[o];Xs(i)&&(t=!0,r[o]=aa(i))}if(t)return t=>{const n={};for(const e in r)n[e]=r[e](t);return sa(sa({},e),n)}}(e);if(r){const n=e=>va({paint:r(e),defaultPaint:t});return n.paint=ga({paint:e,defaultPaint:t}),n}return ga({paint:e,defaultPaint:t})}function ga({paint:e,defaultPaint:t}){var r;let n=ya({},t);return n=ya(ya({},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 va({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let n=ya({},t);if(ca(e)){const n=n=>{const o=va({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=>va({paint:ma(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=va({paint:o,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;n=ba({paint:e,defaultPaint:t})}return ca(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}function wa(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 _a(e){let t;if("FeatureCollection"===e.type){t=wa(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=wa(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}const Oa={polygon:"path",line:"path",point:"circle"},La={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function Pa(e){if(e.data){const t=La[_a(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":Oa[t]),e.type=e.type||t}return e}var Ia=Object.defineProperty,xa=(e,t,r)=>((e,t,r)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ja{constructor(){xa(this,"backspace",8),xa(this,"tab",9),xa(this,"enter",13),xa(this,"shift",16),xa(this,"ctrl",17),xa(this,"alt",18),xa(this,"pause/break",19),xa(this,"caps_lock",20),xa(this,"escape",27),xa(this,"page_up",33),xa(this,"page_down",34),xa(this,"end",35),xa(this,"home",36),xa(this,"left_arrow",37),xa(this,"up_arrow",38),xa(this,"right_arrow",39),xa(this,"down_arrow",40),xa(this,"insert",45),xa(this,"delete",46),xa(this,"left_window_key",91),xa(this,"right_window_key",92),xa(this,"select_key",93),xa(this,"numpad_0",96),xa(this,"numpad_1",97),xa(this,"numpad_2",98),xa(this,"numpad_3",99),xa(this,"numpad_4",100),xa(this,"numpad_5",101),xa(this,"numpad_6",102),xa(this,"numpad_7",103),xa(this,"numpad_8",104),xa(this,"numpad_9",105),xa(this,"multiply",106),xa(this,"add",107),xa(this,"subtract",109),xa(this,"decimal_point",110),xa(this,"divide",111),xa(this,"f1",112),xa(this,"f2",113),xa(this,"f3",114),xa(this,"f4",115),xa(this,"f5",116),xa(this,"f6",117),xa(this,"f7",118),xa(this,"f8",119),xa(this,"f9",120),xa(this,"f10",121),xa(this,"f11",122),xa(this,"f12",123),xa(this,"num_lock",144),xa(this,"scroll_lock",145),xa(this,"semi-colon",186),xa(this,"equal_sign",187),xa(this,",",188),xa(this,"-",189),xa(this,".",190),xa(this,"/",191),xa(this,"`",192),xa(this,"[",219),xa(this,"\\",220),xa(this,"]",221),xa(this,"'",222)}}var Ea=Object.defineProperty,Aa=(e,t,r)=>((e,t,r)=>t in e?Ea(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);var Ca=Object.defineProperty,Ma=(e,t,r)=>((e,t,r)=>t in e?Ca(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class ka{constructor(e,t){this.webMap=e,Ma(this,"name"),Ma(this,"event"),Ma(this,"value"),t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event="string"==typeof t.event?[t.event]:t.event))}getValue(){return this.value}setValue(e){this.value=e}}var Sa=Object.defineProperty,Ta=(e,t,r)=>((e,t,r)=>t in e?Sa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Na extends ka{constructor(){super(...arguments),Ta(this,"name","bounds"),Ta(this,"event",["moveend"])}getValue(){return this.webMap.getBounds()}setValue(e){this.webMap.setView({bounds:e})}toString(){const e=this.getValue();if(e)return e.slice(0,4).map((e=>e.toFixed(5))).join("_")}parse(e){return e.split("_").map(Number)}}var Ra=Object.defineProperty,Fa=(e,t,r)=>((e,t,r)=>t in e?Ra(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Ba extends ka{constructor(){super(...arguments),Fa(this,"name","center"),Fa(this,"event",["moveend"])}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(){const e=this.getValue();if(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}return""}parse(e){return e.split("_").map(Number)}}var $a=Object.defineProperty,qa=(e,t,r)=>((e,t,r)=>t in e?$a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);class Da extends ka{constructor(){super(...arguments),qa(this,"name","zoom"),qa(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(){return String(this.getValue())}parse(e){return Number(e)}}var Ua=Object.defineProperty,Va=(e,t,r)=>((e,t,r)=>t in e?Ua(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),Ga=(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 za=0;const Za={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},Wa=class e{constructor(t){Va(this,"options",Za),Va(this,"emitter",new S),Va(this,"keys",e.keys),Va(this,"mapAdapter"),Va(this,"runtimeParams",[]),Va(this,"getPaintFunctions",e.getPaintFunctions),Va(this,"mapStateItems",[Ba,Da,Na]),Va(this,"id",za++),Va(this,"mapState",[]),Va(this,"_initMapState",{}),Va(this,"_starterKits"),Va(this,"_extent"),Va(this,"_eventsStatus",{}),Va(this,"_coordFromMapClickAbort"),Va(this,"_mapEvents",{}),this.mapAdapter=t.mapAdapter,this._starterKits=t.starterKits||[],t&&(this.options=o(Za||{},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 Ga(this,null,(function*(){return this.getEventStatus("create")||(yield this._setInitMapState(this.mapStateItems),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()}mapStateWithFunc(e){const t={};return this.mapState.forEach((r=>{t[r.name]=e(r)})),t}getStateAsString(){return this.mapStateWithFunc((e=>e.toString()))}getState(){return this.mapStateWithFunc((e=>e.getValue()))}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.onLoad().then((()=>{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:u(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&&i(t)?this.mapAdapter.setView(r,t):(r&&this.mapAdapter.setCenter(r),i(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=>i(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(),a(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 Ga(this,null,(function*(){}))}_onLoadSync(){return Ga(this,null,(function*(){}))}_setupMap(){return Ga(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),i(e.maxzoom)&&(this.options.zoom=e.maxzoom),i(e.minzoom)&&(this.options.zoom=e.minzoom),i(e.maxzoom)&&i(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){this.mapState.filter((t=>t.event.includes(e))).forEach((e=>{const t=e.toString();this.runtimeParams.forEach((r=>{r.set(e.name,t)}))}))}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)}))}};Va(Wa,"keys",new class{constructor(){Aa(this,"keyCodeAlias",new ja),Aa(this,"keys",{}),Aa(this,"_windowOnFocus"),Aa(this,"_keysPressed"),Aa(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={}}}),Va(Wa,"getPaintFunctions");let Ja=Wa;var Ha=Object.defineProperty,Qa=Object.defineProperties,Ka=Object.getOwnPropertyDescriptors,Xa=Object.getOwnPropertySymbols,Ya=Object.prototype.hasOwnProperty,el=Object.prototype.propertyIsEnumerable,tl=(e,t,r)=>t in e?Ha(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rl=(e,t)=>{for(var r in t||(t={}))Ya.call(t,r)&&tl(e,r,t[r]);if(Xa)for(var r of Xa(t))el.call(t,r)&&tl(e,r,t[r]);return e},nl=(e,t)=>Qa(e,Ka(t)),ol=(e,t,r)=>tl(e,"symbol"!=typeof t?t+"":t,r),il=(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 sl extends Ja{constructor(e){super(e),ol(this,"_layersIdCounter",1),ol(this,"_layersOrderCounter",1),ol(this,"_baselayers",[]),ol(this,"_layers",{}),ol(this,"_selectedLayers",[]);const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}fitLayer(e,t){return il(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 il(this,null,(function*(){return yield this.addLayer(e,nl(rl({},t),{baselayer:!0}),void 0)}))}addLayer(e){return il(this,arguments,(function*(e,t={},r){var n,o;const s=this._layersIdCounter++,a=i(r)?r:void 0!==t.order?t.order:this.reserveOrder();let l;"string"==typeof e?l=this.getLayerAdapter(e):"function"==typeof e?l=e:"then"in e&&(l=yield e);const c=t;this._updateGeoJsonOptions(c);const u=null==(n=(t=rl({id:String(s),order:a},t)).visibility)||n;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:l});e&&(e.options&&(t=e.options),e.adapter&&(l=e.adapter))}if(void 0!==l){const e=new l(this.mapAdapter.map,t);let r;e.options=rl(rl({},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(s),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!=(o=e.options.order)?o:a,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,c.filter&&this.filterLayer(e,c.filter),t.baselayer&&this._baselayers.push(r),u&&(yield this.showLayer(r)));const i=t.opacity;null!=i&&i<=1&&this.setLayerOpacity(e,i);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 il(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 il(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=Pa(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",nl(rl({},t),{url:e}))}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",nl(rl({},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=>il(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,t){const r=this.getLayer(e);if(r){if(r.updateLayer)return Promise.resolve(r.updateLayer(t));if(this.isLayerVisible(r))return this.hideLayer(r,{silent:!0}).then((()=>this.showLayer(r,{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||Xt(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(i(t)&&n.startsWith("layer:")){const e=n.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}_onLayerClick(e){return il(this,null,(function*(){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerDoubleClick(e){return il(this,null,(function*(){return this._emitLayerEvent("layer:dblclick",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerSelect(e){return il(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:s,onMouseOut:a,onMouseOver:l}=e,c=n||s,u=o||s;e.onClick=e=>(c&&c(e),this._onLayerClick(e)),e.onDoubleClick=e=>(u&&u(e),this._onLayerDoubleClick(e)),e.onMouseOut=e=>{const t=e.layer.id;a&&a(e),i(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;l&&l(e),i(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const p=t||r;e.onSelect=e=>(p&&p(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=va({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=va({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}var al=Object.defineProperty,ll=(e,t,r)=>((e,t,r)=>t in e?al(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),cl=(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 ul=class e extends sl{constructor(){super(...arguments),ll(this,"_loadControlQueue",{"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]}),ll(this,"_isControlLoading",{"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1})}addControl(e,t,r){return cl(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,(()=>cl(this,null,(function*(){const r=yield n,o=this.mapAdapter.addControl(r,t);e(o)}))))}))}))}createControl(e,t){return cl(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}))}createButtonControl(e){return cl(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}))}createToggleControl(e){return cl(this,null,(function*(){return yield this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?ks(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 cl(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}))}};ll(ul,"controls",{CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)});let pl=ul;var hl=Object.getOwnPropertySymbols,dl=Object.prototype.hasOwnProperty,fl=Object.prototype.propertyIsEnumerable,yl=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),ml=(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())})),bl=(e,t,r)=>(t=e[yl("asyncIterator")])?t.call(e):(e=e[yl("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 gl extends pl{constructor(e){super(e),this._addControls(),Ms(this.id,this)}static get(e){return Cs(e)}_addLayerProviders(){return ml(this,null,(function*(){try{for(var e,t,r,n=bl(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=bl(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 ml(this,null,(function*(){try{for(var e,t,r,n=bl(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)dl.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&hl)for(var n of hl(e))t.indexOf(n)<0&&fl.call(e,n)&&(r[n]=e[n]);return r})(n,["position"]);this.addControl(t,o||"top-left",i)})),this._emitStatusEvent("controls:create")}}function vl(){return["ZOOM","ATTRIBUTION"]}var wl=Object.defineProperty,_l=Object.defineProperties,Ol=Object.getOwnPropertyDescriptors,Ll=Object.getOwnPropertySymbols,Pl=Object.prototype.hasOwnProperty,Il=Object.prototype.propertyIsEnumerable,xl=(e,t,r)=>t in e?wl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jl=(e,t)=>{for(var r in t||(t={}))Pl.call(t,r)&&xl(e,r,t[r]);if(Ll)for(var r of Ll(t))Il.call(t,r)&&xl(e,r,t[r]);return e},El=(e,t)=>_l(e,Ol(t));function Al(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(El(jl({},r),{resource:t}));else if(Array.isArray(t)){const[o,i]=t;e.push(jl(El(jl({},r),{resource:o,id:i}),n))}else"object"==typeof t&&e.push(jl(jl(jl({},r),t),n))}var Cl=Object.defineProperty,Ml=Object.defineProperties,kl=Object.getOwnPropertyDescriptors,Sl=Object.getOwnPropertySymbols,Tl=Object.prototype.hasOwnProperty,Nl=Object.prototype.propertyIsEnumerable,Rl=(e,t,r)=>t in e?Cl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const Fl={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 Bl(e){const t=[new zo];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 ft({baseUrl:e.baseUrl||"",auth:e.auth,withCredentials:e.withCredentials}),(e=o(Fl,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new os({connector:e.connector,auth:e.auth})),r=((e,t)=>{for(var r in t||(t={}))Tl.call(t,r)&&Rl(e,r,t[r]);if(Sl)for(var r of Sl(t))Nl.call(t,r)&&Rl(e,r,t[r]);return e})({},e),e=Ml(r,kl({starterKits:t,create:!1}))}var $l=Object.defineProperty,ql=Object.defineProperties,Dl=Object.getOwnPropertyDescriptors,Ul=Object.getOwnPropertySymbols,Vl=Object.getPrototypeOf,Gl=Object.prototype.hasOwnProperty,zl=Object.prototype.propertyIsEnumerable,Zl=Reflect.get,Wl=(e,t,r)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Jl=(e,t)=>{for(var r in t||(t={}))Gl.call(t,r)&&Wl(e,r,t[r]);if(Ul)for(var r of Ul(t))zl.call(t,r)&&Wl(e,r,t[r]);return e},Hl=(e,t)=>ql(e,Dl(t)),Ql=(e,t,r)=>Wl(e,"symbol"!=typeof t?t+"":t,r),Kl=(e,t,r)=>Zl(Vl(e),r,t),Xl=(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 Yl=class e extends gl{constructor(e){super(Bl(e)),Ql(this,"emitter",new S),Ql(this,"connector"),Ql(this,"_ngwLayers",{}),Ql(this,"$$selectFromNgwRaster"),Ql(this,"$$selectFromNgwVector"),Ql(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 Xl(this,null,(function*(){return yield this.onLoad("controls:create"),Kl(e.prototype,this,"addControl").call(this,t,r,n)}))}addNgwLayer(e){return Xl(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(i(this.options.baseUrl))try{i(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},i(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),Qi(e,t,r)}(e,this,this.connector),r=Jl(Jl({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=g(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 Dr(Jl({connector:this.connector},e))}fetchNgwLayerItems(e){return Er(Jl({connector:this.connector},e))}fetchNgwLayerFeature(e){return ys(Jl({connector:this.connector},e))}fetchNgwLayerFeatures(e){return si(Jl({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=xs(r);return n&&n.length?Dr(Ps(Ps({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,{multiple:t,signal:r}={}){const n=new AbortController;if(r){if(r.aborted)return Promise.reject(new ft.errors.AbortError);r.addEventListener("abort",(()=>{n.abort("AbortError")}))}const o=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(ur(Is(Ps({},t),{geom:e})))}}}}const o=xs(r);return o&&o.length?ys(Ps(Is(Ps({},n),{connector:t}),o[0])):Promise.resolve(void 0)}({identify:e,connector:this.connector,multiple:t,requestOptions:{signal:n.signal}});return o&&"then"in o?(this._addPromise("identify",o,n),o):Promise.resolve(o)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,{multiple:t})}getNgwLayers(){return Xl(this,null,(function*(){return yield this.onLoad(),this._ngwLayers}))}getNgwLayerByResourceId(e){return Xl(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&&"style_parent_id"in t.item&&void 0!==t.item.style_parent_id&&t.item.style_parent_id===e));if(t)return t.layer}}}))}fitLayer(t,r){return Xl(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&&this.fitResource(e.resource.id)}else Kl(e.prototype,this,"fitLayer").call(this,"number"==typeof t?String(t):t,r)}))}fitResource(e,t){return Xl(this,null,(function*(){const r=yield this.connector.resources.getIdOrFail(e),n=yield xt({resourceId:r,connector:this.connector});n&&this.fitBounds(n,t)}))}zoomToLayer(e){return Xl(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 Xl(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;if(o&&n.options.selectable&&i&&this.isLayerVisible(n)){const e=o.call(n);r.push(e)}}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 l=this.options.pixelRadius||10,c=this.getCenter();let u=this.getZoom();if(u=void 0!==u?u:20,!c||!u)return void this._emitStatusEvent("ngw:select",null);const p=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}(c,u,l);let h;if(this.options.highlightIdentification){const t=this.options.highlightIdentification,r="number"==typeof t?t:1e3,[n,o]=e.lngLat;h={type:"Polygon",coordinates:[f(n,o,p)]};const i=yield this.addGeoJsonLayer({data:{type:"Feature",geometry:h}});r!==1/0&&setTimeout((()=>{this.removeLayer(i)}),r)}const d=new AbortController,y=function(e,t){a(e);const[r,n]=e.lngLat,{geom:o,radius:i}=t,s=null!=o?o:f(r,n,i);return Es(Is(Ps({},t),{geom:s}))}(e,{layers:s,connector:this.connector,radius:p,geom:h,signal:d.signal}).then((t=>{const r=Hl(Jl({},t),{resources:s,sourceType:"raster",event:e}),n=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",n),n}));return this._addPromise("select",y,d),y}))}_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,e),n.push([t,r])}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}_createWebMap(){return Xl(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&&Al(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),Al(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,features:[{id:Number(e),fields:n.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:n.geometry}]},o={featureCount:1,[r]:t};return this._emitStatusEvent("ngw:select",this._prepareToIdentify(Hl(Jl({},o),{resources:[r],sourceType:"vector"}))),o}}}_prepareToIdentify(e){return Hl(Jl({},e),{getIdentifyItems:()=>xs(e,!0).map((e=>new ds({feature:e.feature,connector:this.connector})))})}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}_whiteLabel(){return Xl(this,null,(function*(){const e=this.getContainer();if(e){const t=yield ms(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}))}};Ql(Yl,"getIcon",(function(e={}){var n,o,i,s,a,l;const c=null!=(n=e.shape)?n:"circle",u=null!=(o=e.color)?o:"blue",p=null!=(i=e.strokeColor)?i:"white",h=null!=(s=e.size)?s:r,d=null!=(a=e.rotate)?a:0,f=null!=(l=e.anchor)?l:[h/2,h/2],y=void 0!==e.stroke?Number(e.stroke):.8,m=e.p||t[c]||"circle",b="string"==typeof m?m:m(e),g=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").documentElement}(e.svg||function({width:e,height:t,stroke:n=0,content:o}){const i=n/2;return`<svg\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n width="${e}"\n height="${t}"\n viewBox="-${i} -${i} ${r+n} ${r+n}"\n >${o}</svg>`}({width:h,height:h,stroke:y,content:b}));return g.setAttribute("width",String(h)),g.setAttribute("height",String(h)),g.setAttribute("fill",u),y&&(g.setAttribute("stroke",p),g.setAttribute("stroke-width",String(y))),{type:"icon",iconSize:[h,h],iconAnchor:f,html:(new XMLSerializer).serializeToString(g),rotate:d,svg:g}}));let ec=Yl;return e.NgwMap=ec,e.WebMap=gl,e.WebMapControls=pl,e.WebMapLayers=sl,e.WebMapMain=Ja,e.createNgwMap=function(e){return t=this,r=null,n=function*(){return new ec(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=ks,e.createWebMap=function(e){return t=this,r=null,n=function*(){return new gl(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=_a,e.findMostFrequentGeomType=wa,e.getDefaultControls=vl,e.getWebMap=Cs,e.paintTypeAlias=Oa,e.setWebMap=Ms,e.typeAlias=La,e.updateGeoJsonAdapterOptions=Pa,e}({});
2
2
  //# sourceMappingURL=ngw-map.global.prod.js.map