@nextgis/ngw-map 1.19.2 → 2.0.0-alpha.1

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 e,t={exports:{}},r="object"==typeof Reflect?Reflect:null,s=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};e=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function n(){n.init.call(this)}t.exports=n,t.exports.once=function(e,t){return new Promise((function(r,s){function i(r){e.removeListener(t,n),s(r)}function n(){"function"==typeof e.removeListener&&e.removeListener("error",i),r([].slice.call(arguments))}y(e,t,n,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&y(e,"error",t,r)}(e,i,{once:!0})}))},n.EventEmitter=n,n.prototype._events=void 0,n.prototype._eventsCount=0,n.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?n.defaultMaxListeners:e._maxListeners}function l(e,t,r,s){var i,n,o,l;if(a(r),void 0===(n=e._events)?(n=e._events=Object.create(null),e._eventsCount=0):(void 0!==n.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),o=n[t]),void 0===o)o=n[t]=r,++e._eventsCount;else if("function"==typeof o?o=n[t]=s?[r,o]:[o,r]:s?o.unshift(r):o.push(r),(i=c(e))>0&&o.length>i&&!o.warned){o.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=t,h.count=o.length,l=h,console&&console.warn&&console.warn(l)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,r){var s={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=h.bind(s);return i.listener=r,s.wrapFn=i,i}function p(e,t,r){var s=e._events;if(void 0===s)return[];var i=s[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(i):f(i,i.length)}function d(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function f(e,t){for(var r=new Array(t),s=0;s<t;++s)r[s]=e[s];return r}function y(e,t,r,s){if("function"==typeof e.on)s.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(n){s.once&&e.removeEventListener(t,i),r(n)}))}}Object.defineProperty(n,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),n.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},n.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},n.prototype.getMaxListeners=function(){return c(this)},n.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i="error"===e,n=this._events;if(void 0!==n)i=i&&void 0===n.error;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=n[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var l=c.length,h=f(c,l);for(r=0;r<l;++r)s(h[r],this,t)}return!0},n.prototype.on=n.prototype.addListener=function(e,t){return l(this,e,t,!1)},n.prototype.prependListener=function(e,t){return l(this,e,t,!0)},n.prototype.once=function(e,t){return a(t),this.on(e,u(this,e,t)),this},n.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,u(this,e,t)),this},n.prototype.removeListener=function(e,t){var r,s,i,n,o;if(a(t),void 0===(s=this._events))return this;if(void 0===(r=s[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete s[e],s.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(i=-1,n=r.length-1;n>=0;n--)if(r[n]===t||r[n].listener===t){o=r[n].listener,i=n;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,i),1===r.length&&(s[e]=r[0]),void 0!==s.removeListener&&this.emit("removeListener",e,o||t)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(e){var t,r,s;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var i,n=Object.keys(r);for(s=0;s<n.length;++s)"removeListener"!==(i=n[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(s=t.length-1;s>=0;s--)this.removeListener(e,t[s]);return this},n.prototype.listeners=function(e){return p(this,e,!0)},n.prototype.rawListeners=function(e){return p(this,e,!1)},n.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):d.call(e,t)},n.prototype.listenerCount=d,n.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]};class m extends Error{constructor(){super(),this.name="CancelError",Object.setPrototypeOf(this,m.prototype)}}class g{constructor(e={}){this.options=e,this._promises=new Map}get isLoaded(){return this._promises.size>0}remove(e){this._promises.has(e)&&(this._promises.delete(e),this._onStop())}get(e){return this._promises.get(e)}add(e,t){const r=t||e,s=this._promises.get(r);return this.options.onStart&&!this.isLoaded&&this.options.onStart(),s||(this._promises.set(r,e),e.finally((()=>{this.remove(r)})),e)}abort(){this.isLoaded&&(this._promises.forEach((e=>{e.cancel&&e.cancel()})),this._promises.clear(),this._onStop())}waitFunc(e,t=""){const r=this.get(t=t||e.name);return r||this.add(e(),t)}WaitForMe(e=""){const t=this.get.bind(this),r=this.add.bind(this);return function(s,i,n){const o=n.value;return e=e||i,n.value=function(...s){const i=t(e);if(i)return i;return r(o.apply(this,s),e)},n}}GetOrCreateDecorator(e=""){return this.WaitForMe(e)}_onStop(){this.options.onStop&&!this.isLoaded&&this.options.onStop()}}class _ extends Error{constructor(){super(),this.name="TimeoutError",Object.setPrototypeOf(this,_.prototype)}}const v=(e,t,r,s)=>{try{e(r(s))}catch(i){t(i)}};let b=0;class w{constructor(e,t){this.id=b++,this._isCanceled=!1,this._isPending=!0,this._cancelHandlers=[],this._children=[],this._cancelPromise=new Promise(((e,t)=>{this._setCanceledCallback=t=>e(t||new m)}));const r=[this._cancelPromise,new Promise(((t,r)=>e((e=>{e instanceof w?this.attach(e):this._isPending=!1,t(e)}),(e=>{this._isPending=!1,r(e)}),(e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)}))))];t&&r.push(new Promise(((e,r)=>{setTimeout((()=>{if(this._isPending)try{this.cancel()}finally{r(new _)}}),t)}))),this._promise=Promise.race(r)}static createControl(e){return new g(e)}static resolve(e){return new w((t=>t(e)))}static reject(e){return new w(((t,r)=>r(e)))}static all(e){return new w(((t,r)=>{Promise.all(e).then(t).catch(r)})).catch((t=>{if(t instanceof this.CancelError)for(const r of e){"cancel"in r&&r.cancel()}throw t}))}attach(e){this._isCanceled?e.cancel():this._children.push(e)}then(e,t){const r=new w(((r,s)=>{if(this._promise){const i=e=>{t?v(r,s,t,e):s(e)};this._promise.then((t=>{this._isCanceled?i(t):e?v(r,s,e,t):r(t)}),i)}}));return r._parentPromise=this,this._children.push(r),r}catch(e){return this._isCanceled&&e&&e(new m),this.then(void 0,e)}finally(e){return this._promise?this._promise.finally(e):Promise.reject(this._isCanceled?new m:e)}cancel(){if(this._isCanceled||!this._isPending)return this;this._isCanceled=!0;const e=this._getTopParent();if(e&&e.cancel(),this._children&&this._children.forEach((e=>e.cancel())),this._isPending){if(this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(t){}this._setCanceledCallback&&this._setCanceledCallback()}return this._destroy(),this}_getTopParent(){let e=this._parentPromise,t=!!e;for(;t;)e&&e._parentPromise?(e=e._parentPromise,t=!!e):t=!1;return e}_destroy(){this._setCanceledCallback=void 0,this._cancelPromise=void 0,this._promise=void 0}}w.CancelError=m,w.TimeoutError=_,w.PromiseControl=g,Object.setPrototypeOf(w.prototype,Promise.prototype);var L=w;function O(e,t,r={}){const s=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 i=void 0===r.replace||r.replace;t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((r=>{const n=-1!==s.indexOf(r);if(!i&&!n||i){const s=Object.getOwnPropertyDescriptor(t.prototype,r);s&&Object.defineProperty(e.prototype,r,s)}}))}))}function I(e){return null!=e}function E(e){return"string"==typeof e?!!e:I(e)}function A(e,t,r=!1){let s=e;const i=t,n=Array.isArray(i);let o=n&&[]||{};return n&&Array.isArray(i)?r?(s=s||[],o=o.concat(s),i.forEach(((e,t)=>{void 0===o[t]?o[t]=e:"object"==typeof e?o[t]=A(s[t],e,r):-1===s.indexOf(e)&&o.push(e)}))):o=i:(s&&"object"==typeof s&&Object.keys(s).forEach((function(e){o[e]=s[e]})),Object.keys(i).forEach((function(e){o[e]="object"==typeof i[e]&&i[e]&&"object"==typeof s[e]&&"object"==typeof i[e]?A(s[e],i[e],r):i[e]}))),o}function C(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}const P=6371;function k(e){return{type:"Polygon",coordinates:[M(e)]}}function M(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const x=Math.PI/180,S=180/Math.PI;function N(e,t){t=t>85.06?85.06:t<-85.06?-85.06:t;const r=20037508.34*e/180;let s=Math.log(Math.tan((90+t)*Math.PI/360))/(Math.PI/180);return s=20037508.34*s/180,[r,s]}function F(e,t,r,s){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===s:T(e,t));return e===t}function T(e,t){const r=Object.keys(e).sort(),s=Object.keys(t).sort();if(r.length!==s.length)return!1;if(r.join("")!==s.join(""))return!1;for(let i=0;i<r.length;i++){if(!F(e[r[i]],t[s[i]],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 R(e){return"[object Object]"===Object.prototype.toString.call(e)}function j(e){return e.replace(/([^:]\/)\/+/g,"$1")}function $(e){return"function"==typeof e}function q(e){return(t,r)=>{const s=t.map((e=>e()));return e(s,r)}}const V={"!":q((function([e]){return!e})),"!=":q((function([e,t]){return e!==t})),"<":q((function([e,t]){return e<t})),"<=":q((function([e,t]){return e<=t})),"==":q((function([e,t]){return e===t})),">":q((function([e,t]){return e>t})),">=":q((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](),s=e[t+1]();if(r)return s}return(0,e[e.length-1])()},match:e=>{const[t,...r]=e,s=t(),i=r.splice(-1,r.length%2)[0];for(let n=0;n<r.length-1;n+=2){if(r[n]()===s)return r[n+1]()}return i()}},D={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 G(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return U(e);if("string"==typeof(t=e)&&t in D)return function(e){return U(D[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:s}){return[e,t,r,...void 0!==s?[s]:[]]}(e);var t,r;throw new Error(`The '${e}' cannot be converted to color`)}function U(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 z(e,t,r,s,i){if("number"==typeof r&&"number"==typeof i)return r+(e-t)/(s-t)*(i-r);try{const n=G(r),o=G(i);return function(e){return`rgb(${e.join(",")})`}(n.map(((r,i)=>Math.ceil(z(e,t,r,s,o[i])))))}catch(n){console.log(n)}throw new Error("Unsupported output type for linear interpolation.")}const Z={step:e=>{const[t,r,...s]=e,i=t();if("number"!=typeof i)return r();for(let n=0;n<s.length-2;n+=2){const e=s[n](),t=s[n+1](),r=s[n+2]();if(i>=e&&i<r)return t}return i>=s[s.length-2]()?s[s.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 s=t();if("number"!=typeof s)throw new Error("Input must be a number.");const i=e();for(let n=0;n<r.length-2;n+=2){const e=r[n](),t=r[n+1](),o=r[n+2](),a=r[n+3]();if(s>=e&&s<=o&&"linear"===i[0])return z(s,e,t,o,a)}throw new Error("Invalid interpolation type.")}};const W={get:q((function([e,t],r){const s=t||r;return s&&"object"==typeof s&&e in s?s[e]:null})),length:q((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:q((function([e,t]){return t[e]})),has:q((function([e,t],r){const s=t||r;return!(!s||"object"!=typeof s||!(e in s))})),in:q((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":q((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:q((function(e){const[t,r,s]=e;if("string"==typeof t)return t.slice(r,s);if(Array.isArray(t))return t.slice(r,s);throw new Error(`Invalid input type for 'slice'. Expected string or array, got ${typeof t}.`)}))},H={"+":q((e=>e.reduce(((e,t)=>e+t),0))),"-":q((e=>e.reduce(((e,t)=>e-t)))),"*":q((e=>e.reduce(((e,t)=>e*t),1))),"/":q((e=>e.reduce(((e,t)=>e/t)))),"%":q((e=>e[0]%e[1])),"^":q((e=>Math.pow(e[0],e[1]))),abs:q((e=>Math.abs(e[0]))),acos:q((e=>Math.acos(e[0]))),asin:q((e=>Math.asin(e[0]))),atan:q((e=>Math.atan(e[0]))),ceil:q((e=>Math.ceil(e[0]))),cos:q((e=>Math.cos(e[0]))),e:()=>Math.E,floor:q((e=>Math.floor(e[0]))),ln:q((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:q((e=>Math.log10(e[0]))),log2:q((e=>Math.log2(e[0]))),max:q((e=>Math.max(...e))),min:q((e=>Math.min(...e))),pi:()=>Math.PI,round:q((e=>Math.round(e[0]))),sin:q((e=>Math.sin(e[0]))),sqrt:q((e=>Math.sqrt(e[0]))),tan:q((e=>Math.tan(e[0])))},J={concat:q((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:q((e=>String(e[0]).toLowerCase())),upcase:q((e=>String(e[0]).toUpperCase()))},Q=(e,t,r)=>{try{const s=e(t,r);if(void 0!==s)return s}catch{}};function K(e){return(t,r)=>{for(const s of t){const t=Q(e,s,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}function X(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in Y&&r.length>0}return!1}const Y={...H,...{array:q((e=>{const[t,r,s]=e;let i,n,o;if("string"==typeof t&&["string","number","boolean"].includes(t)?(i=t,"number"==typeof r?(n=r,o=s):o=r):Array.isArray(t)&&(o=t),!Array.isArray(o))throw new Error("Expected an array");if(i&&!o.every((e=>typeof e===i)))throw new Error(`Expected all items in array to be of type ${i}`);if(n&&o.length!==n)throw new Error(`Expected array of length ${n}`);return o})),boolean:q(K((e=>"boolean"==typeof e?e:void 0))),literal:q((([e])=>e)),number:q(K((e=>"number"==typeof e?e:void 0))),object:q(K((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:q(K((e=>"string"==typeof e?e:void 0))),"to-boolean":q(K(Boolean)),"to-number":q(K(Number)),"to-string":q(K(String)),typeof:q((([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)))},...J,...W,...V,...Z};function ee(e,t={}){const[r,...s]=e,i=Y[r];if(i)return i(s.map((e=>()=>X(e)?ee(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}function te(e){return t=>{const r=t.properties;return!!r&&ee(e,r)}}const re=["iconSize","iconAnchor"];function se(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const s=`^${i=t,i.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var i;return null!==new RegExp(s,r?"i":"").exec(e)}const ie={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)=>se(e,t),ilike:(e,t)=>se(e,t,!0)};function ne(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function oe(e,t){const r="string"==typeof t[0]?t[0]:"all",s=t=>{if(ne(t)){const[r,s,i]=t,n=ie[s];if(n){if(("like"===s||"ilike"===s)&&"string"==typeof r){let t="";const s=r.replace(/^%?(\w+)%?$/,((s,n)=>(t=e[n],r.replace(n,i))));return n(t,s)}return n(e[r],i)}return!1}return oe(e,t)},i=t.filter((e=>Array.isArray(e)));return"any"===r?i.some(s):i.every(s)}function ae(e){let t={};const r=[];for(const s of e)s&&(Array.isArray(s)?r.push(s):t=s);return e=>{const s=r.find((t=>function(e,t){const r={...e.properties};return!!r&&(r.$id=e.id,oe(r,t))}(e,t[0])));return s?{...t,...s[1]}:t}}function ce({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const s in e)if(-1===re.indexOf(s)){const i=s,n=e[i];X(n)&&(t=!0,r[i]=te(n))}if(t)return t=>{const s={};for(const e in r)s[e]=r[e](t);return{...e,...s}}}(e);if(r){const s=e=>he({paint:r(e),defaultPaint:t});return s.paint=le({paint:e,defaultPaint:t}),s}return le({paint:e,defaultPaint:t})}function le({paint:e,defaultPaint:t}){var r;let s={...t};return s={...s,...e},s.fill=null===(r=s.fill)||void 0===r||r,s.stroke=void 0!==s.stroke?s.stroke:!s.fill||!(!s.strokeColor&&!s.strokeOpacity),s}function he({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let s={...t};if($(e)){const s=s=>{const i=he({paint:e(s),defaultPaint:t,getPaintFunctions:r});return i.type=e.type,i};return s.type=e.type,s}if(function(e){return!!Array.isArray(e)}(e))return s=>he({paint:ae(e)(s),defaultPaint:t,getPaintFunctions:r});if("get-paint"===e.type){const i=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);i&&(s=he({paint:i,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;s=ce({paint:e,defaultPaint:t})}return $(s)||("color"in s&&(s.strokeColor||(s.strokeColor=s.color),s.fillColor||(s.fillColor=s.color)),"opacity"in s&&(void 0===s.strokeOpacity&&(s.strokeOpacity=s.opacity),void 0===s.fillOpacity&&(s.fillOpacity=s.opacity))),s}class ue{constructor(){this.backspace=8,this.tab=9,this.enter=13,this.shift=16,this.ctrl=17,this.alt=18,this["pause/break"]=19,this.caps_lock=20,this.escape=27,this.page_up=33,this.page_down=34,this.end=35,this.home=36,this.left_arrow=37,this.up_arrow=38,this.right_arrow=39,this.down_arrow=40,this.insert=45,this.delete=46,this.left_window_key=91,this.right_window_key=92,this.select_key=93,this.numpad_0=96,this.numpad_1=97,this.numpad_2=98,this.numpad_3=99,this.numpad_4=100,this.numpad_5=101,this.numpad_6=102,this.numpad_7=103,this.numpad_8=104,this.numpad_9=105,this.multiply=106,this.add=107,this.subtract=109,this.decimal_point=110,this.divide=111,this.f1=112,this.f2=113,this.f3=114,this.f4=115,this.f5=116,this.f6=117,this.f7=118,this.f8=119,this.f9=120,this.f10=121,this.f11=122,this.f12=123,this.num_lock=144,this.scroll_lock=145,this["semi-colon"]=186,this.equal_sign=187,this[","]=188,this["-"]=189,this["."]=190,this["/"]=191,this["`"]=192,this["["]=219,this["\\"]=220,this["]"]=221,this["'"]=222}}class pe{constructor(e,t){this.webMap=e,t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event=t.event))}getValue(){return this.value}setValue(e){this.value=e}}class de extends pe{constructor(){super(...arguments),this.name="center",this.event="moveend"}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}parse(e){return e.split("_").map(Number)}}class fe extends pe{constructor(){super(...arguments),this.name="zoom",this.event="zoomend"}getValue(){const e=this.webMap.getZoom();return void 0!==e?Math.round(e):void 0}setValue(e){this.webMap.setZoom(e)}toString(e){return String(e)}parse(e){return Number(e)}}let ye=0;const me={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};class ge{constructor(e){this.options=me,this.emitter=new t.exports.EventEmitter,this.keys=ge.keys,this.runtimeParams=[],this.getPaintFunctions=ge.getPaintFunctions,this.mapState=[de,fe],this.id=ye++,this._initMapState={},this._mapState=[],this._eventsStatus={},this._mapEvents={},this.mapAdapter=e.mapAdapter,this._starterKits=e.starterKits||[],e&&(this.options=A(me||{},e)),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}async create(){return this.getEventStatus("create")||(await this._setInitMapState(this.mapState),await this._setupMap(),this._emitStatusEvent("create",this)),this}setRuntimeParams(e){this.runtimeParams.push(e)}destroy(){this._removeEventListeners(),function(e){for(const t in e)delete e[t]}(this._emitStatusEvent),this.mapAdapter.destroy&&this.mapAdapter.destroy()}getState(){const e={};return this._mapState.forEach((t=>{e[t.name]=t.getValue()})),e}getRuntimeParams(){const e={};return this._mapState.forEach((t=>{for(const r of this.runtimeParams){const s=r.get(t.name);if(void 0!==s){e[t.name]=t.parse(s);break}}})),e}getContainer(){if(this.mapAdapter.getContainer)return this.mapAdapter.getContainer();if(this.options.target){if(this.options.target instanceof HTMLElement)return this.options.target;if("string"==typeof this.options.target){const e=document.getElementById(this.options.target);if(e)return e}}}setCursor(e){this.mapAdapter.setCursor&&this.mapAdapter.setCursor(e)}getCursor(){if(this.mapAdapter.getCursor)return this.mapAdapter.getCursor();const e=this.getContainer();return e?e.style.cursor:void 0}setCenter(e){return this.mapAdapter.setCenter(e),this}getCenter(){return this.mapAdapter.getCenter()}getBounds(){if(this.mapAdapter.getBounds)return this.mapAdapter.getBounds()}getBoundsPolygon(){const e=this.getBounds();if(e){return{type:"Feature",properties:{},geometry:k(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 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 s=()=>{const r=this.mapAdapter;e&&e(r),r&&t(r)},i=null===(r=this.mapAdapter.isLoaded)||void 0===r||r;this.mapAdapter.map&&i?s():this.mapAdapter.emitter.once("create",(()=>{s()}))}))}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._coordFromMapClickPromise&&this._coordFromMapClickPromise.cancel()}getCoordFromMapClick(){return this._coordFromMapClickPromise?this.getCoordFromMapClick():(this._coordFromMapClickPromise=new L(((e,t,r)=>{const s=this.getCursor()||"grab";this._removeEventListeners({include:["click"]}),this.setCursor("crosshair");const i=()=>{this.setCursor(s),this._addEventsListeners({include:["click"]}),this.mapAdapter.emitter.off("click",n),this._coordFromMapClickPromise=void 0},n=t=>{i(),C(t),e(t.lngLat)};this.mapAdapter.emitter.once("click",n),r(i)})),this._coordFromMapClickPromise)}_emitStatusEvent(e,t){const r=e;this._eventsStatus[r]=!0,this.emitter.emit(r,t)}async _addLayerProviders(){}async _onLoadSync(){}async _setupMap(){if(!this.mapAdapter)throw new Error("WebMap `mapAdapter` option is not set");return await this.mapAdapter.create(this.options),this._zoomToInitialExtent(),await this._addLayerProviders(),await 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)}_setInitMapState(e){for(const t of e){const e=new t(this);this._mapState.push(e);for(const t of this.runtimeParams){const r=t.get(e.name);if(void 0!==r){const t=e.parse(r);this._initMapState[e.name]=t,Object.defineProperty(this.options,e.name,{value:t,configurable:!0,enumerable:!0});break}}}}_addEventsListeners(e){let t=["preclick","click","zoomstart","zoom","zoomend","movestart","move","moveend","mousemove","mouseout","mouseover"];e&&e.include&&(t=t.filter((t=>e.include.includes(t)))),t.forEach((e=>{this._mapEvents[e]=t=>{if(this.runtimeParams.length){const t=this._mapState.find((t=>t.event===e));if(t){const e=t.toString(t.getValue());this.runtimeParams.forEach((r=>{r.set(t.name,e)}))}}this._eventsStatus&&this.emitter.emit(e,t)};const t=this._mapEvents[e];t&&this.mapAdapter.emitter.on(e,t)}))}_removeEventListeners(e){let t=Object.entries(this._mapEvents);e&&e.include&&(t=t.filter((t=>e.include.includes(t[0])))),t.forEach((([e,t])=>{t&&this.mapAdapter.emitter.removeListener(e,t)}))}}function _e(e){const t={};for(let s=0;s<e.length;s++)t[e[s]]=1+(t[e[s]]||0);let r;for(const s in t){t[s]>((void 0!==r?t[r]:0)||0)&&(r=s)}return r}function ve(e){let t;if("FeatureCollection"===e.type){t=_e(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=_e(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}ge.keys=new class{constructor(){this.keyCodeAlias=new ue,this.keys={},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={}}};const be={polygon:"path",line:"path",point:"circle"},we={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function Le(e){if(e.data){const t=we[ve(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":be[t]),e.type=e.type||t}return e}class Oe extends ge{constructor(e){super(e),this._layersIdCounter=1,this._layersOrderCounter=1,this._baselayers=[],this._layers={},this._selectedLayers=[];const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}async fitLayer(e,t){const r=this.getLayer(e),s=r&&(r.getBounds||r.getExtent);if(s){const e=await s.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}async addBaseLayer(e,t){return await this.addLayer(e,{...t,baselayer:!0},void 0)}async addLayer(e,t={},r){var s,i;const n=this._layersIdCounter++,o=I(r)?r:void 0!==t.order?t.order:this.reserveOrder();let a;"string"==typeof e?a=this.getLayerAdapter(e):"function"==typeof e?a=e:"then"in e&&(a=await e);const c=t;this._updateGeoJsonOptions(c);const l=null===(s=(t={id:String(n),order:o,...t}).visibility)||void 0===s||s;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:a});e&&(e.options&&(t=e.options),e.adapter&&(a=e.adapter))}if(void 0!==a){const e=new a(this.mapAdapter.map,t);let r;e.options={...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),await this.onMapLoad(),e.map=this.mapAdapter.map;const s=await e.addLayer(e.options);if(e.layer=s,e.id=e.options.id||String(n),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!==(i=e.options.order)&&void 0!==i?i:o,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),l&&await this.showLayer(r));const h=t.opacity;void 0!==h&&h<=1&&this.setLayerOpacity(e,h);const u=s&&(e.getBounds||e.getExtent);if(t.fit&&u){const t=await u.call(e);t&&await this.fitBounds(t)}return t.onAdded&&t.onAdded(e),this._emitLayerEvent("layer:add",r,e),e}return Promise.reject("No adapter")}async addLayerFromAsyncAdapter(e,t,r){const s=r||void 0!==t.order?t.order:this.reserveOrder(),i=e(),n=await i;return n?this.addLayer(n,t,s):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])}}async getLegend(e){const t=[];for(const r of this.orderedLayers())r.getLegend&&t.push(r.getLegend(e));return(await 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=Le(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",{...t,url:e})}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",{...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 s=this.getLayer(e),i=void 0!==t?t:!(s&&s.options.visibility),n=void 0!==r.silent&&r.silent,o=async e=>{const t=String(e.id),r=i?"layer:show":"layer:hide";if(n||(this._emitLayerEvent(i?"layer:preshow":"layer:prehide",t,e),this._emitLayerEvent("layer:pretoggle",t,e)),i&&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)await this.hideLayer(e)}e.showLayer?await e.showLayer.call(e,e.layer):void 0!==e.layer&&await this.mapAdapter.showLayer(e.layer),void 0!==t&&this.mapAdapter.setLayerOrder(e.layer,t,this._layers)}else e.hideLayer?await e.hideLayer.call(e,e.layer):void 0!==e.layer&&await this.mapAdapter.hideLayer(e.layer);e.options.visibility=i,n||(this._emitLayerEvent(r,t,e),this._emitLayerEvent("layer:toggle",t,e))};return s?this.onMapLoad().then((()=>o(s))):Promise.resolve()}updateLayer(e){const t=this.getLayer(e);if(t){if(t.updateLayer)return Promise.resolve(t.updateLayer());if(this.isLayerVisible(t))return this.hideLayer(t,{silent:!0}).then((()=>this.showLayer(t,{silent:!0})))}return Promise.resolve()}setLayerOpacity(e,t){const r=this.getLayer(e);r&&(r.setOpacity?r.setOpacity(t):this.mapAdapter.setLayerOpacity&&this.mapAdapter.setLayerOpacity(r.layer,t))}isLayerLabelVisible(e){var t;const r=this.getLayer(e);return r.isLabelVisible?r.isLabelVisible():null===(t=r.options.labelVisibility)||void 0===t||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 s=this.getLayerId(r);if(s){const e=this._selectedLayers.indexOf(s);-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 s=this.getLayer(e);if(s){const e=s;if(e.propertiesFilter)return e.propertiesFilter(t,r);e.filter&&this.filterLayer(e,(e=>!e.feature||!e.feature.properties||oe(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 s=this._layers[r];let i=!(void 0===e.onlyVisible||e.onlyVisible)||s.options.visibility;if(i&&e.onlyBaselayer&&(i=this._baselayers.includes(r)),i){const e=s.options&&s.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 s=String(e);if(I(t)&&s.startsWith("layer:")){const e=s.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}async _onLayerClick(e){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}async _onLayerSelect(e){return this._emitLayerEvent("layer:select",e.layer.id||"",e),Promise.resolve(e)}_updateGeoJsonOptions(e){const{onSelect:t,onLayerSelect:r,onClick:s,onLayerClick:i,onMouseOut:n,onMouseOver:o}=e,a=s||i;e.onClick=e=>(a&&a(e),this._onLayerClick(e)),e.onMouseOut=e=>{const t=e.layer.id;n&&n(e),I(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;o&&o(e),I(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const c=t||r;e.onSelect=e=>(c&&c(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=he({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=he({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}function Ie(e,t){const r=document.createElement("div");let s=!1;t.getStatus?s=t.getStatus():t.status&&(s=t.status);const i=t.title||"",n=t.html;function o(){i&&(r.title="string"==typeof i?i:s?i.on:i.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 c(){n&&("string"==typeof n||n instanceof HTMLElement?a(n):a(s?n.on:n.off),r.setAttribute("aria-label",r.title))}function l(e,t){e.split(" ").forEach((e=>{t?r.classList.add(e):r.classList.remove(e)}))}function h(){t.addClassOn&&l(t.addClassOn,s),t.addClassOff&&l(t.addClassOff,!s)}o(),c(),t.addClass&&l(t.addClass,!0),h();const u=e=>{void 0!==e&&(s=e),c(),o(),h()},p=e=>{if(s=void 0!==e?e:!s,t.onClick){const e=t.onClick(s);Promise.resolve(e).then((()=>u())).catch((()=>s=!s))}else u()},d=e({html:r,onClick:p});return d.onClick=p,d.changeStatus=u,d}class Ee extends Oe{constructor(){super(...arguments),this._loadControlQueue={"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]},this._isControlLoading={"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1}}async addControl(e,t,r){let s;if(t=null!=t?t:"top-left",s="string"==typeof e?this.getControl(e,r):e,s)return new Promise((e=>{this._setControlQueue(t,(async()=>{const r=await s,i=this.mapAdapter.addControl(r,t);e(i)}))}))}async createControl(e,t){if(await this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}async createButtonControl(e){if(await this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}async createToggleControl(e){return await this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?Ie(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(e,t){const r=this.mapAdapter.controlAdapters[e];if(r)return new r(t);{const r=Ee.controls[e];if(r)return r(this,t)}}getControlContainer(){if(this.mapAdapter.getControlContainer)return this.mapAdapter.getControlContainer()}_setControlQueue(e,t){this._loadControlQueue[e].push(t),this._isControlLoading[e]||this._applyControls(e)}async _applyControls(e){if(this._loadControlQueue[e].length){this._isControlLoading[e]=!0;const t=this._loadControlQueue[e][0];await t(),this._loadControlQueue[e].splice(0,1),this._applyControls(e)}else this._isControlLoading[e]=!1}}Ee.controls={CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)};const Ae={};function Ce(e){return Ae[e]}class Pe extends Ee{constructor(e){super(e),this._addControls(),Ae[this.id]=this}static get(e){return Ce(e)}async _addLayerProviders(){for await(const e of this._starterKits)if(e.getLayerAdapters){const t=await e.getLayerAdapters.call(e);if(t)for await(const e of t){const t=await e.createAdapter(this);t&&(this.mapAdapter.layerAdapters[e.name]=t)}}}async _onLoadSync(){for await(const t of this._starterKits)if(t.onLoadSync)try{await t.onLoadSync.call(t,this)}catch(e){console.error(e)}}_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{position:s,...i}=r;this.addControl(t,s||"top-left",i)})),this._emitStatusEvent("controls:create")}}function ke(){return["ZOOM","ATTRIBUTION"]}async function Me(e){return new Pe(e).onLoad()}class xe{constructor(e={}){var t;this.cache=[];const r=null!==(t=e.namespace)&&void 0!==t?t:"default";return xe.instance[r]?xe.instance[r]:(xe.instance[r]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r){return this.add(e,t,r,!0)}add(e,t,r,s){const i=this._find(e,r);if(i)return i.value;{let i;i=t instanceof Function?t():t;const n=r&&JSON.parse(JSON.stringify(B(r))),o={key:e,value:i,props:n,options:n};return s&&!E(i)?i:(this.cache.push(o),i instanceof Promise?(i.catch((t=>{throw this.delete(e,r),t})),s&&i.then((t=>(E(t)||this.delete(e,r),t))),i):i)}}match(e,t){const r=this._find(e,t);if(r)return r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){let r=[];"string"==typeof e?r=this.cache.filter((r=>this._filter(r,e,t))):r.push(e);for(const s of r){const e=this.cache.indexOf(s);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){if(r){return T(e.props||e.options||{},B(r))}return!0}return!1}}xe.instance={};var Se=xe;class Ne extends Error{constructor(e){super(),this.name="NgwError",Object.assign(this,e),Object.setPrototypeOf(this,Ne.prototype)}}class Fe extends Ne{constructor(e){super(e),this.name="ResourceNotFoundError",this.exception="nextgisweb.resource.exception.ResourceNotFound",Object.setPrototypeOf(this,Fe.prototype)}}function Te(e){return"[object Object]"===Object.prototype.toString.call(e)}const Be=["description"];function Re(e,t=""){t=t?t+"__":"";const r={};for(const[s,i]of Object.entries(e))if(-1===Be.indexOf(s))if(Te(i))if("owner_user"===s){const e=Re(i,s);Object.assign(r,e)}else"parent"===s&&"id"in i&&(r.parent_id=i.id);else I(i)&&(r[t+s]=i);return r}class je{constructor(e){this.connector=e,this.cache=new Se}getOne(e,t){const r=new Se,s={},i={...t,cache:!1};"string"==typeof e?s.keyname=e:"number"==typeof e?s.id=e:Te(e)&&(void 0!==e.id?s.id=e.id:e.keyname&&(s.keyname=e.keyname));return r.addFull("resource",(()=>"string"==typeof e?this._fetchResourceBy({keyname:e},i):"number"==typeof e?this._fetchResourceById(e,i):Te(e)?this._fetchResourceBy(e,i):L.resolve(void 0)),s)}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new Fe}))}getId(e,t){return"number"==typeof e?L.resolve(e):"string"==typeof e||Te(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):L.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,Re(e)),this.connector.get("resource.search",t,{serialization:"full",...r}).then((e=>{if(e)for(const t of e)this.cache.add("resource.item",L.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):L.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",{cache:!0,...t},{parent:e}).then((e=>{const s=[];for(const i of e)this.cache.add("resource.item",L.resolve(i),{id:i.resource.id}),r.push(i),(null==t?void 0:t.recursive)&&i.resource.children&&s.push(this._getChildrenOf(i.resource.id,t,r));return s.length?L.all(s).then((()=>r)):r}))}async _cleanResourceItemCache(e){const t=this.cache.all(),r=[];for(const s of t){const t=s.options&&s.options.id;if(["resource.item","resource"].includes(s.key)&&void 0!==t)if("number"==typeof t)t===e&&r.push(s);else{await this.getId(t)===e&&r.push(s)}}for(const s of r)this.cache.delete(s)}_fetchResourceById(e,t){return this.cache.add("resource.item",(()=>this.connector.get("resource.item",t,{id:e})),{id:e}).catch((e=>{if(!(e instanceof Fe))throw e}))}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return L.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:T(e,t.resource)})),[])))}}const $e=[];function qe(e){$e.push(e)}class Ve extends Ne{constructor(e){super(e),this.name="InsufficientPermissionsError",this.exception="nextgisweb.core.exception.InsufficientPermissions",Object.setPrototypeOf(this,Ve.prototype)}}const De=/\{ *([\w_-]+) *\}/g;function Ge(e,t){return e.replace(De,((e,r)=>{let s=t[r];if(void 0===s)throw new Error("No value provided for letiable "+e);return"function"==typeof s&&(s=s(t)),s}))}class Ue extends Error{constructor(e){super(),this.name="NetworkError",Object.setPrototypeOf(this,Ue.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let ze;ze=(e,t,r={},s,i)=>{r.method=r.method||"GET";const n=new XMLHttpRequest;n.open(r.method||"GET",e,!0),"blob"===r.responseType&&(n.responseType=r.responseType);const o=()=>{try{return JSON.parse(n.responseText)}catch(e){return n.responseText}};n.onload=()=>{-1!==[401,403,404,422,500].indexOf(n.status)&&s(new Ne(o())),((e=!1)=>{const i=e?s:t;"blob"===r.responseType?i(n.response):n.responseText?i(o()):s({message:""})})()},n.onerror=t=>{s(0===n.status?new Ue(e):t)},n.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 l in a){const e=a[l];"string"==typeof e&&n.setRequestHeader(l,e)}let c;if(void 0!==r.withCredentials&&(n.withCredentials=r.withCredentials),r.file){if(c=new FormData,c.append("file",r.file),r.data)for(const l in r.data)c.append(l,c[l])}else c=r.data?"string"==typeof r.data?r.data:JSON.stringify(r.data):null;i&&i((()=>{n.abort()})),n.send(c)};let Ze=0;class We{constructor(e){this.options=e,this.id=Ze++,this.emitter=new t.exports.EventEmitter,this.routeStr="/api/component/pyramid/route",this.activeRequests=[];const r=function(e){return $e.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return T(t.options.auth,e.auth)}}))}(e);if(r)return r;this.options.route&&(this.routeStr=this.options.route),this.options.requestTransform&&(this.requestTransform=this.options.requestTransform),this.resources=new je(this),qe(this)}static create(e){return new this(e)}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,qe(this)}connect(){const e=new Se,t=this.options.auth;return e.add("route",(()=>new L(((e,r)=>{const s=()=>this.makeQuery(this.routeStr,{},{}).then((t=>{e(t)})).catch((e=>{r(e)}));if(t){const{login:e,password:i}=t;if(e&&i)return this._login({login:e,password:i}).then((()=>s())).catch((e=>r(e)))}return s()}))),{id:this.id,auth:t,baseUrl:this.options.baseUrl})}login(e,t){return this.logout(),qe(this),this._login(e,t)}logout(){this.abort(),function(e){const t=$e.indexOf(e);-1!==t&&$e.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.emitter.emit("logout"),this.resources.cache.clean()}getUserInfo(e,t){if(this.user&&this.user.id)return L.resolve(this.user);e&&(this.options.auth=e);const r={headers:this.getAuthorizationHeaders(e),...t};return this.makeQuery("/api/component/auth/current_user",{},r)}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:"Basic "+t}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,s=unescape(encodeURIComponent(`${t}:${r}`));return window.btoa(s)}}abort(){for(const e of this.activeRequests)e.cancel();this.activeRequests=[]}getActiveApiRequests(){return[...this.activeRequests]}apiRequest(e,t={},r={}){var s,i;const{method:n,headers:o,withCredentials:a,responseType:c}=r,l=B(t=null!==(s=r.params)&&void 0!==s?s:t),h=()=>function(e){const t=e.params;return new L(((r,s)=>{e.connector.connect().then((i=>{let n=i&&i[e.name];if(n){n=[...n];let i=n.shift();if(n.length){const e={};for(let r=0;r<n.length;r++){const s=n[r];if(e[r]="{"+s+"}",void 0===t[s])throw new Error("`"+s+"` url api argument is not specified")}i&&(i=Ge(i,e))}if(t){const e=[],r=t.paramList;Array.isArray(r)&&(delete t.paramList,r.forEach((t=>{e.push(`${t[0]}=${t[1]}`)})));for(const s in t)-1===n.indexOf(s)&&e.push(`${s}=${t[s]}`);e.length&&(i=i+"?"+e.join("&"))}i?r(e.connector.makeQuery(i,t,e.requestOptions)):s(new Error("request url is not set"))}else r(void 0)})).catch((e=>{s(e)}))}))}({name:e,params:l,requestOptions:r,connector:this});if(r.cache&&"GET"===n){return(new Se).add(e,h,{params:l,...B({headers:o,withCredentials:a,responseType:c,baseUrl:this.options.baseUrl,userId:null===(i=this.user)||void 0===i?void 0:i.id})})}return h()}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}makeQuery(e,t,r={}){if(e=(this.options.baseUrl?this.options.baseUrl:"")+e)return t&&(e=Ge(e,t)),e=encodeURI(j(e)),this._loadData(e,r);throw new Error("Empty `url` not allowed")}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}_loadData(e,t){t.responseType=t.responseType||"json";const r=new L(((r,s,i)=>{if(this.user&&((t=t||{}).headers={...this.getAuthorizationHeaders(),...t.headers}),this.requestTransform){const[r,s]=this.requestTransform(e,t);e=r,t=s}ze(e,r,t,s,i)})).then((e=>(this._cleanActiveRequests(r),e))).catch((e=>{if(this._cleanActiveRequests(r),e instanceof L.CancelError);else{const t=this._handleHttpError(e);if(t)throw t}}));return t.signal&&"function"==typeof t.signal.addEventListener&&t.signal.addEventListener("abort",(()=>{r.cancel(),this._cleanActiveRequests(r)})),this.activeRequests.push(r),r}_login(e,t){return this.getUserInfo(e,t).then((e=>(this.user=e,this.emitter.emit("login",e),e))).catch((e=>{throw this.emitter.emit("login:error",e),e}))}_cleanActiveRequests(e){const t=this.activeRequests.indexOf(e);-1!==t&&this.activeRequests.splice(t,1)}_handleHttpError(e){if(e&&e instanceof Ne){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new Fe(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new Ve(e)}return e}}We.errors={NgwError:Ne,ResourceNotFoundError:Fe};var He=We;class Je{constructor(e){this.options=e,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(){return this._extent?L.resolve(this._extent):this.options.connector.get("feature_layer.feature.item_extent",null,{id:this.resourceId,fid:this.item.id}).then((e=>{const{minLat:t,minLon:r,maxLat:s,maxLon:i}=e.extent,n=[r,t,i,s];return this._extent=n,n}))}geoJson(){return this.item.geom?L.resolve(wt(this.item)):Kt({resourceId:this.resourceId,featureId:this.item.id,connector:this.options.connector,geom:!0,fields:null,extensions:null}).then((e=>(this.item.geom=e.geom,wt(this.item))))}}function Qe(e,t,r,s){return!!Ye(e,t,r,et,s)}function Ke(e,t,r,s){return Ye(e,t,r,tt,s)}function Xe(e,t="children"){let r=[];const s=("function"==typeof t?t:e=>e[t])(e);return s&&(Array.isArray(s)?r=s:r.push(s)),s?r:void 0}function Ye(e,t=(e=>!!e),r="children",s,i){const n="function"==typeof t?t:e=>oe(e,t);return s(e,i?e=>n(i(e)):n,r)}function et(e,t=(e=>!!e),r,s=[]){let i=[];if(Array.isArray(e))i=e;else{if(t(e))return e;const s=Xe(e,r);s&&(i=s)}for(let n=0;n<i.length;n++)if(i[n]){const e=et(i[n],t,r,s);if(e)return e}}function tt(e,t=(e=>!!e),r,s=[]){let i=[];if(Array.isArray(e))i=e;else{t(e)&&s.push(e);const n=Xe(e,r);n&&(i=n)}for(let n=0;n<i.length;n++)i[n]&&tt(i[n],t,r,s);return s}function rt(e,t=(e=>!!e),r,s=[]){let i=[];if(Array.isArray(e))i=e;else{if(!t(e))return!1;const s=Xe(e,r);s&&(i=s)}for(let n=0;n<i.length;n++)if(i[n]){if(!rt(i[n],t,r,s))return!1}return!0}class st{constructor(e){this._children=[],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?Ke(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 Ye(this._children,e,(e=>e.tree.getChildren()),et,t);var t}every(e){return!!Ye(this._children,e,(e=>e.tree.getChildren()),rt,t);var t}some(e){return Qe(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return Ke(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}class it{constructor(e,r,s){this.emitter=new t.exports.EventEmitter,this._blocked=!1,this.item=r,this.options=Object.assign({},s),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 s=r.properties&&r.properties.property(this.name);s&&s.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?void 0:t.property(this.name);return!!r&&!r.get()}))}}class nt extends it{constructor(e,t,r){super(e,t,{...nt.options,...r}),this.set(this.get())}update(e,t){if(e){if(t&&t.bubble||this.options.bubble){this.unBlock(t);const r=this.getParent(),s=r&&r.properties&&r.properties.property(this.name);s&&s.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 s=0;s<r.length;s++){const i=r[s],n=i.properties&&i.properties.property(this.name);n&&n.set(e,{...t,propagation:!0,bubble:!1})}}}}nt.options={hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"};class ot{constructor(e,t){this.item=e,this.options={},this._properties={},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 s=this.property(e);s&&s.getValue()!==t&&s.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};this._properties[e.name]=new t(e.name,this.item,r),this._propertiesList.push(e.name)}}_getHandler(e){const t=e.handler;return!t&&e.type?"boolean"===e.type?ot.handlers.CheckProperty:ot.handlers.BaseProperty:t}}ot.handlers={CheckProperty:nt};let at=0;class ct{constructor(e){this.options={},this.id=at,at+=1,this.options={...e},this.tree=new st(this)}initProperties(){this.properties=new ot(this,this.options.properties)}}function lt(e){const t=e.extent_bottom,r=e.extent_left,s=e.extent_top,i=e.extent_right;if(t&&r&&s&&i){const e=[r,t,i,s];return e[3]>82&&(e[3]=82),e[1]<-82&&(e[1]=-82),e}}function ht({resourceId:e,connector:t,cache:r=!0}){return t.get("layer.extent",{cache:r},{id:e}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:s,minLon:i}=e.extent;return[i,s,r,t]}}))}function ut(e){return e.connector.getResource(e.resourceId).then((t=>{if(t)return pt(t,e.connector,e)}))}function pt(e,t,r){if(e.webmap)return L.resolve(lt(e.webmap));{const s=e.resource;return s.cls&&-1!==s.cls.indexOf("style")?t.getResource(s.parent.id).then((e=>{if(e)return ht({...r,resourceId:e.resource.id,connector:t})})):ht({...r,resourceId:s.id,connector:t})}}class dt{async getExtent(){return this.getBounds()}async getBounds(e){return this._extent?this._extent:this.item?(this._extent=await pt(this.item,this.connector,e),this._extent):void 0}}async function ft(e,t){const r=e.resource,s=r;let{keyname:i,resourceId:n}=e;if(r&&("string"==typeof r?i=r:n="number"==typeof r?r:s.resource&&void 0!==s.resource&&"resource"in s?r.resource.id:await ft(r,t)),!n&&i){const e=await t.getResource(i);e&&(n=e.resource.id)}return n}const yt={tms:"TILE"};function mt(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}}const gt="https://qms.nextgis.com";function _t(e,t=gt,r={}){let s;if("webMap"in e){const{webMap:i,url:n,...o}=e;s=i,n&&(t=n),o&&(r=o)}else s=e;t||(t=gt);class i{constructor(e,t){this.map=e;const s={...r,...t};this.options=s,this.options.baselayer=!0,s.qms&&(this.qms=s.qms)}async addLayer(e){if(!this.qms&&e.qmsId)try{this.qms=await function(e){return new Promise(((t,r)=>{const s=new XMLHttpRequest;s.onreadystatechange=()=>{if(4===s.readyState&&200===s.status&&s.responseText)try{t(JSON.parse(s.responseText))}catch(e){r(e)}},s.open("GET",j(e),!0),s.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=yt[r.type||"tms"],a=s.mapAdapter.layerAdapters[t];if(a&&(n=i,o=a,["showLayer","hideLayer"].forEach((e=>{const t=Object.getOwnPropertyDescriptor(o.prototype,e);t&&Object.defineProperty(n.prototype,e,t)})),"TILE"===t)){if(e={order:0,maxZoom:s.options.maxZoom,minZoom:s.options.minZoom,...this.options,...mt(r)},r.origin_url){const[t,s]=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);s.length&&(e.subdomains=s,e.url=t)}this.options=e;return new a(this.map,e).addLayer(e)}}var n,o}}return i}class vt{constructor(e){this.options={url:"https://qms.nextgis.com"},this.options={...this.options,...e},this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return _t({webMap:e,url:this.url})}}vt.utils={createQmsAdapter:_t};const bt={srs:4326,geom_format:"geojson"};function wt(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function Lt(e,t){const{extensions:r,geom:s,fields:i,srs:n,ilike:o,like:a}=t,c=r?r.join(","):"";"*"!==c&&(e.extensions=c),void 0!==i&&(e.fields=Array.isArray(i)?i.join(","):""),void 0!==s&&(e.geom=s?"yes":"no",s||(delete e.srs,delete e.geom_format)),I(o)?e.ilike=o:I(a)&&(e.like=a),I(n)&&(e.srs=n)}function Ot(e){const t=Et(e);return L.all(t).then((t=>{const r=[],s=[];for(const e of t)for(const t of e)r.includes(t.id)||(s.push(t),r.push(t.id));return e.offset||e.limit?s.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:s.length):s}))}function It(e){const[t,r,s]=e;let i="",n="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,s)=>(i=t,n=s,r)))}__${r}`,i+s+n]}function Et(e,t=[],r=[]){const{filters:s}=e,i="string"==typeof s[0]?s[0]:"all",n=s.filter((e=>Array.isArray(e)));if("any"===i)for(const o of n)ne(o)?t.push(Ct({...e,paramList:[...r,It(o)]})):Et({...e,filters:o},t,[...r]);else if("all"===i){const s=[],i=[];for(const e of n)ne(e)?s.push(It(e)):i.push(e);if(i.length)for(const n of i)Et({...e,filters:n},t,[...r,...s]);else t.push(Ct({...e,paramList:[...r,...s]}))}return t}function At(e){return`POLYGON((${e.map((([e,t])=>{const[r,s]=N(e,t).map((e=>function(e,t){const r=t?Number("1e+"+t):1;return Math.round((e+Number.EPSILON)*r)/r}(e)));return r+" "+s})).join(", ")}))`}function Ct(e){const t={...bt},{limit:r,cache:s,signal:i,offset:n,orderBy:o,paramList:a,connector:c,geomFormat:l,intersects:h,resourceId:u}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,n&&(t.offset=n),l&&(t.geom_format=l),Lt(t,e),o&&(t.order_by=o.join(",")),Array.isArray(h)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(h)?M(h):h;t.intersects=At(e)}else"string"==typeof h&&(t.intersects=h);a&&(t.paramList=a);const p={id:u,...t};return c.get("feature_layer.feature.collection",{cache:s,signal:i},p)}function Pt(e){let t;for(t in e){const r=e[t];if(R(r)){const s=r;if(I(s.year)&&I(s.month)&&I(s.day)){const r=[s.year,s.month-1,s.day];"hour"in s&&[s.hour,s.minute,s.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}function kt(e){const t=e.filters;return t?Ot({...e,filters:t}).then((r=>{var s;return(null!==(s=e.clientFilterValidate)&&void 0!==s?s:Mt(t))&&(r=r.filter((e=>oe(Pt({...e.fields,id:e.id}),t)))),r})):Ct(e)}function Mt(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(Mt(r))return!0}}return!1}function xt(e){return function(e){return kt(e).then((e=>{const t=[];return e.forEach((e=>{t.push(wt(e))})),t}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const St=["fields","intersects","limit","orderBy","strategy"];function Nt(e){const t={};return St.forEach((r=>{const s=e[r];void 0!==s&&(t[r]=s)})),t}async function Ft(e){var r,s;const{item:i,webMap:n,Adapter:o,connector:a,layerOptions:c,addLayerOptionsPriority:l}=e,h=null==l||l,u=c,p=o||n.mapAdapter.layerAdapters.GEOJSON,d=[];let f,y,m=!1;const g=await ft(u,a);(null===(s=null===(r=u.adapterOptions)||void 0===r?void 0:r.popupOptions)||void 0===s?void 0:s.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 s=e.properties&&e.properties[t.keyname];if(s){const e=document.createElement("div");r.appendChild(e),e.innerHTML=`<span>${t.display_name}</span>: ${s}<span></span>`}}}));else if(e.properties)for(const t in e.properties){const s=document.createElement("div");r.appendChild(s),s.innerHTML=`<span>${t}</span>: ${e.properties[t]}<span></span>`}return r}}(e,i));const _=async(e,t)=>(b(),f={filters:e,options:t},y=xt({resourceId:g,filters:e,connector:a,cache:!0,...t}),await y);let v=!1;const b=()=>{y&&(y.cancel(),y=void 0)};return class extends p{constructor(){super(...arguments),this.emitter=new t.exports.EventEmitter}async addLayer(e){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==u.id&&(e.id=u.id),i&&i.vector_layer&&(e.type=Dt[i.vector_layer.geometry_type]),u.adapterOptions&&(e=h?{...u.adapterOptions,...e}:{...e,...u.adapterOptions}),e.data&&0===Object.keys(e.data).length&&(e.data=void 0,t=!1);const s=e.strategy||void 0;this.options.strategy=s;const n=super.addLayer(e);let o;return f={filters:e.propertiesFilter,options:Nt(e)},t&&(o=this.updateLayer()),r&&o&&await o,s&&s.startsWith("BBOX")&&!m&&this._addBboxEventListener(),n}getExtent(){return this.getBounds()}async getBounds(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?ut({connector:a,resourceId:i.resource.id}):super.getBounds?super.getBounds():void 0}beforeRemove(){v=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,b()}getCount(){return function({connector:e,resourceId:t,cache:r=!0}){return e.get("feature_layer.feature.count",{cache:r},{id:t}).then((e=>e.total_count))}({connector:a,resourceId:g,cache:!0})}async updateLayer(e){var t;if(e=e||f||{},null===(t=this.options.strategy)||void 0===t?void 0:t.startsWith("BBOX")){await n.onLoad("create"),e.options=e.options||{},e.options.intersects=n.getBounds();const{minZoom:t,maxZoom:r}=this.options,s=n.getZoom();if(void 0!==s){if(void 0!==t&&s<t)return;if(void 0!==r&&s>r)return;if(m)return}}if(!v){try{this.emitter.emit("preupdate",e),n._emitLayerEvent("layer:preupdate",u.id||"",e);const t=await _(e.filters,{...e.options,srs:this.options.srs});let r=t;const s=await this.getCount();if("BBOX+"===this.options.strategy){r={type:"FeatureCollection",features:[]};for(const e of t.features)-1===d.indexOf(String(e.id))&&(d.push(String(e.id)),r.features.push(e));m=void 0!==s&&d.length>=s,await n.addLayerData(this,r)}else m=void 0!==s&&t.features.length>=s,await n.setLayerData(this,t);this.emitter.emit("updated",t),n._emitLayerEvent("layer:updated",u.id||"",{data:t,newData:r,isFull:m})}catch(r){if(r instanceof Error&&"CancelError"!==r.name)throw r}super.updateLayer&&super.updateLayer()}}async propertiesFilter(e,t){if(b(),this.filter&&m)this.filter((t=>{const r=t.feature&&t.feature.properties&&Pt({...t.feature.properties});return!r||oe(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=await _(e,{...t,srs:this.options.srs});this.setData(r)}}removeFilter(){f=void 0,this.propertiesFilter([]),this.filter&&this.filter((()=>!0))}_addBboxEventListener(){this.__enableMapMoveListener=e=>{e===this&&(this._removeMoveEventListener(),this.updateLayer(),this._addMoveEventListener())},this.__disableMapMoveListener=e=>{e===this&&this._removeMoveEventListener()},n.emitter.on("layer:show",this.__enableMapMoveListener),n.emitter.on("layer:hide",this.__disableMapMoveListener),this.__enableMapMoveListener(this)}_removeBboxEventListener(){this.__enableMapMoveListener&&n.emitter.on("layer:show",this.__enableMapMoveListener),this.__disableMapMoveListener&&n.emitter.on("layer:hide",this.__disableMapMoveListener)}_addMoveEventListener(){this.__onMapMove=function(e,t=10){let r;function s(...i){s.clear(),r=setTimeout((()=>{r=null,e.apply(this,i)}),t)}return s.clear=function(){r&&(clearTimeout(r),r=null)},s}((()=>this.updateLayer())),this.__onMapMoveStart=b,n.emitter.on("movestart",this.__onMapMoveStart),n.emitter.on("moveend",this.__onMapMove)}_removeMoveEventListener(){this.__onMapMove&&n.emitter.removeListener("moveend",this.__onMapMove),this.__onMapMoveStart&&n.emitter.removeListener("movestart",this.__onMapMoveStart)}}}function Tt({options:e,webMap:t,baseUrl:r}){var s;let i,n=e.adapter||"IMAGE";const o=t&&t.getLayerAdapters(),a=e.resource,c=e.tileNoData?e.tileNoData:200;if("number"==typeof a){if("IMAGE"===n){if(!o||o.IMAGE)return function({resourceId:e,baseUrl:t,nd:r,headers:s}){const i=t+"/api/component/render/image",n={resource:e};return r&&(n.nd=r),{url:i,resourceId:e,headers:s,params:n,updateWmsParams:t=>(r&&(t.nd=r),Vt(t,e))}}({resourceId:a,headers:e.headers,nd:c,baseUrl:r});n="TILE"}if("WMS"===n){i=`${r}/api/resource/${a}/wms`;const t=e.adapterOptions;return{url:i,format:"image/png",version:"1.1.1",layers:t&&t.layers,headers:e.headers}}if("MVT"===n)return i=r+"/api/component/feature_layer/mvt?x={x}&y={y}&z={z}&resource="+a+"&simplification="+(null!==(s=e.simplification)&&void 0!==s?s:6),{url:i,sourceLayer:"ngw:"+a,featureIdName:"$id"};if("TERRAIN"===n)return i=r+`/api/resource/${a}/terrain_provider`,{url:i,adapter:n};if("MODEL_3D"===n)return i=r+`/api/component/model_3d/${a}/data.glb`,{url:i};if("TILE"===n)return i=r+"/api/component/render/tile?z={z}&x={x}&y={y}&resource="+a+"&nd="+c,{url:i,adapter:n}}else{if(void 0!==a)throw new Error("Option `resource` must be number, not "+typeof a);console.log("Option `resource` not set")}}async function Bt({layerOptions:e,webMap:t,connector:r,item:s}){const i=s.resource.cls;let n=e.adapter||i&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[i]||"IMAGE";if(void 0!==n&&(e.adapter=n),"IMAGE"===n){const e=t.getLayerAdapters();!e||e.IMAGE||(n="TILE")}const o=t.mapAdapter.layerAdapters[n];if(o){const i=await ft(e,r);return class extends o{constructor(n,o){super(n,o),this.map=n,this.item=s,this.resourceId=i;const a=Tt({options:e,webMap:t,baseUrl:r.options.baseUrl||""});if(a){const t={...a,...e.adapterOptions,params:{resource:i},layers:a.layers||String(i),resourceId:i};e.adapterOptions&&I(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options={...this.options,...t}}}addLayer(e){return super.addLayer({...this.options,...e})}async getLegend(e){const t=await r.get("render.legend_symbols",{params:{id:i},cache:!0,...e}),s=this.options.id;if(void 0!==s){return[{layerId:s,legend:t.map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}return[]}async getIdentificationIds(){if(this.item){if("MVT"===n)return[this.item.resource.id];const e=this.item.resource.parent.id;if(I(e))return[e]}return[]}}}throw new Error(n+" not supported yet. Only TILE")}const Rt={},jt=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];async function $t({layerOptions:e,webMap:t,connector:r,item:s}){const i=s.resource.id,n=await r.getResourceChildren(i),o=n&&n[0];if(o)return qt({...e,resource:o.resource.id},t,r)}async function qt(e,t,r){let s,i;const n=e.adapter,o=await ft(e,r);if(o){const a=e.resource;if(i=a&&a.resource&&void 0!==a.resource.id?a:await r.getResource(o),!i)throw"Resource item is not found";{const a=i.resource.cls,c={layerOptions:{...e,resource:o},webMap:t,connector:r,item:i};if(-1!==jt.indexOf(a))if("webmap"===a)s=async function({layerOptions:e,webMap:t,connector:r}){const s=await ft(e,r);return class extends Wt{constructor(e){super(e,{url:"",webMap:t,resourceId:s,connector:r})}}}(c);else if("vector_layer"===a||"postgis_layer"===a){const t=c.layerOptions.adapterOptions||{};if(t.type=t.type||i.vector_layer&&Dt[i.vector_layer.geometry_type],c.layerOptions.adapterOptions=t,e.adapterOptions=c,void 0!==n&&"GEOJSON"!==n){if("MVT"!==n)return $t(c);s=Bt(c)}else s=Ft(c)}else{if("raster_layer"===a)return $t(c);if("basemap_layer"===a)s=async function({webMap:e,item:t}){if(t.basemap_layer){const r=t.basemap_layer.qms,s=t.basemap_layer.url;if(r){const t=JSON.parse(r);return Promise.resolve(vt.utils.createQmsAdapter(e,void 0,{qms:t,baselayer:!0}))}if(s){const t=e.mapAdapter.layerAdapters.TILE;if(t){class e extends t{async addLayer(e){return super.addLayer({...e,url:s})}}return e}}}}(c);else if("GEOJSON"===n){const t=await r.getResource(i.resource.parent.id);if(t){const r={...e,resource:i.resource.parent.id};s=Ft({...c,item:t,layerOptions:r})}}else s=Bt(c)}else{if(!Rt[a])throw`Resource class '${a}' not yet supported.`;{const e=Rt[a];let t;t=n&&"function"!=typeof t?e[n]:e,t&&(s=t(c))}}}}if(s)return s.then((e=>{if(e){const t=e;return i&&(t.prototype.item=i,t.prototype.resourceId=i.resource.id,t.prototype.connector=r),O(t,[dt],{replace:!1}),t}}))}function Vt(e,t){const{bbox:r,width:s,height:i,nd:n}=e;return{resource:Array.isArray(t)?t.join(","):t,extent:r,size:s+","+i,timestamp:Date.now(),nd:null!=n?n:200}}const Dt={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 Gt;function Ut(e,t=0){const r=t,s=function(){if(void 0===Gt){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),Gt=t}return Gt}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e,i=function(e){return Math.log(e/256)/Math.LN2}(s);return i}class zt extends ct{constructor(e,r,s,i,n,o){if(super({...zt.options,...s}),this.webMap=e,this.emitter=new t.exports.EventEmitter,this._rootDescendantsCount=0,i&&(this.connector=i),n&&this.tree.setParent(n),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(),o||this._init(r)}static async create(e,t,r,s,i){const n=new zt(e,t,r,s,i,!0);return await n._init(t),n}initItem(e){return"group"===e.item_type||"root"===e.item_type?this.initGroupItem(e):this.initLayerItem(e)}bringToFront(){}fit(){}getLayer(){return this.layer}async getLegend(e){var t;const r=null===(t=this.layer)||void 0===t?void 0:t.id;if(void 0!==r){const t=this.connector;if(t){return[{layerId:r,legend:(await t.get("render.legend_symbols",{params:{id:this.item.resourceId},cache:!0,...e})).map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}}return[]}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,s={visibility:!1,name:e.display_name,headers:this.options.headers,crossOrigin:this.options.crossOrigin,setViewDelay:this.options.setViewDelay,params:{resource:this.item.resourceId,item:this.item}};if(this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e?this._rootDescendantsCount-e.draw_order_position:this.id).padStart(4,"0");s.order=Number((0|this.options.order)+"."+t)}if(this.options.popupOptions&&(s.popupOptions=this.options.popupOptions),"layer"===e.item_type){const{maxZoom:t,minZoom:r}=this._getZoomRange(e);Object.assign(s,{updateWmsParams:e.updateWmsParams,url:e.url,headers:this.options.headers,ratio:this.options.ratio,maxZoom:t,minZoom:r,minScale:e.layer_min_scale_denom,maxScale:e.layer_max_scale_denom,interactive:e.layer_identifiable})}return void 0!==r&&(s.opacity=r),s}getChildren(e){return[...e.children].reverse()}_mapScaleToZoomLevel(e){return Ut(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor(this.webMap,e,this.options,this.connector,this);this.tree.addChild(t)}}return Promise.resolve()}initLayerItem(e){const t=this.getItemOptions(e),r=r=>{e._layer=r,this.layer=r;this.properties.get("visibility")&&this.properties.set("visibility",!0),void 0!==t.opacity&&this.webMap.setLayerOpacity(r,t.opacity)};let s;if("layer"===e.item_type)s=e.adapter||e.layer_adapter.toUpperCase();else if(zt.GetAdapterFromLayerType[e.item_type]){s=(0,zt.GetAdapterFromLayerType[e.item_type])(e,t,this.webMap,this.connector)}return s?this.webMap.addLayer(s,t).then((e=>{r(e)})):e._layer?Promise.resolve(r(e._layer)):Promise.reject("No layer added")}_getZoomRange(e){const t=this.options.minZoom,r=this.options.maxZoom,s=e.layer_min_scale_denom?this._mapScaleToZoomLevel(e.layer_min_scale_denom):void 0,i=e.layer_max_scale_denom?this._mapScaleToZoomLevel(e.layer_max_scale_denom):void 0,n=[t,s].filter(Boolean),o=[r,i].filter(Boolean);return{minZoom:n.length?Math.max(...n):void 0,maxZoom:o.length?Math.min(...o):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}}async function Zt({webMap:e,connector:t,item:r,adapterOptions:s={},idPrefix:i="first-show-adapter"}){const n=async function({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:s}){return class{constructor(){this.options={},this.layer=[],this._removed=!1,this._creatingInProgress=!1}addLayer(){return this.layer}removeLayer(){this._removed=!0;for(const t of this.layer)e.removeLayer(t)}destroyed(){return this._removed}async showLayer(){if(this.options.visibility=!0,this.layer.length)for(const t of this.layer)await e.showLayer(t);else await this.loadLayer()}async hideLayer(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)await e.hideLayer(t)}async loadLayer(){if(!this.layer.length&&!this._creatingInProgress){this._creatingInProgress=!0;const i=await s(this);if(i){const s=new i(e.mapAdapter.map,{...t}),n=await s.addLayer({order:this.options.order,headers:this.options.headers,baselayer:this.options.baselayer});r&&r(s),Object.assign(s.options,t),s.layer=n,this._removed&&e.removeLayer(s),this.layer.push(s),this.options.visibility&&await e.showLayer(s),this._creatingInProgress=!1}}return this.layer}}}({webMap:e,adapterOptions:s,onLayerAdded:e=>{e.options.baselayer=!1,e.id=i+"-"+r.resource_id},createAdapter:()=>qt({resource:r.resource_id,adapterOptions:{name:r.display_name,opacity:r.opacity}},e,t)});return n}zt.GetAdapterFromLayerType={},zt.options={properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return Qe(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 it{getProperty(){const e=this.item.layer;return e&&e&&e.options&&void 0!==e.options.opacity?e.options.opacity:1}update(e,t){if(t=t||{},this.isGroup()){this._value=this._prepareValue(e,t);const r=this.getChildren();for(const s of r){const r=s.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)}}}]};class Wt{constructor(e,r){this.map=e,this.options=r,this.NgwWebmapItem=zt,this.pixelRadius=10,this.webmapClassName="webmap",this.emitter=new t.exports.EventEmitter,this._webmapBaselayersIds=[];const s=r.resourceId;if(Array.isArray(s)?(this.resourceId=s[0],this.options.id=s[1]):this.resourceId=s,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}async addLayer(e){var t,r;this.options={...this.options,...e},this.layer=await this._getWebMapLayerItem();const s=null===(r=null===(t=this.response)||void 0===t?void 0:t.webmap)||void 0===r?void 0:r.extent_constrained;return this.options.useExtentConstrained&&this._extent&&s&&this.options.webMap.setView({maxBounds:this._extent}),this.layer}removeLayer(){const e=this.options.webMap.mapAdapter;if(this.getDependLayers().forEach((t=>{"layer"in t&&e.removeLayer(t.layer.layer)})),this._webmapBaselayersIds.length){for(const e of this._webmapBaselayersIds)this.options.webMap.removeLayer(e);this._lastActiveBaselayer&&this.options.webMap.showLayer(this._lastActiveBaselayer)}this.options.useExtentConstrained&&this._extent&&this.options.webMap.setView({maxBounds:null}),delete this.layer,delete this.response,delete this._webmapLayersIds}async showLayer(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}async hideLayer(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}async setOpacity(e){if(this.layer&&this.layer.properties)return this.layer.properties.property("opacity").set(e)}getExtent(){return this.getBounds()}getBounds(){const e=this.response&&this.response.webmap;if(e)return lt(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.response&&this.response.webmap;if(e)return e.bookmark_resource.id}fetchBookmarks(){const e=this.getBookmarksResourceId(),t=this.options.connector;if(e)return t.getResourceOrFail(e).then((r=>{var s;const i=null===(s=r.feature_layer)||void 0===s?void 0:s.fields.find((e=>e.label_field)),n=i&&i.keyname;return kt({connector:t,resourceId:e,geom:!1,fields:n?[n]:void 0}).then((r=>{const s=[];for(const i of r){const r=new Je({item:i,resourceId:e,labelField:n,connector:t});s.push(r)}return s}))}));throw new Error("Webmap was not loaded correctly, it is impossible to extract bookmarks")}async getLegend(){const e=[];let t=this.getDependLayers();t=t.sort(((e,t)=>t.id-e.id));for(const r of t){const t=await r.getLegend();e.push(...t)}return e}async getIdentificationIds(){const e=[];let t=this._webmapLayersIds;if(t||(t=await this._getWebMapIds(),this._webmapLayersIds=t),t&&t.length){let t=this.getDependLayers();t=t.sort(((e,t)=>t.id-e.id)),t.forEach((t=>{const r=t.item,s=r.parentId;if(void 0!==s&&"layer"===r.item_type&&r.layer_identifiable){const r=t.properties.property("visibility");r.get()&&!r.isBlocked()&&e.push(s)}}))}return e}async _getWebMapLayerItem(){if(this.resourceId){const e=await this.getWebMapConfig(this.resourceId);if(e&&e.root_item)return new Promise((t=>{const r={};if(this.options.connector&&this.options.connector.options.auth){const e=this.options.connector.getAuthorizationHeaders();e&&(r.headers=e)}r.setViewDelay=this.options.setViewDelay,r.order=this.options.order,r.ratio=this.options.ratio,r.crossOrigin=this.options.crossOrigin,r.minZoom=this.options.minZoom,r.maxZoom=this.options.maxZoom,r.drawOrderEnabled=e.draw_order_enabled,r.popupOptions=this.options.popupOptions;const s=new this.NgwWebmapItem(this.options.webMap,e.root_item,r,this.options.connector);s.emitter.on("init",(()=>t(s)))}))}}async getWebMapConfig(e){const t=await this.options.connector.getResource(e);if(t){this.response=t;const e=t[this.webmapClassName];if(this._setupBaselayers(t),e)return this._extent=[e.extent_left,e.extent_bottom,e.extent_right,e.extent_top],this._updateItemsParams(e.root_item,this.options.webMap,t),e}}_setupBaselayers(e){var t;const r=this.options.webMap;if(null===(t=this.options.useBasemap)||void 0===t||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 s of e.basemaps)Zt({webMap:t,connector:this.options.connector,item:s,adapterOptions:{crossOrigin:this.options.crossOrigin}}).then((e=>{const i=!r&&s.enabled;return s.enabled&&(r=!0),t.addBaseLayer(e,{id:Qt+s.resource_id,name:s.display_name,opacity:s.opacity,visibility:i}).then((e=>{e.id&&this._webmapBaselayersIds.push(e.id)}))}))}_updateItemsParams(e,t,r){if(e)if("group"===e.item_type||"root"===e.item_type)e.children&&(e.children=e.children.map((e=>this._updateItemsParams(e,t,r)))),"root"===e.item_type&&(e.display_name=r.resource.display_name);else if("layer"===e.item_type){const r=j(this.options.connector.options.baseUrl+"/api/component/render/image"),s=e.layer_style_id;e.url=r,e.resourceId=s,e.updateWmsParams=e=>Vt(e,s);const i=Tt({options:{adapter:e.layer_adapter.toUpperCase(),resource:s},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e={...e,...i}}return e}async _getWebMapIds(){const e=this.layer;if(e&&"root"===e.item.item_type){const t=e.tree.getDescendants(),r=[];for(const e of t){const t=e.item;if("layer"===t.item_type){const e=this.options.connector.getResource(t.layer_style_id).then((e=>{if(e){const r=Number(e.resource.parent.id);return t.parentId=r,r}}));r.push(e)}}return(await Promise.all(r)).filter((e=>void 0!==e))}}}class Ht{constructor(e){if(this.options=e,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 He({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){Rt[e]=t}async onLoadSync(e){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 await e.addLayer(Wt,{visibility:!0,fit:!0,pixelRadius:this.options.pixelRadius,...t})}}}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 Wt{constructor(e,r){super(e,r={...t,...r})}};var t}}class Jt{constructor(e){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?L.resolve(this._item):Kt({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(){return this._resource?L.resolve(this._resource.feature_layer):this.connector.getResource(this.layerId).then((e=>(this._resource=e,this._resource.feature_layer)))}getBounds(){return this._extent?L.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:s=!0}){return r.get("feature_layer.feature.item_extent",{cache:s},{id:e,fid:t}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:s,minLon:i}=e.extent;return[i,s,r,t]}}))}({connector:this.connector,featureId:this.id,resourceId:this.layerId})}geojson(){return this._geojson?L.resolve(this._geojson):this.identify().then((e=>e.toGeojson().then((e=>(this._geojson=e,e)))))}}const Qt="webmap-baselayer";function Kt(e){const t={...bt};Lt(t,e);const r={id:e.resourceId,fid:e.featureId,...t};return e.connector.get("feature_layer.feature.item",{cache:e.cache||!0},r).then((t=>({...t,toGeojson:()=>t.geom?L.resolve(wt(t)):Kt({...e,geom:!0,fields:null,extensions:null}).then((e=>{const r=e.geom;return wt({...t,geom:r})}))})))}function Xt(e){return Kt(e).then((e=>wt(e)))}function Yt(e,t=!1){const r=[],s=[];for(const n in e){const e=Number(n);isNaN(e)||r.push(e)}const i=e.resources;i&&r.sort(((e,t)=>i.indexOf(e)-i.indexOf(t)));for(let n=0;n<r.length;n++){const i=r[n],o=e[i];if("features"in o){const e=er(o.features,Number(i),t);if(e.length&&(s.push(...e),!t))break}}return s}function er(e,t,r){const s=[];for(const i of e){if(s.push({featureId:i.id,resourceId:t,feature:i}),!r)break}return s}function tr(e){const{geom:t,signal:r,cache:s,layers:i}=e,n="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?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,s]=N(e,t);return`${r} ${s}`})).join(",")}))`}(t);if(!n)throw new Error("Not valid geometry format to make intersection");return e.connector.post("feature_layer.identify",{data:{geom:n,srs:3857,layers:i},signal:r,cache:s})}function rr(e,t){C(e);const[r,s]=e.lngLat,{geom:i,radius:n,signal:o,cache:a}=t,c=null!=i?i:function(e,t,r=10,s=6){const i=r/P*S,n=i/Math.cos(t*x),o=[];for(let a=0;a<s+1;a++){const r=Math.PI*(a/(s/2)),c=e+n*Math.cos(r),l=t+i*Math.sin(r);o.push([c,l])}return o}(r,s,n);return tr({...t,geom:c,signal:o,cache:a})}const sr={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"/>'},ir=12;function nr(e,t,r,s){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push({...r,resource:t});else if(Array.isArray(t)){const[i,n]=t;e.push({...r,resource:i,id:n,...s})}else"object"==typeof t&&e.push({...r,...t,...s})}const or={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};class ar extends Pe{constructor(e){super(function(e){const t=[new vt];return e.starterKits&&e.starterKits.forEach((e=>{t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new He({baseUrl:e.baseUrl||"",auth:e.auth}),(e=A(or,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new Ht({connector:e.connector,auth:e.auth})),{...e,starterKits:t,create:!1}}(e)),this.emitter=new t.exports.EventEmitter,this._ngwLayers={},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()}))}async addControl(e,t,r){return await this.onLoad("controls:create"),super.addControl(e,t,r)}async addNgwLayer(e){await 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 s=e.resource;if(!t&&!r&&!s)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 s=r.getAuthorizationHeaders();return s&&(e.headers=s),qt(e,t,r)}(e,this,this.connector),r={visibility:!0,...e,...e.adapterOptions},s=await this.addLayer(t,r),i=s&&this.getLayerId(s);if(s&&i&&(this._ngwLayers[i]={layer:s,resourceId:s.resourceId},s.options.name=s.options.name||s.item&&s.item.resource.display_name,s.options.baselayer)){if(this.getActiveBaseLayer())return s}return s}catch(i){const e=R(s)&&"id"in s?s.id:t||r||s;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 Kt({connector:this.connector,...e})}fetchNgwLayerItems(e){return kt({connector:this.connector,...e})}fetchNgwLayerFeature(e){return Xt({connector:this.connector,...e})}fetchNgwLayerFeatures(e){return xt({connector:this.connector,...e})}fetchIdentifyItem(e,t){const r=function(e){const{connector:t,identify:r}=e,s=Yt(r);return s&&s.length?Kt({connector:t,...e.requestOptions,...s[0]}):L.resolve(void 0)}({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",r),r}fetchIdentifyGeoJson(e,t=!1){const r=function(e){const{connector:t,identify:r,requestOptions:s}=e;for(const n in r){const e=Number(n);if(!isNaN(e)){const e=r[n];if("features"in e){const t=e.features.find((e=>e.geom));if(t&&t.geom){const e=t.geom;return L.resolve(wt({...t,geom:e}))}}}}const i=Yt(r);return i&&i.length?Xt({...s,connector:t,...i[0]}):L.resolve(void 0)}({identify:e,connector:this.connector,multiple:t});return r&&"then"in r?(this._addPromise("identify",r),r):L.resolve(r)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,t)}async getNgwLayers(){return await this.onLoad(),this._ngwLayers}async getNgwLayerByResourceId(e){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=await r.layer.getIdentificationIds();if(t&&t.some((t=>t===e)))return r.layer}if(r.layer.getDependLayers){const t=r.layer.getDependLayers().find((t=>t.item&&t.item.parentId===e));if(t)return t.layer}}}async fitLayer(e,t){let r;r="string"==typeof e||"number"==typeof e?String(r):e.id;const s=r&&this._ngwLayers[r];if(s)if(s.layer.getBounds){const e=await s.layer.getBounds();e&&this.fitBounds(e,t)}else{let e;if(s.layer.item)e=s.layer.item;else{const t=s.resourceId;e=await this.connector.getResource(t)}e&&ut({resourceId:e.resource.id,connector:this.connector}).then((e=>{e&&this.fitBounds(e,t)}))}else super.fitLayer("number"==typeof e?String(e):e,t)}async zoomToLayer(e){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.cancel())),this._promises[e]=[])}))}async selectFromNgwRaster(e){var t;this._emitStatusEvent("ngw:preselect");const r=[],s=Object.values(this._ngwLayers);s.sort(((e,t)=>e.layer.order&&t.layer.order?t.layer.order-e.layer.order:1));for(const p of s){const e=p.layer,s="function"==typeof e.getIdentificationIds&&e.getIdentificationIds,i=null===(t=e.options.interactive)||void 0===t||t;s&&e.options.selectable&&i&&this.isLayerVisible(e)&&r.push(s.call(e))}const i=Promise.all(r),n=await i,o=[];for(const p of n)p&&o.push(...p);if(!o.length)return void this._emitStatusEvent("ngw:select",null);const a=this.options.pixelRadius||10,c=this.getCenter();let l=this.getZoom();if(l=void 0!==l?l:20,!c||!l)return void this._emitStatusEvent("ngw:select",null);const h=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,l,a),u=rr(e,{layers:o,connector:this.connector,radius:h}).then((t=>{const r={...t,resources:o,sourceType:"raster",event:e},s=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",s),s}));return this._addPromise("select",u),u}_addPromise(e,t){const r=this._promises[e];if(r&&-1===r.indexOf(t)){const e=()=>{const e=r.indexOf(t);-1!==e&&r.splice(e,1)};t.then(e),t.catch(e),r.push(t)}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}async _createWebMap(){await this.create(),this.options.qmsId&&this._addQmsBaseLayer(),this.options.osm&&this._addOsmBaseLayer();const e=[],t=this._isFitFromResource();if(this.options.webmapId&&nr(e,this.options.webmapId,{fit:t}),this.options.resources&&Array.isArray(this.options.resources))for(const s of this.options.resources){const r={};t||(r.fit=!1),nr(e,s,{},r)}for(const s of e)try{await this.addNgwLayer(s)}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,s=e.feature;if(void 0!==r&&s){const e=s.id;if(e){const t={featureCount:1,[r]:{featureCount:1,features:[{id:Number(e),fields:s.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:s.geometry}]}};return this._emitStatusEvent("ngw:select",this._prepareToIdentify({...t,resources:[r],sourceType:"vector"})),t}}}_prepareToIdentify(e){return{...e,getIdentifyItems:()=>Yt(e,!0).map((e=>new Jt({feature:e.feature,connector:this.connector})))}}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}async _whiteLabel(){const e=this.getContainer();if(e){const t=await async function(e,t){var r;const s=await e.get("pyramid.settings",null,{component:"pyramid"});if(s&&s.company_logo&&s.company_logo.enabled){const n=document.createElement("a");n.style.position="absolute",n.style.bottom="0",n.style.right="0",n.style.padding=null!==(r=null==t?void 0:t.padding)&&void 0!==r?r:"10px",n.className="ngw-map-logo",t&&t.cssClass&&(n.className+=" "+t.cssClass);const o=new Image;o.style.maxHeight="100px",o.style.maxWidth="100px",o.src="";try{const t=await e.get("pyramid.company_logo",{responseType:"blob"}),r=(window.URL||window.webkitURL).createObjectURL(t);o.src=r}catch(i){console.warn(i)}return null!==s.company_logo.link&&""!==s.company_logo.link.trim()&&(n.href=s.company_logo.link,n.target="_blank",-1!==s.company_logo.link.search(/:\/\/nextgis/)&&(o.alt="Get your own Web GIS at nextgis.com")),n.appendChild(o),n}}(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}}async function cr(e){return new ar(e).onLoad()}ar.getIcon=function(e={}){var t,r,s,i,n,o;const a=null!==(t=e.shape)&&void 0!==t?t:"circle",c=null!==(r=e.color)&&void 0!==r?r:"blue",l=null!==(s=e.strokeColor)&&void 0!==s?s:"white",h=null!==(i=e.size)&&void 0!==i?i:ir,u=null!==(n=e.rotate)&&void 0!==n?n:0,p=null!==(o=e.anchor)&&void 0!==o?o:[h/2,h/2],d=void 0!==e.stroke?Number(e.stroke):.8,f=e.p||sr[a]||"circle",y="string"==typeof f?f:f(e),m=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").documentElement}(e.svg||function({width:e,height:t,stroke:r=0,content:s}){const i=r/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} ${ir+r} ${ir+r}"\n >${s}</svg>`}({width:h,height:h,stroke:d,content:y}));return m.setAttribute("width",String(h)),m.setAttribute("height",String(h)),m.setAttribute("fill",c),d&&(m.setAttribute("stroke",l),m.setAttribute("stroke-width",String(d))),{type:"icon",iconSize:[h,h],iconAnchor:p,html:(new XMLSerializer).serializeToString(m),rotate:u,svg:m}};export{ar as NgwMap,Pe as WebMap,Ee as WebMapControls,Oe as WebMapLayers,ge as WebMapMain,cr as createNgwMap,Ie as createToggleControl,Me as createWebMap,ve as detectGeometryType,_e as findMostFrequentGeomType,ke as getDefaultControls,Ce as getWebMap,Le as updateGeoJsonAdapterOptions};
1
+ function e(){}function t(){t.init.call(this)}function r(e){return void 0===e._maxListeners?t.defaultMaxListeners:e._maxListeners}function n(t,n,i,o){var s,a,l,c;if("function"!=typeof i)throw new TypeError('"listener" argument must be a function');if((a=t._events)?(a.newListener&&(t.emit("newListener",n,i.listener?i.listener:i),a=t._events),l=a[n]):(a=t._events=new e,t._eventsCount=0),l){if("function"==typeof l?l=a[n]=o?[i,l]:[l,i]:o?l.unshift(i):l.push(i),!l.warned&&(s=r(t))&&s>0&&l.length>s){l.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+n+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=n,u.count=l.length,c=u,"function"==typeof console.warn?console.warn(c):console.log(c)}}else l=a[n]=i,++t._eventsCount;return t}function i(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function o(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 s(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}e.prototype=Object.create(null),t.EventEmitter=t,t.usingDomains=!1,t.prototype.domain=void 0,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.init=function(){this.domain=null,t.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new e,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},t.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},t.prototype.getMaxListeners=function(){return r(this)},t.prototype.emit=function(e){var t,r,n,i,o,a,l,c="error"===e;if(a=this._events)c=c&&null==a.error;else if(!c)return!1;if(l=this.domain,c){if(t=arguments[1],!l){if(t instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=l,t.domainThrown=!1,l.emit("error",t),!1}if(!(r=a[e]))return!1;var p="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,i=s(e,n),o=0;o<n;++o)i[o].call(r)}(r,p,this);break;case 2:!function(e,t,r,n){if(t)e.call(r,n);else for(var i=e.length,o=s(e,i),a=0;a<i;++a)o[a].call(r,n)}(r,p,this,arguments[1]);break;case 3:!function(e,t,r,n,i){if(t)e.call(r,n,i);else for(var o=e.length,a=s(e,o),l=0;l<o;++l)a[l].call(r,n,i)}(r,p,this,arguments[1],arguments[2]);break;case 4:!function(e,t,r,n,i,o){if(t)e.call(r,n,i,o);else for(var a=e.length,l=s(e,a),c=0;c<a;++c)l[c].call(r,n,i,o)}(r,p,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o<n;o++)i[o-1]=arguments[o];!function(e,t,r,n){if(t)e.apply(r,n);else for(var i=e.length,o=s(e,i),a=0;a<i;++a)o[a].apply(r,n)}(r,p,this,i)}return!0},t.prototype.on=t.prototype.addListener=function(e,t){return n(this,e,t,!1)},t.prototype.prependListener=function(e,t){return n(this,e,t,!0)},t.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,i(this,e,t)),this},t.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,i(this,e,t)),this},t.prototype.removeListener=function(t,r){var n,i,o,s,a;if("function"!=typeof r)throw new TypeError('"listener" argument must be a function');if(!(i=this._events))return this;if(!(n=i[t]))return this;if(n===r||n.listener&&n.listener===r)0==--this._eventsCount?this._events=new e:(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if("function"!=typeof n){for(o=-1,s=n.length;s-- >0;)if(n[s]===r||n[s].listener&&n[s].listener===r){a=n[s].listener,o=s;break}if(o<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new e,this;delete i[t]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n<i;r+=1,n+=1)e[r]=e[n];e.pop()}(n,o);i.removeListener&&this.emit("removeListener",t,a||r)}return this},t.prototype.off=function(e,t){return this.removeListener(e,t)},t.prototype.removeAllListeners=function(t){var r,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new e,this._eventsCount=0):n[t]&&(0==--this._eventsCount?this._events=new e:delete n[t]),this;if(0===arguments.length){for(var i,o=Object.keys(n),s=0;s<o.length;++s)"removeListener"!==(i=o[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=new e,this._eventsCount=0,this}if("function"==typeof(r=n[t]))this.removeListener(t,r);else if(r)do{this.removeListener(t,r[r.length-1])}while(r[0]);return this},t.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):[]},t.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):o.call(e,t)},t.prototype.listenerCount=o,t.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var a=Object.defineProperty,l=(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),r);class c extends Error{constructor(){super(),l(this,"name","CancelError"),Object.setPrototypeOf(this,c.prototype)}}var u=Object.defineProperty,p=(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),r);class h{constructor(e={}){this.options=e,p(this,"_promises",new Map)}get isLoaded(){return this._promises.size>0}remove(e){this._promises.has(e)&&(this._promises.delete(e),this._onStop())}get(e){return this._promises.get(e)}add(e,t){const r=t||e,n=this._promises.get(r);return this.options.onStart&&!this.isLoaded&&this.options.onStart(),n||(this._promises.set(r,e),e.finally((()=>{this.remove(r)})),e)}abort(){this.isLoaded&&(this._promises.forEach((e=>{e.cancel&&e.cancel()})),this._promises.clear(),this._onStop())}waitFunc(e,t=""){const r=this.get(t=t||e.name);return r||this.add(e(),t)}WaitForMe(e=""){const t=this.get.bind(this),r=this.add.bind(this);return function(n,i,o){const s=o.value;return e=e||i,o.value=function(...n){const i=t(e);if(i)return i;return r(s.apply(this,n),e)},o}}GetOrCreateDecorator(e=""){return this.WaitForMe(e)}_onStop(){this.options.onStop&&!this.isLoaded&&this.options.onStop()}}var d=Object.defineProperty,f=(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),r);class y extends Error{constructor(){super(),f(this,"name","TimeoutError"),Object.setPrototypeOf(this,y.prototype)}}var m,g=Object.defineProperty,b=(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),r);const v=(e,t,r,n)=>{try{e(r(n))}catch(i){t(i)}};let _=0;const w=class e{constructor(t,r){b(this,m),b(this,"id",_++),b(this,"_isCanceled",!1),b(this,"_isPending",!0),b(this,"_promise"),b(this,"_cancelPromise"),b(this,"_cancelHandlers",[]),b(this,"_setCanceledCallback"),b(this,"_parentPromise"),b(this,"_children",[]),this._cancelPromise=new Promise(((e,t)=>{this._setCanceledCallback=t=>e(t||new c)}));const n=[this._cancelPromise,new Promise(((r,n)=>t((t=>{t instanceof e?this.attach(t):this._isPending=!1,r(t)}),(e=>{this._isPending=!1,n(e)}),(e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)}))))];r&&n.push(new Promise(((e,t)=>{setTimeout((()=>{if(this._isPending)try{this.cancel()}finally{t(new y)}}),r)}))),this._promise=Promise.race(n)}static createControl(e){return new h(e)}static resolve(t){return new e((e=>e(t)))}static reject(t){return new e(((e,r)=>r(t)))}static all(t){return new e(((e,r)=>{Promise.all(t).then(e).catch(r)})).catch((e=>{if(e instanceof this.CancelError)for(const r of t){"cancel"in r&&r.cancel()}throw e}))}attach(e){this._isCanceled?e.cancel():this._children.push(e)}then(t,r){const n=new e(((e,n)=>{if(this._promise){const i=t=>{r?v(e,n,r,t):n(t)};this._promise.then((r=>{this._isCanceled?i(r):t?v(e,n,t,r):e(r)}),i)}}));return n._parentPromise=this,this._children.push(n),n}catch(e){return this._isCanceled&&e&&e(new c),this.then(void 0,e)}finally(e){return this._promise?this._promise.finally(e):Promise.reject(this._isCanceled?new c:e)}cancel(){if(this._isCanceled||!this._isPending)return this;this._isCanceled=!0;const e=this._getTopParent();if(e&&e.cancel(),this._children&&this._children.forEach((e=>e.cancel())),this._isPending){if(this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(t){}this._setCanceledCallback&&this._setCanceledCallback()}return this._destroy(),this}_getTopParent(){let e=this._parentPromise,t=!!e;for(;t;)e&&e._parentPromise?(e=e._parentPromise,t=!!e):t=!1;return e}_destroy(){this._setCanceledCallback=void 0,this._cancelPromise=void 0,this._promise=void 0}};m=Symbol.toStringTag,b(w,"CancelError",c),b(w,"TimeoutError",y),b(w,"PromiseControl",h);let O=w;Object.setPrototypeOf(O.prototype,Promise.prototype);const L={brill:'<path d="m6 0-5 6 5 6 5-6z"/>',circle:'<circle cx="6" cy="6" r="6"/>',rect:'<rect width="12" height="12"/>',marker:'<path d="m6 0c-1.85 0-4 1.19-4 4.22 0 2.05 3.08 6.59 4 7.78 0.821-1.19 4-5.62 4-7.78 0-3.03-2.15-4.22-4-4.22z"/>',cross:'<path d="M 2.4,12 6,8.4 9.6,12 12,9.6 8.4,6 12,2.4 9.6,0 6,3.6 2.4,0 0,2.4 3.6,6 0,9.6 Z"/>',star:'<path d="m6 0.25 1.71 4.18 4.29-1.04e-4 -3.43 3.14 0.857 4.18-3.43-3.14-3.43 3.14 0.857-4.18-3.43-3.14 4.29-0.209z"/>',triangle:'<path d="m12 11.7h-12l6-11.2z"/>',plus:'<path d="m7.5 12v-4.5h4.5v-3h-4.5v-4.5h-3v4.5h-4.5v3h4.5v4.5z"/>',minus:'<path d="m12 7.5v-3h-12v3z"/>',asterisk:'<path d="m7.59 12v-3.27l2.83 1.64 1.58-2.74-2.85-1.64 2.83-1.64-1.56-2.74-2.83 1.64v-3.24h-3.17v3.24l-2.85-1.64-1.57 2.74 2.84 1.64-2.84 1.64 1.57 2.74 2.85-1.64v3.27z"/>'},P=12;function I(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 i=void 0===r.replace||r.replace;t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((r=>{const o=-1!==n.indexOf(r);if(!i&&!o||i){const n=Object.getOwnPropertyDescriptor(t.prototype,r);n&&Object.defineProperty(e.prototype,r,n)}}))}))}function E(e){return null!=e}function j(e){return"string"==typeof e?!!e:E(e)}function x(e,t,r=!1){let n=e;const i=t,o=Array.isArray(i);let s=o&&[]||{};return o&&Array.isArray(i)?r?(n=n||[],s=s.concat(n),i.forEach(((e,t)=>{void 0===s[t]?s[t]=e:"object"==typeof e?s[t]=x(n[t],e,r):-1===n.indexOf(e)&&s.push(e)}))):s=i:(n&&"object"==typeof n&&Object.keys(n).forEach((function(e){s[e]=n[e]})),Object.keys(i).forEach((function(e){s[e]="object"==typeof i[e]&&i[e]&&"object"==typeof n[e]&&"object"==typeof i[e]?x(n[e],i[e],r):i[e]}))),s}function A(e){if(!e.lngLat&&e.latLng){e.lngLat=[e.latLng.lng,e.latLng.lat]}return e}const C=6371;function k(e){return{type:"Polygon",coordinates:[M(e)]}}function M(e){const t=[e[0],e[1]];return[t,[e[2],e[1]],[e[2],e[3]],[e[0],e[3]],t]}const S=Math.PI/180,N=180/Math.PI;function F(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 T(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:B(e,t));return e===t}function B(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 i=0;i<r.length;i++){if(!T(e[r[i]],t[n[i]],e,t))return!1}return!0}function R(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]=R(e[r])})),t}function $(e){return"[object Object]"===Object.prototype.toString.call(e)}function D(e){return e.replace(/([^:]\/)\/+/g,"$1")}var q=Object.defineProperty,V=(e,t,r)=>(((e,t,r)=>{t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const U=class e{constructor(t={}){var r;V(this,"cache",[]);const n=null!=(r=t.namespace)?r:"default";return e.instance[n]?e.instance[n]:(e.instance[n]=this,this)}clean(){this.cache.length=0}all(){return this.cache}addFull(e,t,r){return this.add(e,t,r,!0)}add(e,t,r,n){const i=this._find(e,r);if(i)return i.value;{let i;i=t instanceof Function?t():t;const o=r&&JSON.parse(JSON.stringify(R(r))),s={key:e,value:i,props:o,options:o};return n&&!j(i)?i:(this.cache.push(s),i instanceof Promise?(i.catch((t=>{throw this.delete(e,r),t})),n&&i.then((t=>(j(t)||this.delete(e,r),t))),i):i)}}match(e,t){const r=this._find(e,t);if(r)return r.value}matchAll(e,t){return e?this.cache.filter((r=>this._filter(r,e,t))).map((e=>e.value)):this.cache.map((e=>e.value))}delete(e,t){let r=[];"string"==typeof e?r=this.cache.filter((r=>this._filter(r,e,t))):r.push(e);for(const n of r){const e=this.cache.indexOf(n);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){if(r){return B(e.props||e.options||{},R(r))}return!0}return!1}};V(U,"instance",{});let G=U;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),r);class W extends Error{constructor(e){super(),Z(this,"name","NgwError"),Z(this,"title"),Z(this,"message"),Z(this,"detail"),Z(this,"exception"),Z(this,"status_code"),Z(this,"data"),Z(this,"guru_meditation"),Object.assign(this,e),Object.setPrototypeOf(this,W.prototype)}}var H=Object.defineProperty,J=(e,t,r)=>(((e,t,r)=>{t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Q extends W{constructor(e){super(e),J(this,"name","ResourceNotFoundError"),J(this,"exception","nextgisweb.resource.exception.ResourceNotFound"),Object.setPrototypeOf(this,Q.prototype)}}function K(e){return"[object Object]"===Object.prototype.toString.call(e)}const X=["description"];function Y(e,t=""){t=t?t+"__":"";const r={};for(const[n,i]of Object.entries(e))if(-1===X.indexOf(n))if(K(i))if("owner_user"===n){const e=Y(i,n);Object.assign(r,e)}else"parent"===n&&"id"in i&&(r.parent_id=i.id);else E(i)&&(r[t+n]=i);return r}var ee=Object.defineProperty,te=Object.defineProperties,re=Object.getOwnPropertyDescriptors,ne=Object.getOwnPropertySymbols,ie=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable,se=(e,t,r)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ae=(e,t)=>{for(var r in t||(t={}))ie.call(t,r)&&se(e,r,t[r]);if(ne)for(var r of ne(t))oe.call(t,r)&&se(e,r,t[r]);return e};class le{constructor(e){var t,r,n;this.connector=e,t=this,r="cache",n=new G,se(t,"symbol"!=typeof r?r+"":r,n)}getOne(e,t){const r=new G,n={},i=(o=ae({},t),te(o,re({cache:!1})));var o;"string"==typeof e?n.keyname=e:"number"==typeof e?n.id=e:K(e)&&(void 0!==e.id?n.id=e.id:(e.keyname&&(n.keyname=e.keyname),e.display_name&&(n.display_name=e.display_name)));return r.addFull("resource",(()=>"string"==typeof e?this._fetchResourceBy({keyname:e},i):"number"==typeof e?this._fetchResourceById(e,i):K(e)?this._fetchResourceBy(e,i):O.resolve(void 0)),n)}getOneOrFail(e,t){return this.getOne(e,t).then((e=>{if(e)return e;throw new Q}))}getId(e,t){return"number"==typeof e?O.resolve(e):"string"==typeof e||K(e)?this.getOne(e,t).then((e=>{if(e)return e.resource.id})):O.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,Y(e)),this.connector.get("resource.search",t,ae({serialization:"full"},r)).then((e=>{if(e)for(const t of e)this.cache.add("resource.item",O.resolve(t),{id:t.resource.id});return e}))}return r}))}getParent(e,t){return this.getOne(e,t).then((e=>e?this.getOne(e.resource.parent.id,t):O.resolve(void 0)))}getChildrenOf(e,t){return this.getIdOrFail(e).then((e=>this._getChildrenOf(e,t)))}update(e,t){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.put("resource.item",{data:t},{id:e})}))}delete(e){return this.getId(e).then((e=>{if(void 0!==e)return this.connector.delete("resource.item",null,{id:e}).then((()=>{this._cleanResourceItemCache(e)}))}))}_getChildrenOf(e,t,r=[]){return this.connector.get("resource.collection",ae({cache:!0},t),{parent:e}).then((e=>{const n=[];for(const i of e)this.cache.add("resource.item",O.resolve(i),{id:i.resource.id}),r.push(i),(null==t?void 0:t.recursive)&&i.resource.children&&n.push(this._getChildrenOf(i.resource.id,t,r));return n.length?O.all(n).then((()=>r)):r}))}_cleanResourceItemCache(e){return t=this,r=null,n=function*(){const t=this.cache.all(),r=[];for(const n of t){const t=n.options&&n.options.id;["resource.item","resource"].includes(n.key)&&void 0!==t&&("number"==typeof t?t===e&&r.push(n):(yield this.getId(t))===e&&r.push(n))}for(const e of r)this.cache.delete(e)},new Promise(((e,i)=>{var o=e=>{try{a(n.next(e))}catch(t){i(t)}},s=e=>{try{a(n.throw(e))}catch(t){i(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,s);a((n=n.apply(t,r)).next())}));var t,r,n}_fetchResourceById(e,t){return this.cache.add("resource.item",(()=>this.connector.get("resource.item",t,{id:e})),{id:e}).catch((e=>{if(!(e instanceof Q))throw e}))}_fetchResourceBy(e,t){return this.getMany(e,t).then((e=>e[0]))}_resourceCacheFilter(e){return O.all(this.cache.matchAll("resource.item")).then((t=>(t.filter((t=>{if(t)return e.keyname&&t.resource.keyname?e.keyname===t.resource.keyname:E(e.id)&&E(t.resource.id)?e.id===t.resource.id:B(e,t.resource)})),[])))}}const ce=[];function ue(e){ce.push(e)}var pe=Object.defineProperty,he=(e,t,r)=>(((e,t,r)=>{t in e?pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class de extends W{constructor(e){super(e),he(this,"name","InsufficientPermissionsError"),he(this,"exception","nextgisweb.core.exception.InsufficientPermissions"),Object.setPrototypeOf(this,de.prototype)}}const fe=/\{ *([\w_-]+) *\}/g;function ye(e,t){return e.replace(fe,((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 me=Object.defineProperty,ge=(e,t,r)=>(((e,t,r)=>{t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class be extends Error{constructor(e){super(),ge(this,"name","NetworkError"),Object.setPrototypeOf(this,be.prototype),this.message=`Unable to request ${e}.\n Possibly invalid NGW URL entered or CORS not configured to get request from ${location.origin}`}}let ve;ve=(e,t,r={},n,i)=>{r.method=r.method||"GET";const o=new XMLHttpRequest;o.open(r.method||"GET",e,!0),"blob"===r.responseType&&(o.responseType=r.responseType);const s=()=>{try{return JSON.parse(o.responseText)}catch(e){return o.responseText}};o.onload=()=>{-1!==[401,403,404,422,500].indexOf(o.status)&&n(new W(s())),((e=!1)=>{const i=e?n:t;"blob"===r.responseType?i(o.response):o.responseText?i(s()):n({message:""})})()},o.onerror=t=>{n(0===o.status?new be(e):t)},o.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&&o.setRequestHeader(c,e)}let l;if(void 0!==r.withCredentials&&(o.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;i&&i((()=>{o.abort()})),o.send(l)};var _e=Object.defineProperty,we=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Pe=(e,t,r)=>t in e?_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ie=(e,t)=>{for(var r in t||(t={}))Oe.call(t,r)&&Pe(e,r,t[r]);if(we)for(var r of we(t))Le.call(t,r)&&Pe(e,r,t[r]);return e},Ee=(e,t,r)=>(Pe(e,"symbol"!=typeof t?t+"":t,r),r);let je=0;class xe{constructor(e){this.options=e,Ee(this,"id",je++),Ee(this,"emitter",new t),Ee(this,"user"),Ee(this,"resources"),Ee(this,"routeStr","/api/component/pyramid/route"),Ee(this,"activeRequests",[]),Ee(this,"requestTransform");const r=function(e){return ce.find((t=>{if(t.options.baseUrl===e.baseUrl){if(!e.auth)return!0;if(t.options.auth)return B(t.options.auth,e.auth)}}))}(e);if(r)return r;this.options.route&&(this.routeStr=this.options.route),this.options.requestTransform&&(this.requestTransform=this.options.requestTransform),this.resources=new le(this),ue(this)}static create(e){return new this(e)}setRequestTransform(e){this.requestTransform=e}setNgw(e){this.logout(),this.options.baseUrl=e,ue(this)}connect(){const e=new G,t=this.options.auth;return e.add("route",(()=>new O(((e,r)=>{const n=()=>this.makeQuery(this.routeStr,{},{}).then((t=>{e(t)})).catch((e=>{r(e)}));if(t){const{login:e,password:i}=t;if(e&&i)return this._login({login:e,password:i}).then((()=>n())).catch((e=>r(e)))}return n()}))),{id:this.id,auth:t,baseUrl:this.options.baseUrl})}login(e,t){return this.logout(),ue(this),this._login(e,t)}logout(){this.abort(),function(e){const t=ce.indexOf(e);-1!==t&&ce.splice(t,1)}(this),this.options.auth=void 0,this.user=void 0,this.emitter.emit("logout"),this.resources.cache.clean()}getUserInfo(e,t){if(this.user&&this.user.id)return O.resolve(this.user);e&&(this.options.auth=e);const r=Ie({headers:this.getAuthorizationHeaders(e)},t);return this.makeQuery("/api/component/auth/current_user",{},r)}getAuthorizationHeaders(e){const t=this.makeClientId(e);if(t)return{Authorization:"Basic "+t}}makeClientId(e){if(e=e||this.options.auth){const{login:t,password:r}=e,n=unescape(encodeURIComponent(`${t}:${r}`));return window.btoa(n)}}abort(){for(const e of this.activeRequests)e.cancel();this.activeRequests=[]}getActiveApiRequests(){return[...this.activeRequests]}apiRequest(e,t={},r={}){var n,i;const{method:o,headers:s,withCredentials:a,responseType:l}=r,c=R(t=null!=(n=r.params)?n:t),u=()=>function(e){const t=e.params;return new O(((r,n)=>{e.connector.connect().then((i=>{let o=i&&i[e.name];if(o){o=[...o];let i=o.shift();if(o.length){const e={};for(let r=0;r<o.length;r++){const n=o[r];if(e[r]="{"+n+"}",void 0===t[n])throw new Error("`"+n+"` url api argument is not specified")}i&&(i=ye(i,e))}if(t){const e=[],r=t.paramList;Array.isArray(r)&&(delete t.paramList,r.forEach((t=>{e.push(`${t[0]}=${t[1]}`)})));for(const n in t)-1===o.indexOf(n)&&e.push(`${n}=${t[n]}`);e.length&&(i=i+"?"+e.join("&"))}i?r(e.connector.makeQuery(i,t,e.requestOptions)):n(new Error("request url is not set"))}else r(void 0)})).catch((e=>{n(e)}))}))}({name:e,params:c,requestOptions:r,connector:this});if(r.cache&&"GET"===o){return(new G).add(e,u,Ie({params:c},R({headers:s,withCredentials:a,responseType:l,baseUrl:this.options.baseUrl,userId:null==(i=this.user)?void 0:i.id})))}return u()}post(e,t,r){return(t=t||{}).method="POST",this.apiRequest(e,r,t)}get(e,t,r){return(t=t||{}).method="GET",this.apiRequest(e,r,t)}patch(e,t,r){return(t=t||{}).method="PATCH",this.apiRequest(e,r,t)}put(e,t,r){return(t=t||{}).method="PUT",this.apiRequest(e,r,t)}delete(e,t,r){return(t=t||{}).method="DELETE",this.apiRequest(e,r,t)}makeQuery(e,t,r={}){if(e=(this.options.baseUrl?this.options.baseUrl:"")+e)return t&&(e=ye(e,t)),e=encodeURI(D(e)),this._loadData(e,r);throw new Error("Empty `url` not allowed")}getResource(e,t){return this.resources.getOne(e,t)}getResourceOrFail(e,t){return this.resources.getOneOrFail(e,t)}getResourceBy(e){return this.resources.getOne(e)}getResourceByKeyname(e){return this.resources.getOne(e)}getResourceById(e){return this.resources.getOne(e)}getResourceId(e,t){return this.resources.getId(e,t)}getResourceIdOrFail(e,t){return this.resources.getIdOrFail(e,t)}getResourcesBy(e,t){return this.resources.getMany(e,t)}getResourceParent(e,t){return this.resources.getParent(e,t)}getResourceChildren(e,t){return this.resources.getChildrenOf(e,t)}updateResource(e,t){return this.resources.update(e,t)}deleteResource(e){return this.resources.delete(e)}_loadData(e,t){if(t.responseType=t.responseType||"json",t.signal&&t.signal.aborted)return O.reject(new O.CancelError);const r=new O(((r,n,i)=>{if(this.user&&((t=t||{}).headers=Ie(Ie({},this.getAuthorizationHeaders()),t.headers)),this.requestTransform){const[r,n]=this.requestTransform(e,t);e=r,t=n}ve(e,r,t,n,i)})).then((e=>(this._cleanActiveRequests(r),e))).catch((e=>{if(this._cleanActiveRequests(r),e instanceof O.CancelError);else{const t=this._handleHttpError(e);if(t)throw t}}));return t.signal&&"function"==typeof t.signal.addEventListener&&t.signal.addEventListener("abort",(()=>{r.cancel(),this._cleanActiveRequests(r)})),this.activeRequests.push(r),r}_login(e,t){return this.getUserInfo(e,t).then((e=>(this.user=e,this.emitter.emit("login",e),e))).catch((e=>{throw this.emitter.emit("login:error",e),e}))}_cleanActiveRequests(e){const t=this.activeRequests.indexOf(e);-1!==t&&this.activeRequests.splice(t,1)}_handleHttpError(e){if(e&&e instanceof W){if("nextgisweb.resource.exception.ResourceNotFound"===e.exception)throw new Q(e);if("nextgisweb.core.exception.InsufficientPermissions"===e.exception)throw new de(e)}return e}}Ee(xe,"errors",{NgwError:W,ResourceNotFoundError:Q});var Ae=Object.defineProperty,Ce=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable,Se=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ne=(e,t)=>{for(var r in t||(t={}))ke.call(t,r)&&Se(e,r,t[r]);if(Ce)for(var r of Ce(t))Me.call(t,r)&&Se(e,r,t[r]);return e};function Fe(e,t,r){if((t=String(t))===(e=String(e)))return!0;if(r&&t.toUpperCase()===e.toUpperCase())return!0;const n=`^${i=t,i.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}$`.replace(/%/g,".*").replace("_",".");var i;return null!==new RegExp(n,r?"i":"").exec(e)}const Te={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)=>Fe(e,t),ilike:(e,t)=>Fe(e,t,!0)};function Be(e){return 3===e.length&&"string"==typeof e[0]&&"string"==typeof e[1]}function Re(e,t){const r="string"==typeof t[0]?t[0]:"all",n=t=>{if(Be(t)){const[r,n,i]=t,o=Te[n];if(o){if(("like"===n||"ilike"===n)&&"string"==typeof r){let t="";const n=r.replace(/^%?(\w+)%?$/,((n,o)=>(t=e[o],r.replace(o,i))));return o(t,n)}return o(e[r],i)}return!1}return Re(e,t)},i=t.filter((e=>Array.isArray(e)));return"any"===r?i.some(n):i.every(n)}var $e=Object.defineProperty,De=Object.defineProperties,qe=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Ue=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={}))Ue.call(t,r)&&ze(e,r,t[r]);if(Ve)for(var r of Ve(t))Ge.call(t,r)&&ze(e,r,t[r]);return e},We=(e,t)=>De(e,qe(t));const He={srs:4326,geom_format:"geojson"};function Je(e){return{geometry:e.geom,id:e.id,type:"Feature",properties:e.fields}}function Qe(e,t){const{extensions:r,geom:n,fields:i,srs:o,ilike:s,like:a}=t,l=r?r.join(","):"";"*"!==l&&(e.extensions=l),void 0!==i&&(e.fields=Array.isArray(i)?i.join(","):""),void 0!==n&&(e.geom=n?"yes":"no",n||(delete e.srs,delete e.geom_format)),E(s)?e.ilike=s:E(a)&&(e.like=a),E(o)&&(e.srs=o)}function Ke(e){const t=Ye(e);return O.all(t).then((t=>{const r=[],n=[];for(const e of t)for(const t of e)r.includes(t.id)||(n.push(t),r.push(t.id));return e.offset||e.limit?n.splice(void 0!==e.offset?e.offset:0,void 0!==e.limit?e.limit:n.length):n}))}function Xe(e){const[t,r,n]=e;let i="",o="";return[`${"id"!==t?"fld_":""}${String(t).trim().replace(/^(%?)(.+?)(%?)$/,((e,t,r,n)=>(i=t,o=n,r)))}__${r}`,i+n+o]}function Ye(e,t=[],r=[]){const{filters:n}=e,i="string"==typeof n[0]?n[0]:"all",o=n.filter((e=>Array.isArray(e)));if("any"===i)for(const s of o)Be(s)?t.push(tt(We(Ze({},e),{paramList:[...r,Xe(s)]}))):Ye(We(Ze({},e),{filters:s}),t,[...r]);else if("all"===i){const n=[],i=[];for(const e of o)Be(e)?n.push(Xe(e)):i.push(e);if(i.length)for(const o of i)Ye(We(Ze({},e),{filters:o}),t,[...r,...n]);else t.push(tt(We(Ze({},e),{paramList:[...r,...n]})))}return t}function et(e){return`POLYGON((${e.map((([e,t])=>{const[r,n]=F(e,t).map((e=>function(e,t){const r=t?Number("1e+"+t):1;return Math.round((e+Number.EPSILON)*r)/r}(e)));return r+" "+n})).join(", ")}))`}function tt(e){const t=Ze({},He),{limit:r,cache:n,signal:i,offset:o,orderBy:s,paramList:a,connector:l,geomFormat:c,intersects:u,resourceId:p}=e;if(r?r!==Number.POSITIVE_INFINITY&&(t.limit=r):t.limit=7e3,o&&(t.offset=o),c&&(t.geom_format=c),Qe(t,e),s&&(t.order_by=s.join(",")),Array.isArray(u)){const e=function(e){return Array.isArray(e)&&4===e.length&&e.every((e=>"number"==typeof e))}(u)?M(u):u;t.intersects=et(e)}else"string"==typeof u&&(t.intersects=u);a&&(t.paramList=a);const h=Ze({id:p},t);return l.get("feature_layer.feature.collection",{cache:n,signal:i},h)}var rt=Object.defineProperty,nt=Object.defineProperties,it=Object.getOwnPropertyDescriptors,ot=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,lt=(e,t,r)=>t in e?rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ct=(e,t)=>{for(var r in t||(t={}))st.call(t,r)&&lt(e,r,t[r]);if(ot)for(var r of ot(t))at.call(t,r)&&lt(e,r,t[r]);return e},ut=(e,t)=>nt(e,it(t));function pt(e){const t=ct({},He);Qe(t,e);const r=ct({id:e.resourceId,fid:e.featureId},t);return e.connector.get("feature_layer.feature.item",{cache:e.cache||!0},r).then((t=>ut(ct({},t),{toGeojson:()=>t.geom?O.resolve(Je(t)):pt(ut(ct({},e),{geom:!0,fields:null,extensions:null})).then((e=>{const r=e.geom;return Je(ut(ct({},t),{geom:r}))}))})))}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,"symbol"!=typeof t?t+"":t,r),r);class ft{constructor(e){this.options=e,dt(this,"name"),dt(this,"resourceId"),dt(this,"item"),dt(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(){return this._extent?O.resolve(this._extent):this.options.connector.get("feature_layer.feature.item_extent",null,{id:this.resourceId,fid:this.item.id}).then((e=>{const{minLat:t,minLon:r,maxLat:n,maxLon:i}=e.extent,o=[r,t,i,n];return this._extent=o,o}))}geoJson(){return this.item.geom?O.resolve(Je(this.item)):pt({resourceId:this.resourceId,featureId:this.item.id,connector:this.options.connector,geom:!0,fields:null,extensions:null}).then((e=>(this.item.geom=e.geom,Je(this.item))))}}function yt(e,t,r,n){return!!bt(e,t,r,vt,n)}function mt(e,t,r,n){return bt(e,t,r,_t,n)}function gt(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 bt(e,t=(e=>!!e),r="children",n,i){const o="function"==typeof t?t:e=>Re(e,t);return n(e,i?e=>o(i(e)):o,r)}function vt(e,t=(e=>!!e),r,n=[]){let i=[];if(Array.isArray(e))i=e;else{if(t(e))return e;const n=gt(e,r);n&&(i=n)}for(let o=0;o<i.length;o++)if(i[o]){const e=vt(i[o],t,r,n);if(e)return e}}function _t(e,t=(e=>!!e),r,n=[]){let i=[];if(Array.isArray(e))i=e;else{t(e)&&n.push(e);const o=gt(e,r);o&&(i=o)}for(let o=0;o<i.length;o++)i[o]&&_t(i[o],t,r,n);return n}function wt(e,t=(e=>!!e),r,n=[]){let i=[];if(Array.isArray(e))i=e;else{if(!t(e))return!1;const n=gt(e,r);n&&(i=n)}for(let o=0;o<i.length;o++)if(i[o]){if(!wt(i[o],t,r,n))return!1}return!0}var Ot=Object.defineProperty,Lt=(e,t,r)=>(((e,t,r)=>{t in e?Ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Pt{constructor(e){Lt(this,"item"),Lt(this,"_children",[]),Lt(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?mt(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 bt(this._children,e,(e=>e.tree.getChildren()),vt,t);var t}every(e){return!!bt(this._children,e,(e=>e.tree.getChildren()),wt,t);var t}some(e){return yt(this._children,e,(e=>e.tree.getChildren()))}all(e){return this.getDescendants(e)}getDescendants(e){return mt(this._children,e,(e=>e.tree.getChildren()))}getChildren(){return[...this._children]}}var It=Object.defineProperty,Et=(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),r);class jt{constructor(e,r,n){Et(this,"options"),Et(this,"emitter",new t),Et(this,"name"),Et(this,"item"),Et(this,"_blocked",!1),Et(this,"_container"),Et(this,"_value"),Et(this,"_removeEventsListener"),this.item=r,this.options=Object.assign({},n),this.name=e,this._value=this.getProperty()}getProperty(){return"function"==typeof this.options.getProperty?this.options.getProperty.call(this,this.item):this.options.value}getParents(){return this.item.tree.getParents()||[]}getParent(){return this.item.tree.getParent()}getChildren(){return this.item.tree.getChildren()}isGroup(){return this.item.tree.getDescendants().length}isBlocked(){if(void 0!==this._blocked)return this._blocked;const e=this.item.tree.getParents();return this._blocked=this._calculateBlockedStatus(e),this._blocked}set(e,t){this._value=this._prepareValue(e),this.update(this._value,t),this._fireChangeEvent(this._value,t)}get(){return this.getValue()}update(e,t){this._callOnSet(e,t)}getContainer(){return this._container}destroy(){if(this._container){const e=this._container.parentNode;e&&e.removeChild(this._container)}this._removeEventsListener&&this._removeEventsListener()}getValue(){return void 0!==this._value?this._value:this.getProperty()}_prepareValue(e){return e}_callOnSet(e,t){this.options.onSet&&this.options.onSet.call(this,e,t,this.item)}_fireChangeEvent(e,t){if(this.emitter){e=void 0!==e?e:this.getValue(),this.emitter.emit("change",{value:e,options:t});this.item.tree.getParents().forEach((r=>{const n=r.properties&&r.properties.property(this.name);n&&n.emitter.emit("change-tree",{value:e,options:t,item:this.item})}))}}_calculateBlockedStatus(e){const t=e.some((e=>{var t;const r=null==(t=e.properties)?void 0:t.property(this.name);return!!r&&!r.get()}));return t}}var xt=Object.defineProperty,At=Object.getOwnPropertySymbols,Ct=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,Mt=(e,t,r)=>t in e?xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,St=(e,t)=>{for(var r in t||(t={}))Ct.call(t,r)&&Mt(e,r,t[r]);if(At)for(var r of At(t))kt.call(t,r)&&Mt(e,r,t[r]);return e};const Nt=class e extends jt{constructor(t,r,n){super(t,r,St(St({},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 i=r[n],o=i.properties&&i.properties.property(this.name);o&&o.set(e,St(St({},t),{propagation:!0,bubble:!1}))}}}};var Ft;Mt(Nt,"symbol"!=typeof(Ft="options")?Ft+"":Ft,{hierarchy:!0,bubble:!1,propagation:!1,label:"Toggle"});let Tt=Nt;var Bt=Object.defineProperty,Rt=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable,qt=(e,t,r)=>t in e?Bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vt=(e,t,r)=>(qt(e,"symbol"!=typeof t?t+"":t,r),r);const Ut=class e{constructor(e,t){this.item=e,Vt(this,"options",{}),Vt(this,"_properties",{}),Vt(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={}))$t.call(t,r)&&qt(e,r,t[r]);if(Rt)for(var r of Rt(t))Dt.call(t,r)&&qt(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}};Vt(Ut,"handlers",{CheckProperty:Tt});let Gt=Ut;var zt=Object.defineProperty,Zt=Object.getOwnPropertySymbols,Wt=Object.prototype.hasOwnProperty,Ht=Object.prototype.propertyIsEnumerable,Jt=(e,t,r)=>t in e?zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qt=(e,t,r)=>(Jt(e,"symbol"!=typeof t?t+"":t,r),r);let Kt=0;class Xt{constructor(e){Qt(this,"options",{}),Qt(this,"properties"),Qt(this,"tree"),Qt(this,"id",Kt),Kt+=1,this.options=((e,t)=>{for(var r in t||(t={}))Wt.call(t,r)&&Jt(e,r,t[r]);if(Zt)for(var r of Zt(t))Ht.call(t,r)&&Jt(e,r,t[r]);return e})({},e),this.tree=new Pt(this)}initProperties(){this.properties=new Gt(this,this.options.properties)}}var Yt=Object.defineProperty,er=Object.defineProperties,tr=Object.getOwnPropertyDescriptors,rr=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,ir=Object.prototype.propertyIsEnumerable,or=(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)&&or(e,r,t[r]);if(rr)for(var r of rr(t))ir.call(t,r)&&or(e,r,t[r]);return e},ar=(e,t)=>er(e,tr(t));function lr(e){const t=e.extent_bottom,r=e.extent_left,n=e.extent_top,i=e.extent_right;if(t&&r&&n&&i){const e=[r,t,i,n];return e[3]>82&&(e[3]=82),e[1]<-82&&(e[1]=-82),e}}function cr({resourceId:e,connector:t,cache:r=!0}){return t.get("layer.extent",{cache:r},{id:e}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:i}=e.extent;return[i,n,r,t]}}))}function ur(e){return e.connector.getResource(e.resourceId).then((t=>{if(t)return pr(t,e.connector,e)}))}function pr(e,t,r){if(e.webmap)return O.resolve(lr(e.webmap));{const n=e.resource;return n.cls&&-1!==n.cls.indexOf("style")?t.getResource(n.parent.id).then((e=>{if(e)return cr(ar(sr({},r),{resourceId:e.resource.id,connector:t}))})):cr(ar(sr({},r),{resourceId:n.id,connector:t}))}}var hr=Object.defineProperty,dr=(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),r),fr=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));class yr{constructor(){dr(this,"item"),dr(this,"connector"),dr(this,"_extent")}getExtent(){return fr(this,null,(function*(){return this.getBounds()}))}getBounds(e){return fr(this,null,(function*(){return this._extent?this._extent:this.item?(this._extent=yield pr(this.item,this.connector,e),this._extent):void 0}))}}var mr=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function gr(e,t){return mr(this,null,(function*(){const r=e.resource,n=r;let{keyname:i,resourceId:o}=e;if(r&&("string"==typeof r?i=r:o="number"==typeof r?r:n.resource&&void 0!==n.resource&&"resource"in n?r.resource.id:yield gr(r,t)),!o&&i){const e=yield t.getResource(i);e&&(o=e.resource.id)}return o}))}const br={tms:"TILE"};var vr=Object.defineProperty,_r=Object.getOwnPropertySymbols,wr=Object.prototype.hasOwnProperty,Or=Object.prototype.propertyIsEnumerable,Lr=(e,t,r)=>t in e?vr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Pr=(e,t)=>{for(var r in t||(t={}))wr.call(t,r)&&Lr(e,r,t[r]);if(_r)for(var r of _r(t))Or.call(t,r)&&Lr(e,r,t[r]);return e},Ir=(e,t,r)=>(Lr(e,"symbol"!=typeof t?t+"":t,r),r);const Er="https://qms.nextgis.com";function jr(e,t=Er,r={}){let n;if("webMap"in e){const i=e,{webMap:o,url:s}=i,a=((e,t)=>{var r={};for(var n in e)wr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&_r)for(var n of _r(e))t.indexOf(n)<0&&Or.call(e,n)&&(r[n]=e[n]);return r})(i,["webMap","url"]);n=o,s&&(t=s),a&&(r=a)}else n=e;t||(t=Er);class i{constructor(e,t){Ir(this,"qms"),Ir(this,"options"),Ir(this,"map"),this.map=e;const n=Pr(Pr({},r),t);this.options=n,this.options.baselayer=!0,n.qms&&(this.qms=n.qms)}addLayer(e){return r=this,o=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",D(e),!0),n.send()}))}(t+"/api/v1/geoservices/"+e.qmsId)}catch(a){console.error(a)}const r=this.qms;if(r){const t=br[r.type||"tms"],a=n.mapAdapter.layerAdapters[t];if(a&&(o=i,s=a,["showLayer","hideLayer"].forEach((e=>{const t=Object.getOwnPropertyDescriptor(s.prototype,e);t&&Object.defineProperty(o.prototype,e,t)})),"TILE"===t)){if(e=Pr(Pr({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 o,s},new Promise(((e,t)=>{var n=e=>{try{a(s.next(e))}catch(r){t(r)}},i=e=>{try{a(s.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,i);a((s=s.apply(r,o)).next())}));var r,o,s}}return i}var xr=Object.defineProperty,Ar=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,Mr=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Sr=(e,t)=>{for(var r in t||(t={}))Cr.call(t,r)&&Mr(e,r,t[r]);if(Ar)for(var r of Ar(t))kr.call(t,r)&&Mr(e,r,t[r]);return e},Nr=(e,t,r)=>(Mr(e,"symbol"!=typeof t?t+"":t,r),r);class Fr{constructor(e){Nr(this,"options",{url:"https://qms.nextgis.com"}),Nr(this,"url"),this.options=Sr(Sr({},this.options),e),this.url=this.options.url}getLayerAdapters(){return Promise.resolve([{name:"QMS",createAdapter:e=>Promise.resolve(this._createAdapter(e))}])}_createAdapter(e){return jr({webMap:e,url:this.url})}}Nr(Fr,"utils",{createQmsAdapter:jr});var Tr=Object.defineProperty,Br=Object.defineProperties,Rr=Object.getOwnPropertyDescriptors,$r=Object.getOwnPropertySymbols,Dr=Object.getPrototypeOf,qr=Object.prototype.hasOwnProperty,Vr=Object.prototype.propertyIsEnumerable,Ur=Reflect.get,Gr=(e,t,r)=>t in e?Tr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,zr=(e,t)=>{for(var r in t||(t={}))qr.call(t,r)&&Gr(e,r,t[r]);if($r)for(var r of $r(t))Vr.call(t,r)&&Gr(e,r,t[r]);return e},Zr=(e,t)=>Br(e,Rr(t)),Wr=(e,t,r)=>Ur(Dr(e),r,t),Hr=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function Jr(e){let t;for(t in e){const r=e[t];if($(r)){const n=r;if(E(n.year)&&E(n.month)&&E(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 Qr=Object.defineProperty,Kr=Object.defineProperties,Xr=Object.getOwnPropertyDescriptors,Yr=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,rn=(e,t,r)=>t in e?Qr(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},on=(e,t)=>Kr(e,Xr(t));function sn(e){const t=e.filters;return t?Ke(on(nn({},e),{filters:t})).then((r=>{var n;return(null!=(n=e.clientFilterValidate)?n:an(t))&&(r=r.filter((e=>Re(Jr(on(nn({},e.fields),{id:e.id})),t)))),r})):tt(e)}function an(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(an(r))return!0}}return!1}function ln(e){return function(e){return sn(e).then((e=>{const t=[];return e.forEach((e=>{t.push(Je(e))})),t}))}(e).then((e=>({type:"FeatureCollection",features:e})))}const cn=["fields","intersects","limit","orderBy","strategy"];function un(e){const t={};return cn.forEach((r=>{const n=e[r];void 0!==n&&(t[r]=n)})),t}var pn=Object.defineProperty,hn=Object.defineProperties,dn=Object.getOwnPropertyDescriptors,fn=Object.getOwnPropertySymbols,yn=Object.getPrototypeOf,mn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,bn=Reflect.get,vn=(e,t,r)=>t in e?pn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_n=(e,t)=>{for(var r in t||(t={}))mn.call(t,r)&&vn(e,r,t[r]);if(fn)for(var r of fn(t))gn.call(t,r)&&vn(e,r,t[r]);return e},wn=(e,t)=>hn(e,dn(t)),On=(e,t,r)=>(vn(e,"symbol"!=typeof t?t+"":t,r),r),Ln=(e,t,r)=>bn(yn(e),r,t),Pn=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function In(e){return Pn(this,null,(function*(){var r,n;const{item:i,webMap:o,Adapter:s,connector:a,layerOptions:l,addLayerOptionsPriority:c}=e,u=null==c||c,p=l,h=s||o.mapAdapter.layerAdapters.GEOJSON,d=[];let f,y,m=!1;const g=yield gr(p,a);(null==(n=null==(r=p.adapterOptions)?void 0:r.popupOptions)?void 0:n.fromProperties)&&(p.adapterOptions.popupOptions.createPopupContent=({feature:e})=>e&&function(e,t){{const r=document.createElement("div");if(t&&t.feature_layer)t.feature_layer.fields.forEach((t=>{if(t.grid_visibility){const n=e.properties&&e.properties[t.keyname];if(n){const e=document.createElement("div");r.appendChild(e),e.innerHTML=`<span>${t.display_name}</span>: ${n}<span></span>`}}}));else if(e.properties)for(const t in e.properties){const n=document.createElement("div");r.appendChild(n),n.innerHTML=`<span>${t}</span>: ${e.properties[t]}<span></span>`}return r}}(e,i));const b=(e,t)=>Pn(this,null,(function*(){return _(),f={filters:e,options:t},y=ln(_n({resourceId:g,filters:e,connector:a,cache:!0},t)),yield y}));let v=!1;const _=()=>{y&&(y.cancel(),y=void 0)};class w extends h{constructor(){super(...arguments),On(this,"emitter",new t),On(this,"__onMapMove"),On(this,"__onMapMoveStart"),On(this,"__enableMapMoveListener"),On(this,"__disableMapMoveListener")}addLayer(e){return Pn(this,null,(function*(){let t=!e.data;const r=void 0===e.waitFullLoad||e.waitFullLoad;void 0!==p.id&&(e.id=p.id),i&&i.vector_layer&&(e.type=ai[i.vector_layer.geometry_type]),p.adapterOptions&&(e=u?_n(_n({},p.adapterOptions),e):_n(_n({},e),p.adapterOptions)),e.data&&0===Object.keys(e.data).length&&(e.data=void 0,t=!1);const n=e.strategy||void 0;this.options.strategy=n;const o=Ln(w.prototype,this,"addLayer").call(this,e);let s;return f={filters:e.propertiesFilter,options:un(e)},t&&(s=this.updateLayer()),r&&s&&(yield s),n&&n.startsWith("BBOX")&&!m&&this._addBboxEventListener(),o}))}getExtent(){return this.getBounds()}getBounds(){return Pn(this,null,(function*(){const e=this.getLayers&&this.getLayers().length,t=this.options.strategy;return(null==t?void 0:t.startsWith("BBOX"))||e?ur({connector:a,resourceId:i.resource.id}):Ln(w.prototype,this,"getBounds")?Ln(w.prototype,this,"getBounds").call(this):void 0}))}beforeRemove(){v=!0,this._removeMoveEventListener(),this._removeBboxEventListener(),this.__disableMapMoveListener=void 0,this.__enableMapMoveListener=void 0,this.__onMapMove=void 0,this.__onMapMoveStart=void 0,_()}getCount(){return function({connector:e,resourceId:t,cache:r=!0}){return e.get("feature_layer.feature.count",{cache:r},{id:t}).then((e=>e.total_count))}({connector:a,resourceId:g,cache:!0})}updateLayer(e){return Pn(this,null,(function*(){var t;if(e=e||f||{},null==(t=this.options.strategy)?void 0:t.startsWith("BBOX")){yield o.onLoad("create"),e.options=e.options||{},e.options.intersects=o.getBounds();const{minZoom:t,maxZoom:r}=this.options,n=o.getZoom();if(void 0!==n){if(void 0!==t&&n<t)return;if(void 0!==r&&n>r)return;if(m)return}}if(!v){try{this.emitter.emit("preupdate",e),o._emitLayerEvent("layer:preupdate",p.id||"",e);const t=yield b(e.filters,wn(_n({},e.options),{srs:this.options.srs}));let r=t;const n=yield this.getCount();if("BBOX+"===this.options.strategy){r={type:"FeatureCollection",features:[]};for(const e of t.features)-1===d.indexOf(String(e.id))&&(d.push(String(e.id)),r.features.push(e));m=void 0!==n&&d.length>=n,yield o.addLayerData(this,r)}else m=void 0!==n&&t.features.length>=n,yield o.setLayerData(this,t);this.emitter.emit("updated",t),o._emitLayerEvent("layer:updated",p.id||"",{data:t,newData:r,isFull:m})}catch(r){if(r instanceof Error&&"CancelError"!==r.name)throw r}Ln(w.prototype,this,"updateLayer")&&Ln(w.prototype,this,"updateLayer").call(this)}}))}propertiesFilter(e,t){return Pn(this,null,(function*(){if(_(),this.filter&&m)this.filter((t=>{const r=t.feature&&t.feature.properties&&Jr(_n({},t.feature.properties));return!r||Re(r,e)}));else if(this.setData){this.clearLayer&&this.clearLayer();const r=yield b(e,wn(_n({},t),{srs:this.options.srs}));this.setData(r)}}))}removeFilter(){f=void 0,this.propertiesFilter([]),this.filter&&this.filter((()=>!0))}_addBboxEventListener(){this.__enableMapMoveListener=e=>{e===this&&(this._removeMoveEventListener(),this.updateLayer(),this._addMoveEventListener())},this.__disableMapMoveListener=e=>{e===this&&this._removeMoveEventListener()},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(...i){n.clear(),r=setTimeout((()=>{r=null,e.apply(this,i)}),t)}return n.clear=function(){r&&(clearTimeout(r),r=null)},n}((()=>this.updateLayer())),this.__onMapMoveStart=_,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 En=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function jn({options:e,webMap:t,baseUrl:r}){var n;let i,o=e.adapter||"IMAGE";const s=t&&t.getLayerAdapters(),a=e.resource,l=e.tileNoData?e.tileNoData:200;if("number"==typeof a){if("IMAGE"===o){if(!s||s.IMAGE)return function({resourceId:e,baseUrl:t,nd:r,headers:n}){const i=t+"/api/component/render/image",o={resource:e};return r&&(o.nd=r),{url:i,resourceId:e,headers:n,params:o,updateWmsParams:t=>(r&&(t.nd=r),si(t,e))}}({resourceId:a,headers:e.headers,nd:l,baseUrl:r});o="TILE"}if("WMS"===o){i=`${r}/api/resource/${a}/wms`;const t=e.adapterOptions;return{url:i,format:"image/png",version:"1.1.1",layers:t&&t.layers,headers:e.headers}}if("MVT"===o)return i=r+"/api/component/feature_layer/mvt?x={x}&y={y}&z={z}&resource="+a+"&simplification="+(null!=(n=e.simplification)?n:6),{url:i,sourceLayer:"ngw:"+a,featureIdName:"$id"};if("TERRAIN"===o)return i=r+`/api/resource/${a}/terrain_provider`,{url:i,adapter:o};if("MODEL_3D"===o)return i=r+`/api/component/model_3d/${a}/data.glb`,{url:i};if("TILE"===o)return i=r+"/api/component/render/tile?z={z}&x={x}&y={y}&resource="+a+"&nd="+l,{url:i,adapter:o}}else{if(void 0!==a)throw new Error("Option `resource` must be number, not "+typeof a);console.log("Option `resource` not set")}}var xn=Object.defineProperty,An=Object.defineProperties,Cn=Object.getOwnPropertyDescriptors,kn=Object.getOwnPropertySymbols,Mn=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable,Nn=(e,t,r)=>t in e?xn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fn=(e,t)=>{for(var r in t||(t={}))Mn.call(t,r)&&Nn(e,r,t[r]);if(kn)for(var r of kn(t))Sn.call(t,r)&&Nn(e,r,t[r]);return e},Tn=(e,t)=>An(e,Cn(t)),Bn=(e,t,r)=>(Nn(e,"symbol"!=typeof t?t+"":t,r),r),Rn=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function $n(e){return Rn(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:n}){const i=n.resource.cls;let o=e.adapter||i&&{wmsserver_service:"WMS",tmsclient_layer:"IMAGE"}[i]||"IMAGE";if(void 0!==o&&(e.adapter=o),"IMAGE"===o){const e=t.getLayerAdapters();!e||e.IMAGE||(o="TILE")}const s=t.mapAdapter.layerAdapters[o];if(s){const i=yield gr(e,r);return class extends s{constructor(o,s){super(o,s),this.map=o,Bn(this,"item",n),Bn(this,"resourceId",i);const a=jn({options:e,webMap:t,baseUrl:r.options.baseUrl||""});if(a){const t=Tn(Fn(Fn({},a),e.adapterOptions),{params:{resource:i},layers:a.layers||String(i),resourceId:i});e.adapterOptions&&E(e.adapterOptions.setViewDelay)&&(t.setViewDelay=e.adapterOptions.setViewDelay),this.options=Fn(Fn({},this.options),t)}}addLayer(e){return super.addLayer(Fn(Fn({},this.options),e))}getLegend(e){return Rn(this,null,(function*(){const t=yield r.get("render.legend_symbols",Fn({params:{id:i},cache:!0},e)),n=this.options.id;if(void 0!==n){return[{layerId:n,legend:t.map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}return[]}))}getIdentificationIds(){return Rn(this,null,(function*(){if(this.item){if("MVT"===o)return[this.item.resource.id];const e=this.item.resource.parent.id;if(E(e))return[e]}return[]}))}}}throw new Error(o+" not supported yet. Only TILE")}))}var Dn=Object.defineProperty,qn=Object.defineProperties,Vn=Object.getOwnPropertyDescriptors,Un=Object.getOwnPropertySymbols,Gn=Object.prototype.hasOwnProperty,zn=Object.prototype.propertyIsEnumerable,Zn=(e,t,r)=>t in e?Dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wn=(e,t)=>{for(var r in t||(t={}))Gn.call(t,r)&&Zn(e,r,t[r]);if(Un)for(var r of Un(t))zn.call(t,r)&&Zn(e,r,t[r]);return e},Hn=(e,t)=>qn(e,Vn(t)),Jn=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));const Qn={},Kn=["mapserver_style","qgis_vector_style","qgis_raster_style","wmsserver_service","raster_style","basemap_layer","vector_layer","raster_layer","postgis_layer","webmap","tmsclient_layer"];function Xn(e){return Jn(this,arguments,(function*({layerOptions:e,webMap:t,connector:r,item:n}){const i=n.resource.id,o=yield r.getResourceChildren(i),s=o&&o[0];if(s)return Yn(Hn(Wn({},e),{resource:s.resource.id}),t,r)}))}function Yn(e,t,r){return Jn(this,null,(function*(){let n,i;const o=e.adapter,s=yield gr(e,r);if(s){const a=e.resource;if(i=a&&a.resource&&void 0!==a.resource.id?a:yield r.getResource(s),!i)throw"Resource item is not found";{const a=i.resource.cls,l={layerOptions:Hn(Wn({},e),{resource:s}),webMap:t,connector:r,item:i};if(-1!==Kn.indexOf(a))if("webmap"===a)n=function(e){return En(this,arguments,(function*({layerOptions:e,webMap:t,connector:r}){const n=yield gr(e,r);return class extends Bi{constructor(e){super(e,{url:"",webMap:t,resourceId:n,connector:r})}}}))}(l);else if("vector_layer"===a||"postgis_layer"===a){const t=l.layerOptions.adapterOptions||{};if(t.type=t.type||i.vector_layer&&ai[i.vector_layer.geometry_type],l.layerOptions.adapterOptions=t,e.adapterOptions=l,void 0!==o&&"GEOJSON"!==o){if("MVT"!==o)return Xn(l);n=$n(l)}else n=In(l)}else{if("raster_layer"===a)return Xn(l);if("basemap_layer"===a)n=function(e){return Hr(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(Fr.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 Hr(this,null,(function*(){return Wr(e.prototype,this,"addLayer").call(this,Zr(zr({},t),{url:n}))}))}}return e}}}}))}(l);else if("GEOJSON"===o){const t=yield r.getResource(i.resource.parent.id);if(t){const r=Hn(Wn({},e),{resource:i.resource.parent.id});n=In(Hn(Wn({},l),{item:t,layerOptions:r}))}}else n=$n(l)}else{if(!Qn[a])throw`Resource class '${a}' not yet supported.`;{const e=Qn[a];let t;t=o&&"function"!=typeof t?e[o]:e,t&&(n=t(l))}}}}if(n)return n.then((e=>{if(e){const t=e;return i&&(t.prototype.item=i,t.prototype.resourceId=i.resource.id,t.prototype.connector=r),I(t,[yr],{replace:!1}),t}}))}))}var ei=Object.defineProperty,ti=Object.getOwnPropertySymbols,ri=Object.prototype.hasOwnProperty,ni=Object.prototype.propertyIsEnumerable,ii=(e,t,r)=>t in e?ei(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oi=(e,t)=>{for(var r in t||(t={}))ri.call(t,r)&&ii(e,r,t[r]);if(ti)for(var r of ti(t))ni.call(t,r)&&ii(e,r,t[r]);return e};function si(e,t){const{bbox:r,width:n,height:i,nd:o}=e;return{resource:Array.isArray(t)?t.join(","):t,extent:r,size:n+","+i,timestamp:Date.now(),nd:null!=o?o:200}}const ai={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 li;function ci(e,t=0){const r=t,n=function(){if(void 0===li){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),li=t}return li}()*function(e){return 12756274*Math.PI*Math.cos(e*Math.PI/180)}(r)/e,i=function(e){return Math.log(e/256)/Math.LN2}(n);return i}var ui=Object.defineProperty,pi=Object.getOwnPropertySymbols,hi=Object.prototype.hasOwnProperty,di=Object.prototype.propertyIsEnumerable,fi=(e,t,r)=>t in e?ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,yi=(e,t)=>{for(var r in t||(t={}))hi.call(t,r)&&fi(e,r,t[r]);if(pi)for(var r of pi(t))di.call(t,r)&&fi(e,r,t[r]);return e},mi=(e,t,r)=>(fi(e,"symbol"!=typeof t?t+"":t,r),r),gi=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));const bi=class e extends Xt{constructor(r,n,i,o,s,a){if(super(yi(yi({},e.options),i)),this.webMap=r,mi(this,"item"),mi(this,"connector"),mi(this,"layer"),mi(this,"emitter",new t),mi(this,"_rootDescendantsCount",0),o&&(this.connector=o),s&&this.tree.setParent(s),this.item=n,"root"===this.item.item_type)this._rootDescendantsCount=this._sumUp(this.item.children);else{const e=this.tree.getRoot();e&&(this._rootDescendantsCount=e._rootDescendantsCount)}this.initProperties(),a||this._init(n)}static create(t,r,n,i,o){return gi(this,null,(function*(){const s=new e(t,r,n,i,o,!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 gi(this,null,(function*(){var t;const r=null==(t=this.layer)?void 0:t.id;if(void 0!==r){const t=this.connector;if(t){return[{layerId:r,legend:(yield t.get("render.legend_symbols",yi({params:{id:this.item.resourceId},cache:!0},e))).map((({display_name:e,icon:t})=>({name:e,symbol:t})))}]}}return[]}))}getItemOptions(e){const t="layer"===e.item_type&&e.layer_transparency,r="number"==typeof t?(100-t)/100:void 0,n={visibility:!1,name:e.display_name,headers:this.options.headers,crossOrigin:this.options.crossOrigin,setViewDelay:this.options.setViewDelay,params:{resource:this.item.resourceId,item:this.item}};if(this.options.order){const t=String(this.options.drawOrderEnabled&&"draw_order_position"in e?this._rootDescendantsCount-e.draw_order_position:this.id).padStart(4,"0");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,{updateWmsParams:e.updateWmsParams,url:e.url,headers:this.options.headers,ratio:this.options.ratio,maxZoom:t,minZoom:r,minScale:e.layer_min_scale_denom,maxScale:e.layer_max_scale_denom,interactive:e.layer_identifiable})}return void 0!==r&&(n.opacity=r),n}getChildren(e){return[...e.children].reverse()}_mapScaleToZoomLevel(e){return ci(e)}initGroupItem(e){if(e.children&&e.children.length){const t=this.getChildren(e);for(const e of t){const t=new this.constructor(this.webMap,e,this.options,this.connector,this);this.tree.addChild(t)}}return Promise.resolve()}initLayerItem(t){const r=this.getItemOptions(t),n=e=>{t._layer=e,this.layer=e;this.properties.get("visibility")&&this.properties.set("visibility",!0),void 0!==r.opacity&&this.webMap.setLayerOpacity(e,r.opacity)};let i;if("layer"===t.item_type)i=t.adapter||t.layer_adapter.toUpperCase();else if(e.GetAdapterFromLayerType[t.item_type]){i=(0,e.GetAdapterFromLayerType[t.item_type])(t,r,this.webMap,this.connector)}return i?this.webMap.addLayer(i,r).then((e=>{n(e)})):t._layer?Promise.resolve(n(t._layer)):Promise.reject("No layer added")}_getZoomRange(e){const t=this.options.minZoom,r=this.options.maxZoom,n=e.layer_min_scale_denom?this._mapScaleToZoomLevel(e.layer_min_scale_denom):void 0,i=e.layer_max_scale_denom?this._mapScaleToZoomLevel(e.layer_max_scale_denom):void 0,o=[t,n].filter(Boolean),s=[r,i].filter(Boolean);return{minZoom:o.length?Math.max(...o):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}};mi(bi,"GetAdapterFromLayerType",{}),mi(bi,"options",{properties:[{type:"boolean",name:"visibility",getProperty(e){if(e){if("group"===e.item.item_type||"root"===e.item.item_type)return yt(e.item,(e=>"layer_enabled"in e&&e.layer_enabled),(e=>e.children));if("layer"===e.item.item_type)return e.item.layer_enabled}return!1},onSet(e,t,r){r&&"layer"===r.item.item_type&&(r.layer&&(e?r.webMap.showLayer(r.layer):r.webMap.hideLayer(r.layer)),r.item.layer_enabled=e)}},{name:"opacity",handler:class extends jt{getProperty(){const e=this.item.layer;return e&&e&&e.options&&void 0!==e.options.opacity?e.options.opacity:1}update(e,t){if(t=t||{},this.isGroup()){this._value=this._prepareValue(e,t);const r=this.getChildren();for(const 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 vi=bi;var _i=Object.defineProperty,wi=Object.getOwnPropertySymbols,Oi=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable,Pi=(e,t,r)=>t in e?_i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ii=(e,t)=>{for(var r in t||(t={}))Oi.call(t,r)&&Pi(e,r,t[r]);if(wi)for(var r of wi(t))Li.call(t,r)&&Pi(e,r,t[r]);return e},Ei=(e,t,r)=>(Pi(e,"symbol"!=typeof t?t+"":t,r),r),ji=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));function xi(e){return t=this,r=arguments,n=function*({webMap:e,connector:t,item:r,adapterOptions:n={},idPrefix:i="first-show-adapter"}){const o=function(e){return ji(this,arguments,(function*({webMap:e,adapterOptions:t={},onLayerAdded:r,createAdapter:n}){return class{constructor(){Ei(this,"options",{}),Ei(this,"layer",[]),Ei(this,"_removed",!1),Ei(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 ji(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 ji(this,null,(function*(){if(this.options.visibility=!1,this.layer)for(const t of this.layer)yield e.hideLayer(t)}))}loadLayer(){return ji(this,null,(function*(){if(!this.layer.length&&!this._creatingInProgress){this._creatingInProgress=!0;const i=yield n(this);if(i){const n=new i(e.mapAdapter.map,Ii({},t)),o=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=o,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=i+"-"+r.resource_id},createAdapter:()=>Yn({resource:r.resource_id,adapterOptions:{name:r.display_name,opacity:r.opacity}},e,t)});return o},new Promise(((e,i)=>{var o=e=>{try{a(n.next(e))}catch(t){i(t)}},s=e=>{try{a(n.throw(e))}catch(t){i(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,s);a((n=n.apply(t,r)).next())}));var t,r,n}var Ai=Object.defineProperty,Ci=Object.getOwnPropertySymbols,ki=Object.prototype.hasOwnProperty,Mi=Object.prototype.propertyIsEnumerable,Si=(e,t,r)=>t in e?Ai(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ni=(e,t)=>{for(var r in t||(t={}))ki.call(t,r)&&Si(e,r,t[r]);if(Ci)for(var r of Ci(t))Mi.call(t,r)&&Si(e,r,t[r]);return e},Fi=(e,t,r)=>(Si(e,"symbol"!=typeof t?t+"":t,r),r),Ti=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));class Bi{constructor(e,r){this.map=e,this.options=r,Fi(this,"layer"),Fi(this,"NgwWebmapItem",vi),Fi(this,"pixelRadius",10),Fi(this,"resourceId"),Fi(this,"webmapClassName","webmap"),Fi(this,"emitter",new t),Fi(this,"_extent"),Fi(this,"response"),Fi(this,"_webmapLayersIds"),Fi(this,"_webmapBaselayersIds",[]),Fi(this,"_lastActiveBaselayer");const n=r.resourceId;if(Array.isArray(n)?(this.resourceId=n[0],this.options.id=n[1]):this.resourceId=n,!this.resourceId)throw new Error("NGW `resourceId` is not defined")}addLayer(e){return Ti(this,null,(function*(){var t,r;this.options=Ni(Ni({},this.options),e),this.layer=yield this._getWebMapLayerItem();const n=null==(r=null==(t=this.response)?void 0:t.webmap)?void 0:r.extent_constrained;return this.options.useExtentConstrained&&this._extent&&n&&this.options.webMap.setView({maxBounds:this._extent}),this.layer}))}removeLayer(){const e=this.options.webMap.mapAdapter;if(this.getDependLayers().forEach((t=>{"layer"in t&&e.removeLayer(t.layer.layer)})),this._webmapBaselayersIds.length){for(const e of this._webmapBaselayersIds)this.options.webMap.removeLayer(e);this._lastActiveBaselayer&&this.options.webMap.showLayer(this._lastActiveBaselayer)}this.options.useExtentConstrained&&this._extent&&this.options.webMap.setView({maxBounds:null}),delete this.layer,delete this.response,delete this._webmapLayersIds}showLayer(){return Ti(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!0)}))}hideLayer(){return Ti(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("visibility").set(!1)}))}setOpacity(e){return Ti(this,null,(function*(){if(this.layer&&this.layer.properties)return this.layer.properties.property("opacity").set(e)}))}getExtent(){return this.getBounds()}getBounds(){const e=this.response&&this.response.webmap;if(e)return lr(e)}getDependLayers(){return this.layer&&this.layer.tree.getDescendants()||[]}getBookmarksResourceId(){const e=this.response&&this.response.webmap;if(e)return e.bookmark_resource.id}fetchBookmarks(){const e=this.getBookmarksResourceId(),t=this.options.connector;if(e)return t.getResourceOrFail(e).then((r=>{var n;const i=null==(n=r.feature_layer)?void 0:n.fields.find((e=>e.label_field)),o=i&&i.keyname;return sn({connector:t,resourceId:e,geom:!1,fields:o?[o]:void 0}).then((r=>{const n=[];for(const i of r){const r=new ft({item:i,resourceId:e,labelField:o,connector:t});n.push(r)}return n}))}));throw new Error("Webmap was not loaded correctly, it is impossible to extract bookmarks")}getLegend(){return Ti(this,null,(function*(){const e=[];let t=this.getDependLayers();t=t.sort(((e,t)=>t.id-e.id));for(const r of t){const t=yield r.getLegend();e.push(...t)}return e}))}getIdentificationIds(){return Ti(this,null,(function*(){const e=[];let t=this._webmapLayersIds;if(t||(t=yield this._getWebMapIds(),this._webmapLayersIds=t),t&&t.length){let t=this.getDependLayers();t=t.sort(((e,t)=>t.id-e.id)),t.forEach((t=>{const r=t.item,n=r.parentId;if(void 0!==n&&"layer"===r.item_type&&r.layer_identifiable){const r=t.properties.property("visibility");r.get()&&!r.isBlocked()&&e.push(n)}}))}return e}))}_getWebMapLayerItem(){return Ti(this,null,(function*(){if(this.resourceId){const e=yield this.getWebMapConfig(this.resourceId);if(e&&e.root_item)return new Promise((t=>{const r={};if(this.options.connector&&this.options.connector.options.auth){const e=this.options.connector.getAuthorizationHeaders();e&&(r.headers=e)}r.setViewDelay=this.options.setViewDelay,r.order=this.options.order,r.ratio=this.options.ratio,r.crossOrigin=this.options.crossOrigin,r.minZoom=this.options.minZoom,r.maxZoom=this.options.maxZoom,r.drawOrderEnabled=e.draw_order_enabled,r.popupOptions=this.options.popupOptions;const n=new this.NgwWebmapItem(this.options.webMap,e.root_item,r,this.options.connector);n.emitter.on("init",(()=>t(n)))}))}}))}getWebMapConfig(e){return Ti(this,null,(function*(){const t=yield this.options.connector.getResource(e);if(t){this.response=t;const e=t[this.webmapClassName];if(this._setupBaselayers(t),e)return this._extent=[e.extent_left,e.extent_bottom,e.extent_right,e.extent_top],this._updateItemsParams(e.root_item,this.options.webMap,t),e}}))}_setupBaselayers(e){var t;const r=this.options.webMap;if(null==(t=this.options.useBasemap)||t)if(e.basemap_webmap&&e.basemap_webmap.basemaps.length){const t=r.getActiveBaseLayer();this._lastActiveBaselayer=t?t.id:void 0,this._setBasemaps(e.basemap_webmap)}else this.options.defaultBasemap&&r.addBaseLayer("OSM",{id:"webmap-default-baselayer",name:"OpenStreetMap"})}_setBasemaps(e){const t=this.options.webMap;let r=!1;for(const n of e.basemaps)xi({webMap:t,connector:this.options.connector,item:n,adapterOptions:{crossOrigin:this.options.crossOrigin}}).then((e=>{const i=!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:i}).then((e=>{e.id&&this._webmapBaselayersIds.push(e.id)}))}))}_updateItemsParams(e,t,r){if(e)if("group"===e.item_type||"root"===e.item_type)e.children&&(e.children=e.children.map((e=>this._updateItemsParams(e,t,r)))),"root"===e.item_type&&(e.display_name=r.resource.display_name);else if("layer"===e.item_type){const r=D(this.options.connector.options.baseUrl+"/api/component/render/image"),n=e.layer_style_id;e.url=r,e.resourceId=n,e.updateWmsParams=e=>si(e,n);const i=jn({options:{adapter:e.layer_adapter.toUpperCase(),resource:n},webMap:t,baseUrl:this.options.connector.options.baseUrl||""});e=Ni(Ni({},e),i)}return e}_getWebMapIds(){return Ti(this,null,(function*(){const e=this.layer;if(e&&"root"===e.item.item_type){const t=e.tree.getDescendants(),r=[];for(const e of t){const t=e.item;if("layer"===t.item_type){const e=this.options.connector.getResource(t.layer_style_id).then((e=>{if(e){const r=Number(e.resource.parent.id);return t.parentId=r,r}}));r.push(e)}}return(yield Promise.all(r)).filter((e=>void 0!==e))}}))}}var Ri=Object.defineProperty,$i=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,qi=Object.prototype.propertyIsEnumerable,Vi=(e,t,r)=>t in e?Ri(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ui=(e,t)=>{for(var r in t||(t={}))Di.call(t,r)&&Vi(e,r,t[r]);if($i)for(var r of $i(t))qi.call(t,r)&&Vi(e,r,t[r]);return e},Gi=(e,t,r)=>(Vi(e,"symbol"!=typeof t?t+"":t,r),r);class zi{constructor(e){if(this.options=e,Gi(this,"url"),Gi(this,"connector"),Gi(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 xe({baseUrl:this.url,auth:this.options.auth})}}static addClassAdapters(e,t){Qn[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(Bi,Ui({visibility:!0,fit:!0,pixelRadius:this.options.pixelRadius},t))}}},new Promise(((e,i)=>{var o=e=>{try{a(n.next(e))}catch(t){i(t)}},s=e=>{try{a(n.throw(e))}catch(t){i(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,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 Bi{constructor(e,r){super(e,r=oi(oi({},t),r))}};var t}}var Zi=Object.defineProperty,Wi=Object.getOwnPropertySymbols,Hi=Object.prototype.hasOwnProperty,Ji=Object.prototype.propertyIsEnumerable,Qi=(e,t,r)=>t in e?Zi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ki=(e,t,r)=>(Qi(e,"symbol"!=typeof t?t+"":t,r),r);class Xi{constructor(e){Ki(this,"id"),Ki(this,"label"),Ki(this,"layerId"),Ki(this,"parent"),Ki(this,"fields"),Ki(this,"geom"),Ki(this,"extensions"),Ki(this,"connector"),Ki(this,"_item"),Ki(this,"_geojson"),Ki(this,"_resource"),Ki(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?O.resolve(this._item):pt(((e,t)=>{for(var r in t||(t={}))Hi.call(t,r)&&Qi(e,r,t[r]);if(Wi)for(var r of Wi(t))Ji.call(t,r)&&Qi(e,r,t[r]);return e})({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(){return this._resource?O.resolve(this._resource.feature_layer):this.connector.getResource(this.layerId).then((e=>(this._resource=e,this._resource.feature_layer)))}getBounds(){return this._extent?O.resolve(this._extent):function({resourceId:e,featureId:t,connector:r,cache:n=!0}){return r.get("feature_layer.feature.item_extent",{cache:n},{id:e,fid:t}).then((e=>{if(e){const{maxLat:t,maxLon:r,minLat:n,minLon:i}=e.extent;return[i,n,r,t]}}))}({connector:this.connector,featureId:this.id,resourceId:this.layerId})}geojson(){return this._geojson?O.resolve(this._geojson):this.identify().then((e=>e.toGeojson().then((e=>(this._geojson=e,e)))))}}function Yi(e){return pt(e).then((e=>Je(e)))}var eo=Object.defineProperty,to=Object.defineProperties,ro=Object.getOwnPropertyDescriptors,no=Object.getOwnPropertySymbols,io=Object.prototype.hasOwnProperty,oo=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={}))io.call(t,r)&&so(e,r,t[r]);if(no)for(var r of no(t))oo.call(t,r)&&so(e,r,t[r]);return e},lo=(e,t)=>to(e,ro(t));function co(e,t=!1){const r=[],n=[];for(const o in e){const e=Number(o);isNaN(e)||r.push(e)}const i=e.resources;i&&r.sort(((e,t)=>i.indexOf(e)-i.indexOf(t)));for(let o=0;o<r.length;o++){const i=r[o],s=e[i];if("features"in s){const e=uo(s.features,Number(i),t);if(e.length&&(n.push(...e),!t))break}}return n}function uo(e,t,r){const n=[];for(const i of e){if(n.push({featureId:i.id,resourceId:t,feature:i}),!r)break}return n}function po(e){const{geom:t,signal:r,cache:n,layers:i}=e,o="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]=F(e,t);return`${r} ${n}`})).join(",")}))`}(t);if(!o)throw new Error("Not valid geometry format to make intersection");return e.connector.post("feature_layer.identify",{data:{geom:o,srs:3857,layers:i},signal:r,cache:n})}function ho(e,t){A(e);const[r,n]=e.lngLat,{geom:i,radius:o,signal:s,cache:a}=t,l=null!=i?i:function(e,t,r=10,n=6){const i=r/C*N,o=i/Math.cos(t*S),s=[];for(let a=0;a<n+1;a++){const r=Math.PI*(a/(n/2)),l=e+o*Math.cos(r),c=t+i*Math.sin(r);s.push([l,c])}return s}(r,n,o);return po(lo(ao({},t),{geom:l,signal:s,cache:a}))}function fo(e,t){return r=this,n=null,i=function*(){var r;const n=yield e.get("pyramid.settings",null,{component:"pyramid"});if(n&&n.company_logo&&n.company_logo.enabled){const o=document.createElement("a");o.style.position="absolute",o.style.bottom="0",o.style.right="0",o.style.padding=null!=(r=null==t?void 0:t.padding)?r:"10px",o.className="ngw-map-logo",t&&t.cssClass&&(o.className+=" "+t.cssClass);const s=new Image;s.style.maxHeight="100px",s.style.maxWidth="100px",s.src="";try{const t=yield e.get("pyramid.company_logo",{responseType:"blob"}),r=(window.URL||window.webkitURL).createObjectURL(t);s.src=r}catch(i){console.warn(i)}return null!==n.company_logo.link&&""!==n.company_logo.link.trim()&&(o.href=n.company_logo.link,o.target="_blank",-1!==n.company_logo.link.search(/:\/\/nextgis/)&&(s.alt="Get your own Web GIS at nextgis.com")),o.appendChild(s),o}},new Promise(((e,t)=>{var o=e=>{try{a(i.next(e))}catch(r){t(r)}},s=e=>{try{a(i.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,s);a((i=i.apply(r,n)).next())}));var r,n,i}function yo(e){return"function"==typeof e}function mo(e){return(t,r)=>{const n=t.map((e=>e()));return e(n,r)}}const go={"!":mo((function([e]){return!e})),"!=":mo((function([e,t]){return e!==t})),"<":mo((function([e,t]){return e<t})),"<=":mo((function([e,t]){return e<=t})),"==":mo((function([e,t]){return e===t})),">":mo((function([e,t]){return e>t})),">=":mo((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(),i=r.splice(-1,r.length%2)[0];for(let o=0;o<r.length-1;o+=2){if(r[o]()===n)return r[o+1]()}return i()}},bo={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 vo(e){if("string"==typeof(r=e)&&/^#([A-Fa-f0-9]{3}){1,2}$/.test(r))return _o(e);if("string"==typeof(t=e)&&t in bo)return function(e){return _o(bo[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 _o(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 wo(e,t,r,n,i){if("number"==typeof r&&"number"==typeof i)return r+(e-t)/(n-t)*(i-r);try{const o=vo(r),s=vo(i);return function(e){return`rgb(${e.join(",")})`}(o.map(((r,i)=>Math.ceil(wo(e,t,r,n,s[i])))))}catch(o){console.log(o)}throw new Error("Unsupported output type for linear interpolation.")}const Oo={step:e=>{const[t,r,...n]=e,i=t();if("number"!=typeof i)return r();for(let o=0;o<n.length-2;o+=2){const e=n[o](),t=n[o+1](),r=n[o+2]();if(i>=e&&i<r)return t}return i>=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 i=e();for(let o=0;o<r.length-2;o+=2){const e=r[o](),t=r[o+1](),s=r[o+2](),a=r[o+3]();if(n>=e&&n<=s&&"linear"===i[0])return wo(n,e,t,s,a)}throw new Error("Invalid interpolation type.")}};const Lo={get:mo((function([e,t],r){const n=t||r;return n&&"object"==typeof n&&e in n?n[e]:null})),length:mo((([e])=>{if("string"==typeof e||Array.isArray(e))return e.length})),at:mo((function([e,t]){return t[e]})),has:mo((function([e,t],r){const n=t||r;return!(!n||"object"!=typeof n||!(e in n))})),in:mo((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":mo((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:mo((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}.`)}))},Po={"+":mo((e=>e.reduce(((e,t)=>e+t),0))),"-":mo((e=>e.reduce(((e,t)=>e-t)))),"*":mo((e=>e.reduce(((e,t)=>e*t),1))),"/":mo((e=>e.reduce(((e,t)=>e/t)))),"%":mo((e=>e[0]%e[1])),"^":mo((e=>Math.pow(e[0],e[1]))),abs:mo((e=>Math.abs(e[0]))),acos:mo((e=>Math.acos(e[0]))),asin:mo((e=>Math.asin(e[0]))),atan:mo((e=>Math.atan(e[0]))),ceil:mo((e=>Math.ceil(e[0]))),cos:mo((e=>Math.cos(e[0]))),e:()=>Math.E,floor:mo((e=>Math.floor(e[0]))),ln:mo((e=>Math.log(e[0]))),ln2:()=>Math.LN2,log10:mo((e=>Math.log10(e[0]))),log2:mo((e=>Math.log2(e[0]))),max:mo((e=>Math.max(...e))),min:mo((e=>Math.min(...e))),pi:()=>Math.PI,round:mo((e=>Math.round(e[0]))),sin:mo((e=>Math.sin(e[0]))),sqrt:mo((e=>Math.sqrt(e[0]))),tan:mo((e=>Math.tan(e[0])))},Io={concat:mo((e=>e.reduce(((e,t)=>String(e)+String(t)),""))),downcase:mo((e=>String(e[0]).toLowerCase())),upcase:mo((e=>String(e[0]).toUpperCase()))},Eo=(e,t,r)=>{try{const n=e(t,r);if(void 0!==n)return n}catch(n){}};function jo(e){return(t,r)=>{for(const n of t){const t=Eo(e,n,r);if(void 0!==t)return t}throw new Error("Received a mismatched type")}}const xo={array:mo((e=>{const[t,r,n]=e;let i,o,s;if("string"==typeof t&&["string","number","boolean"].includes(t)?(i=t,"number"==typeof r?(o=r,s=n):s=r):Array.isArray(t)&&(s=t),!Array.isArray(s))throw new Error("Expected an array");if(i&&!s.every((e=>typeof e===i)))throw new Error(`Expected all items in array to be of type ${i}`);if(o&&s.length!==o)throw new Error(`Expected array of length ${o}`);return s})),boolean:mo(jo((e=>"boolean"==typeof e?e:void 0))),literal:mo((([e])=>e)),number:mo(jo((e=>"number"==typeof e?e:void 0))),object:mo(jo((e=>null===e||"object"!=typeof e||Array.isArray(e)?void 0:e))),string:mo(jo((e=>"string"==typeof e?e:void 0))),"to-boolean":mo(jo(Boolean)),"to-number":mo(jo(Number)),"to-string":mo(jo(String)),typeof:mo((([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 Ao=Object.defineProperty,Co=Object.getOwnPropertySymbols,ko=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable,So=(e,t,r)=>t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,No=(e,t)=>{for(var r in t||(t={}))ko.call(t,r)&&So(e,r,t[r]);if(Co)for(var r of Co(t))Mo.call(t,r)&&So(e,r,t[r]);return e};function Fo(e){if(Array.isArray(e)){const[t,...r]=e;return"string"==typeof t&&"literal"!==t&&t in To&&r.length>0}return!1}const To=No(No(No(No(No(No({},Po),xo),Io),Lo),go),Oo);function Bo(e,t={}){const[r,...n]=e,i=To[r];if(i)return i(n.map((e=>()=>Fo(e)?Bo(e,t):e)),t);throw new Error(`Expression "${r}" is not supported.`)}var Ro=Object.defineProperty,$o=Object.getOwnPropertySymbols,Do=Object.prototype.hasOwnProperty,qo=Object.prototype.propertyIsEnumerable,Vo=(e,t,r)=>t in e?Ro(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Uo=(e,t)=>{for(var r in t||(t={}))Do.call(t,r)&&Vo(e,r,t[r]);if($o)for(var r of $o(t))qo.call(t,r)&&Vo(e,r,t[r]);return e};function Go(e){return t=>{const r=t.properties;return!!r&&Bo(e,r)}}const zo=["iconSize","iconAnchor"];var Zo=Object.defineProperty,Wo=Object.getOwnPropertySymbols,Ho=Object.prototype.hasOwnProperty,Jo=Object.prototype.propertyIsEnumerable,Qo=(e,t,r)=>t in e?Zo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ko=(e,t)=>{for(var r in t||(t={}))Ho.call(t,r)&&Qo(e,r,t[r]);if(Wo)for(var r of Wo(t))Jo.call(t,r)&&Qo(e,r,t[r]);return e};function Xo(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=Ne({},e.properties);return!!r&&(r.$id=e.id,Re(r,t))}(e,t[0])));return n?Ko(Ko({},t),n[1]):t}}function Yo({paint:e,defaultPaint:t}){const r=function(e){let t=!1;const r={};for(const n in e)if(-1===zo.indexOf(n)){const i=n,o=e[i];Fo(o)&&(t=!0,r[i]=Go(o))}if(t)return t=>{const n={};for(const e in r)n[e]=r[e](t);return Uo(Uo({},e),n)}}(e);if(r){const n=e=>ts({paint:r(e),defaultPaint:t});return n.paint=es({paint:e,defaultPaint:t}),n}return es({paint:e,defaultPaint:t})}function es({paint:e,defaultPaint:t}){var r;let n=Ko({},t);return n=Ko(Ko({},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 ts({paint:e,defaultPaint:t,getPaintFunctions:r}){if(!e)throw new Error("paint is empty");let n=Ko({},t);if(yo(e)){const n=n=>{const i=ts({paint:e(n),defaultPaint:t,getPaintFunctions:r});return i.type=e.type,i};return n.type=e.type,n}if(function(e){return!!Array.isArray(e)}(e))return n=>ts({paint:Xo(e)(n),defaultPaint:t,getPaintFunctions:r});if("get-paint"===e.type){const i=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);i&&(n=ts({paint:i,defaultPaint:t,getPaintFunctions:r}))}else{if("icon"===e.type)return e;n=Yo({paint:e,defaultPaint:t})}return yo(n)||("color"in n&&(n.strokeColor||(n.strokeColor=n.color),n.fillColor||(n.fillColor=n.color)),"opacity"in n&&(void 0===n.strokeOpacity&&(n.strokeOpacity=n.opacity),void 0===n.fillOpacity&&(n.fillOpacity=n.opacity))),n}var rs=Object.defineProperty,ns=(e,t,r)=>(((e,t,r)=>{t in e?rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class is{constructor(){ns(this,"backspace",8),ns(this,"tab",9),ns(this,"enter",13),ns(this,"shift",16),ns(this,"ctrl",17),ns(this,"alt",18),ns(this,"pause/break",19),ns(this,"caps_lock",20),ns(this,"escape",27),ns(this,"page_up",33),ns(this,"page_down",34),ns(this,"end",35),ns(this,"home",36),ns(this,"left_arrow",37),ns(this,"up_arrow",38),ns(this,"right_arrow",39),ns(this,"down_arrow",40),ns(this,"insert",45),ns(this,"delete",46),ns(this,"left_window_key",91),ns(this,"right_window_key",92),ns(this,"select_key",93),ns(this,"numpad_0",96),ns(this,"numpad_1",97),ns(this,"numpad_2",98),ns(this,"numpad_3",99),ns(this,"numpad_4",100),ns(this,"numpad_5",101),ns(this,"numpad_6",102),ns(this,"numpad_7",103),ns(this,"numpad_8",104),ns(this,"numpad_9",105),ns(this,"multiply",106),ns(this,"add",107),ns(this,"subtract",109),ns(this,"decimal_point",110),ns(this,"divide",111),ns(this,"f1",112),ns(this,"f2",113),ns(this,"f3",114),ns(this,"f4",115),ns(this,"f5",116),ns(this,"f6",117),ns(this,"f7",118),ns(this,"f8",119),ns(this,"f9",120),ns(this,"f10",121),ns(this,"f11",122),ns(this,"f12",123),ns(this,"num_lock",144),ns(this,"scroll_lock",145),ns(this,"semi-colon",186),ns(this,"equal_sign",187),ns(this,",",188),ns(this,"-",189),ns(this,".",190),ns(this,"/",191),ns(this,"`",192),ns(this,"[",219),ns(this,"\\",220),ns(this,"]",221),ns(this,"'",222)}}var os=Object.defineProperty,ss=(e,t,r)=>(((e,t,r)=>{t in e?os(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);var as=Object.defineProperty,ls=(e,t,r)=>(((e,t,r)=>{t in e?as(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class cs{constructor(e,t){this.webMap=e,ls(this,"name"),ls(this,"event"),ls(this,"value"),t&&(t.value&&this.setValue(t.value),t.name&&(this.name=t.name),t.event&&(this.event=t.event))}getValue(){return this.value}setValue(e){this.value=e}}var us=Object.defineProperty,ps=(e,t,r)=>(((e,t,r)=>{t in e?us(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class hs extends cs{constructor(){super(...arguments),ps(this,"name","center"),ps(this,"event","moveend")}getValue(){return this.webMap.getCenter()}setValue(e){this.webMap.setCenter(e)}toString(e){const t=e.map((e=>e.toFixed(5)));return t[0]+"_"+t[1]}parse(e){return e.split("_").map(Number)}}var ds=Object.defineProperty,fs=(e,t,r)=>(((e,t,r)=>{t in e?ds(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class ys extends cs{constructor(){super(...arguments),fs(this,"name","zoom"),fs(this,"event","zoomend")}getValue(){const e=this.webMap.getZoom();return void 0!==e?Math.round(e):void 0}setValue(e){this.webMap.setZoom(e)}toString(e){return String(e)}parse(e){return Number(e)}}var ms=Object.defineProperty,gs=(e,t,r)=>(((e,t,r)=>{t in e?ms(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),bs=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));let vs=0;const _s={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},ws=class e{constructor(r){gs(this,"options",_s),gs(this,"emitter",new t),gs(this,"keys",e.keys),gs(this,"mapAdapter"),gs(this,"runtimeParams",[]),gs(this,"getPaintFunctions",e.getPaintFunctions),gs(this,"mapState",[hs,ys]),gs(this,"id",vs++),gs(this,"_initMapState",{}),gs(this,"_starterKits"),gs(this,"_mapState",[]),gs(this,"_extent"),gs(this,"_eventsStatus",{}),gs(this,"_coordFromMapClickPromise"),gs(this,"_mapEvents",{}),this.mapAdapter=r.mapAdapter,this._starterKits=r.starterKits||[],r&&(this.options=x(_s||{},r)),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 bs(this,null,(function*(){return this.getEventStatus("create")||(yield this._setInitMapState(this.mapState),yield this._setupMap(),this._emitStatusEvent("create",this)),this}))}setRuntimeParams(e){this.runtimeParams.push(e)}destroy(){this._removeEventListeners(),function(e){for(const t in e)delete e[t]}(this._emitStatusEvent),this.mapAdapter.destroy&&this.mapAdapter.destroy()}getState(){const e={};return this._mapState.forEach((t=>{e[t.name]=t.getValue()})),e}getRuntimeParams(){const e={};return this._mapState.forEach((t=>{for(const r of this.runtimeParams){const n=r.get(t.name);if(void 0!==n){e[t.name]=t.parse(n);break}}})),e}getContainer(){if(this.mapAdapter.getContainer)return this.mapAdapter.getContainer();if(this.options.target){if(this.options.target instanceof HTMLElement)return this.options.target;if("string"==typeof this.options.target){const e=document.getElementById(this.options.target);if(e)return e}}}setCursor(e){this.mapAdapter.setCursor&&this.mapAdapter.setCursor(e)}getCursor(){if(this.mapAdapter.getCursor)return this.mapAdapter.getCursor();const e=this.getContainer();return e?e.style.cursor:void 0}setCenter(e){return this.mapAdapter.setCenter(e),this}getCenter(){return this.mapAdapter.getCenter()}getBounds(){if(this.mapAdapter.getBounds)return this.mapAdapter.getBounds()}getBoundsPolygon(){const e=this.getBounds();if(e){return{type:"Feature",properties:{},geometry:k(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&&E(t)?this.mapAdapter.setView(r,t):(r&&this.mapAdapter.setCenter(r),E(t)&&this.mapAdapter.setZoom(t))}else{this.mapAdapter.setView&&this.mapAdapter.setView(e)}}fitBounds(e,t){return e.every((e=>E(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)},i=null==(r=this.mapAdapter.isLoaded)||r;this.mapAdapter.map&&i?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._coordFromMapClickPromise&&this._coordFromMapClickPromise.cancel()}getCoordFromMapClick(){return this._coordFromMapClickPromise?this.getCoordFromMapClick():(this._coordFromMapClickPromise=new O(((e,t,r)=>{const n=this.getCursor()||"grab";this._removeEventListeners({include:["click"]}),this.setCursor("crosshair");const i=()=>{this.setCursor(n),this._addEventsListeners({include:["click"]}),this.mapAdapter.emitter.off("click",o),this._coordFromMapClickPromise=void 0},o=t=>{i(),A(t),e(t.lngLat)};this.mapAdapter.emitter.once("click",o),r(i)})),this._coordFromMapClickPromise)}_emitStatusEvent(e,t){const r=e;this._eventsStatus[r]=!0,this.emitter.emit(r,t)}_addLayerProviders(){return bs(this,null,(function*(){}))}_onLoadSync(){return bs(this,null,(function*(){}))}_setupMap(){return bs(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),E(e.maxzoom)&&(this.options.zoom=e.maxzoom),E(e.minzoom)&&(this.options.zoom=e.minzoom),E(e.maxzoom)&&E(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)}_setInitMapState(e){for(const t of e){const e=new t(this);this._mapState.push(e);for(const t of this.runtimeParams){const r=t.get(e.name);if(void 0!==r){const t=e.parse(r);this._initMapState[e.name]=t,Object.defineProperty(this.options,e.name,{value:t,configurable:!0,enumerable:!0});break}}}}_addEventsListeners(e){let t=["preclick","click","zoomstart","zoom","zoomend","movestart","move","moveend","mousemove","mouseout","mouseover"];e&&e.include&&(t=t.filter((t=>e.include.includes(t)))),t.forEach((e=>{this._mapEvents[e]=t=>{if(this.runtimeParams.length){const t=this._mapState.find((t=>t.event===e));if(t){const e=t.toString(t.getValue());this.runtimeParams.forEach((r=>{r.set(t.name,e)}))}}this._eventsStatus&&this.emitter.emit(e,t)};const t=this._mapEvents[e];t&&this.mapAdapter.emitter.on(e,t)}))}_removeEventListeners(e){let t=Object.entries(this._mapEvents);e&&e.include&&(t=t.filter((t=>e.include.includes(t[0])))),t.forEach((([e,t])=>{t&&this.mapAdapter.emitter.removeListener(e,t)}))}};gs(ws,"keys",new class{constructor(){ss(this,"keyCodeAlias",new is),ss(this,"keys",{}),ss(this,"_windowOnFocus"),ss(this,"_keysPressed"),ss(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={}}}),gs(ws,"getPaintFunctions");let Os=ws;function Ls(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 Ps(e){let t;if("FeatureCollection"===e.type){t=Ls(e.features.map((e=>e.geometry.type)))}else if("GeometryCollection"===e.type){t=Ls(e.geometries.map((e=>e.type)))}else t="Feature"===e.type?e.geometry.type:e.type;return t}const Is={polygon:"path",line:"path",point:"circle"},Es={Point:"point",LineString:"line",MultiPoint:"point",Polygon:"polygon",MultiLineString:"line",MultiPolygon:"polygon"};function js(e){if(e.data){const t=Es[Ps(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":Is[t]),e.type=e.type||t}return e}var xs=Object.defineProperty,As=Object.defineProperties,Cs=Object.getOwnPropertyDescriptors,ks=Object.getOwnPropertySymbols,Ms=Object.prototype.hasOwnProperty,Ss=Object.prototype.propertyIsEnumerable,Ns=(e,t,r)=>t in e?xs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fs=(e,t)=>{for(var r in t||(t={}))Ms.call(t,r)&&Ns(e,r,t[r]);if(ks)for(var r of ks(t))Ss.call(t,r)&&Ns(e,r,t[r]);return e},Ts=(e,t)=>As(e,Cs(t)),Bs=(e,t,r)=>(Ns(e,"symbol"!=typeof t?t+"":t,r),r),Rs=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));class $s extends Os{constructor(e){super(e),Bs(this,"_layersIdCounter",1),Bs(this,"_layersOrderCounter",1),Bs(this,"_baselayers",[]),Bs(this,"_layers",{}),Bs(this,"_selectedLayers",[]);const t=this.options.tileJson;t&&this.emitter.once("build-map",(()=>this.addTileJsonLayer(t)))}fitLayer(e,t){return Rs(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 Rs(this,null,(function*(){return yield this.addLayer(e,Ts(Fs({},t),{baselayer:!0}),void 0)}))}addLayer(e){return Rs(this,arguments,(function*(e,t={},r){var n,i;const o=this._layersIdCounter++,s=E(r)?r:void 0!==t.order?t.order:this.reserveOrder();let a;"string"==typeof e?a=this.getLayerAdapter(e):"function"==typeof e?a=e:"then"in e&&(a=yield e);const l=t;this._updateGeoJsonOptions(l);const c=null==(n=(t=Fs({id:String(o),order:s},t)).visibility)||n;if(t.visibility=!1,t.baselayer&&(t.order=0),this.options.onBeforeAddLayer){const e=this.options.onBeforeAddLayer({options:t,adapter:a});e&&(e.options&&(t=e.options),e.adapter&&(a=e.adapter))}if(void 0!==a){const e=new a(this.mapAdapter.map,t);let r;e.options=Fs(Fs({},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(o),e.options.id=e.id,t.baselayer&&(e.options.order=0),e.order=null!=(i=e.options.order)?i:s,r&&delete this._layers[r],r=String(e.id),this._layers[r])throw Error(`layer with id '${r}' already exist`);r&&(this._layers[r]=e,l.filter&&this.filterLayer(e,l.filter),t.baselayer&&this._baselayers.push(r),c&&(yield this.showLayer(r)));const u=t.opacity;void 0!==u&&u<=1&&this.setLayerOpacity(e,u);const p=n&&(e.getBounds||e.getExtent);if(t.fit&&p){const t=yield p.call(e);t&&(yield this.fitBounds(t))}return t.onAdded&&t.onAdded(e),this._emitLayerEvent("layer:add",r,e),e}return Promise.reject("No adapter")}))}addLayerFromAsyncAdapter(e,t,r){return Rs(this,null,(function*(){const n=r||void 0!==t.order?t.order:this.reserveOrder(),i=e(),o=yield i;return o?this.addLayer(o,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 Rs(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=js(e)),e.paint=e.paint||{},this.addLayer(t||"GEOJSON",e)}addFeatureLayer(e={}){return this.addGeoJsonLayer(e)}addTileLayer(e,t={}){return this.addLayer("TILE",Ts(Fs({},t),{url:e}))}addImageLayer(e,t){let r;return"string"==typeof e?r=e:(r=e.url,t=e),this.addLayer("IMAGE",Ts(Fs({},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),i=void 0!==t?t:!(n&&n.options.visibility),o=void 0!==r.silent&&r.silent,s=e=>Rs(this,null,(function*(){const t=String(e.id),r=i?"layer:show":"layer:hide";if(o||(this._emitLayerEvent(i?"layer:preshow":"layer:prehide",t,e),this._emitLayerEvent("layer:pretoggle",t,e)),i&&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=i,o||(this._emitLayerEvent(r,t,e),this._emitLayerEvent("layer:toggle",t,e))}));return n?this.onMapLoad().then((()=>s(n))):Promise.resolve()}updateLayer(e){const t=this.getLayer(e);if(t){if(t.updateLayer)return Promise.resolve(t.updateLayer());if(this.isLayerVisible(t))return this.hideLayer(t,{silent:!0}).then((()=>this.showLayer(t,{silent:!0})))}return Promise.resolve()}setLayerOpacity(e,t){const r=this.getLayer(e);r&&(r.setOpacity?r.setOpacity(t):this.mapAdapter.setLayerOpacity&&this.mapAdapter.setLayerOpacity(r.layer,t))}isLayerLabelVisible(e){var t;const r=this.getLayer(e);return r.isLabelVisible?r.isLabelVisible():null==(t=r.options.labelVisibility)||t}showLayerLabel(e){this.toggleLayerLabel(e,!0)}hideLayerLabel(e){this.toggleLayerLabel(e,!1)}toggleLayerLabel(e,t){const r=this.getLayer(e);return t=null!=t?t:!this.isLayerLabelVisible(e),r&&(t?r.showLabel&&(r.options.labelVisibility=!0,r.showLabel()):r.hideLabel&&(r.options.labelVisibility=!1,r.hideLabel()),r.id&&this._emitLayerEvent("layer:label:toggle",r.id,r)),t}selectLayer(e,t){const r=this.getLayer(e);if(r){r&&r.select&&r.select(t);const e=this.getLayerId(r);e&&this._selectedLayers.push(e)}}unSelectLayer(e,t){const r=this.getLayer(e);if(r){const e=r&&r;e.unselect&&e.unselect(t);const n=this.getLayerId(r);if(n){const e=this._selectedLayers.indexOf(n);-1!==e&&this._selectedLayers.splice(e,1)}}}unSelectLayers(){const e=Object.values(this.allLayers());let t;for(t of e)t.unselect&&t.unselect()}filterLayer(e,t){const r=this.getLayer(e);return r.filter?r.filter(t):[]}propertiesFilter(e,t,r){const n=this.getLayer(e);if(n){const e=n;if(e.propertiesFilter)return e.propertiesFilter(t,r);e.filter&&this.filterLayer(e,(e=>!e.feature||!e.feature.properties||Re(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 i=!(void 0===e.onlyVisible||e.onlyVisible)||n.options.visibility;if(i&&e.onlyBaselayer&&(i=this._baselayers.includes(r)),i){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(E(t)&&n.startsWith("layer:")){const e=n.replace("layer:","layer-"+t+":");this.emitter.emit(e,r)}this.emitter.emit(e,r)}_onLayerClick(e){return Rs(this,null,(function*(){return this._emitLayerEvent("layer:click",e.layer.id||"",e),Promise.resolve(e)}))}_onLayerSelect(e){return Rs(this,null,(function*(){return this._emitLayerEvent("layer:select",e.layer.id||"",e),Promise.resolve(e)}))}_updateGeoJsonOptions(e){const{onSelect:t,onLayerSelect:r,onClick:n,onLayerClick:i,onMouseOut:o,onMouseOver:s}=e,a=n||i;e.onClick=e=>(a&&a(e),this._onLayerClick(e)),e.onMouseOut=e=>{const t=e.layer.id;o&&o(e),E(t)&&this._emitLayerEvent("layer:mouseout",t,e)},e.onMouseOver=e=>{const t=e.layer.id;s&&s(e),E(t)&&this._emitLayerEvent("layer:mouseover",t,e)};const l=t||r;e.onSelect=e=>(l&&l(e),this._onLayerSelect(e)),e.nativePaint||(this.options.paint&&(e.paint=ts({paint:e.paint||{},defaultPaint:this.options.paint,getPaintFunctions:this.getPaintFunctions})),e.selectedPaint&&this.options.selectedPaint&&(e.selectedPaint=ts({paint:e.selectedPaint,defaultPaint:this.options.selectedPaint,getPaintFunctions:this.getPaintFunctions})))}}function Ds(e,t){const r=document.createElement("div");let n=!1;t.getStatus?n=t.getStatus():t.status&&(n=t.status);const i=t.title||"",o=t.html;function s(){i&&(r.title="string"==typeof i?i:n?i.on:i.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(){o&&("string"==typeof o||o instanceof HTMLElement?a(o):a(n?o.on:o.off),r.setAttribute("aria-label",r.title))}function c(e,t){e.split(" ").forEach((e=>{t?r.classList.add(e):r.classList.remove(e)}))}function u(){t.addClassOn&&c(t.addClassOn,n),t.addClassOff&&c(t.addClassOff,!n)}s(),l(),t.addClass&&c(t.addClass,!0),u();const p=e=>{void 0!==e&&(n=e),l(),s(),u()},h=e=>{if(n=void 0!==e?e:!n,t.onClick){const e=t.onClick(n);Promise.resolve(e).then((()=>p())).catch((()=>n=!n))}else p()},d=e({html:r,onClick:h});return d.onClick=h,d.changeStatus=p,d}var qs=Object.defineProperty,Vs=(e,t,r)=>(((e,t,r)=>{t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),Us=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));const Gs=class e extends $s{constructor(){super(...arguments),Vs(this,"_loadControlQueue",{"top-right":[],"bottom-right":[],"top-left":[],"bottom-left":[]}),Vs(this,"_isControlLoading",{"top-right":!1,"bottom-right":!1,"top-left":!1,"bottom-left":!1})}addControl(e,t,r){return Us(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,(()=>Us(this,null,(function*(){const r=yield n,i=this.mapAdapter.addControl(r,t);e(i)}))))}))}))}createControl(e,t){return Us(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createControl)return this.mapAdapter.createControl(e,t)}))}createButtonControl(e){return Us(this,null,(function*(){if(yield this.onLoad("build-map"),this.mapAdapter.createButtonControl)return this.mapAdapter.createButtonControl(e)}))}createToggleControl(e){return Us(this,null,(function*(){return yield this.onLoad("build-map"),this.mapAdapter.createToggleControl?this.mapAdapter.createToggleControl(e):this.mapAdapter.createButtonControl?Ds(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 Us(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}))}};Vs(Gs,"controls",{CONTROL:(e,t)=>e.createControl(t.control,t.options),BUTTON:(e,t)=>e.createButtonControl(t),TOGGLE:(e,t)=>e.createToggleControl(t)});let zs=Gs;const Zs={};function Ws(e){return Zs[e]}function Hs(e,t){Zs[e]=t}var Js=Object.getOwnPropertySymbols,Qs=Object.prototype.hasOwnProperty,Ks=Object.prototype.propertyIsEnumerable,Xs=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),Ys=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())})),ea=(e,t,r)=>(t=e[Xs("asyncIterator")])?t.call(e):(e=e[Xs("iterator")](),t={},r=(r,n)=>(n=e[r])&&(t[r]=t=>new Promise(((r,i,o)=>(t=n.call(e,t),o=t.done,Promise.resolve(t.value).then((e=>r({value:e,done:o})),i))))),r("next"),r("return"),t);class ta extends zs{constructor(e){super(e),this._addControls(),Hs(this.id,this)}static get(e){return Ws(e)}_addLayerProviders(){return Ys(this,null,(function*(){try{for(var e,t,r,n=ea(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 i,o,s,a=ea(t);i=!(o=yield a.next()).done;i=!1){const e=o.value,t=yield e.createAdapter(this);t&&(this.mapAdapter.layerAdapters[e.name]=t)}}catch(o){s=[o]}finally{try{i&&(o=a.return)&&(yield o.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 Ys(this,null,(function*(){try{for(var e,t,r,n=ea(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(i){console.error(i)}}}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:i}=n,o=((e,t)=>{var r={};for(var n in e)Qs.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Js)for(var n of Js(e))t.indexOf(n)<0&&Ks.call(e,n)&&(r[n]=e[n]);return r})(n,["position"]);this.addControl(t,i||"top-left",o)})),this._emitStatusEvent("controls:create")}}function ra(){return["ZOOM","ATTRIBUTION"]}function na(e){return t=this,r=null,n=function*(){return new ta(e).onLoad()},new Promise(((e,i)=>{var o=e=>{try{a(n.next(e))}catch(t){i(t)}},s=e=>{try{a(n.throw(e))}catch(t){i(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,s);a((n=n.apply(t,r)).next())}));var t,r,n}var ia=Object.defineProperty,oa=Object.defineProperties,sa=Object.getOwnPropertyDescriptors,aa=Object.getOwnPropertySymbols,la=Object.prototype.hasOwnProperty,ca=Object.prototype.propertyIsEnumerable,ua=(e,t,r)=>t in e?ia(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},ha=(e,t)=>oa(e,sa(t));function da(e,t,r,n){if("number"==typeof t||"string"==typeof t)t=Number(t),e.push(ha(pa({},r),{resource:t}));else if(Array.isArray(t)){const[i,o]=t;e.push(pa(ha(pa({},r),{resource:i,id:o}),n))}else"object"==typeof t&&e.push(pa(pa(pa({},r),t),n))}var fa=Object.defineProperty,ya=Object.defineProperties,ma=Object.getOwnPropertyDescriptors,ga=Object.getOwnPropertySymbols,ba=Object.prototype.hasOwnProperty,va=Object.prototype.propertyIsEnumerable,_a=(e,t,r)=>t in e?fa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const wa={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 Oa(e){const t=[new Fr];var r;return e.starterKits&&e.starterKits.forEach((e=>{t.push(e)})),e.connector?e.connector&&(e.baseUrl=e.connector.options.baseUrl):e.connector=new xe({baseUrl:e.baseUrl||"",auth:e.auth}),(e=x(wa,e)).center||e.bounds||(e.bounds=[-179,-90,180,90]),e.connector&&t.push(new zi({connector:e.connector,auth:e.auth})),r=((e,t)=>{for(var r in t||(t={}))ba.call(t,r)&&_a(e,r,t[r]);if(ga)for(var r of ga(t))va.call(t,r)&&_a(e,r,t[r]);return e})({},e),e=ya(r,ma({starterKits:t,create:!1}))}var La=Object.defineProperty,Pa=Object.defineProperties,Ia=Object.getOwnPropertyDescriptors,Ea=Object.getOwnPropertySymbols,ja=Object.getPrototypeOf,xa=Object.prototype.hasOwnProperty,Aa=Object.prototype.propertyIsEnumerable,Ca=Reflect.get,ka=(e,t,r)=>t in e?La(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ma=(e,t)=>{for(var r in t||(t={}))xa.call(t,r)&&ka(e,r,t[r]);if(Ea)for(var r of Ea(t))Aa.call(t,r)&&ka(e,r,t[r]);return e},Sa=(e,t)=>Pa(e,Ia(t)),Na=(e,t,r)=>(ka(e,"symbol"!=typeof t?t+"":t,r),r),Fa=(e,t,r)=>Ca(ja(e),r,t),Ta=(e,t,r)=>new Promise(((n,i)=>{var o=e=>{try{a(r.next(e))}catch(t){i(t)}},s=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(o,s);a((r=r.apply(e,t)).next())}));const Ba=class e extends ta{constructor(e){super(Oa(e)),Na(this,"emitter",new t),Na(this,"connector"),Na(this,"_ngwLayers",{}),Na(this,"$$selectFromNgwRaster"),Na(this,"$$selectFromNgwVector"),Na(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 Ta(this,null,(function*(){return yield this.onLoad("controls:create"),Fa(e.prototype,this,"addControl").call(this,t,r,n)}))}addNgwLayer(e){return Ta(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(E(this.options.baseUrl))try{E(this.options.setViewDelay)&&(e.adapterOptions=e.adapterOptions||{},E(e.adapterOptions.setViewDelay)||(e.adapterOptions.setViewDelay=this.options.setViewDelay));const t=function(e,t,r){const n=r.getAuthorizationHeaders();return n&&(e.headers=n),Yn(e,t,r)}(e,this,this.connector),r=Ma(Ma({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=$(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 pt(Ma({connector:this.connector},e))}fetchNgwLayerItems(e){return sn(Ma({connector:this.connector},e))}fetchNgwLayerFeature(e){return Yi(Ma({connector:this.connector},e))}fetchNgwLayerFeatures(e){return ln(Ma({connector:this.connector},e))}fetchIdentifyItem(e,t){const r=function(e){const{connector:t,identify:r}=e,n=co(r);return n&&n.length?pt(ao(ao({connector:t},e.requestOptions),n[0])):O.resolve(void 0)}({identify:e,connector:this.connector,requestOptions:t});return this._addPromise("identify",r),r}fetchIdentifyGeoJson(e,t=!1){const r=function(e){const{connector:t,identify:r,requestOptions:n}=e;for(const o in r){const e=Number(o);if(!isNaN(e)){const e=r[o];if("features"in e){const t=e.features.find((e=>e.geom));if(t&&t.geom){const e=t.geom;return O.resolve(Je(lo(ao({},t),{geom:e})))}}}}const i=co(r);return i&&i.length?Yi(ao(lo(ao({},n),{connector:t}),i[0])):O.resolve(void 0)}({identify:e,connector:this.connector,multiple:t});return r&&"then"in r?(this._addPromise("identify",r),r):O.resolve(r)}getIdentifyGeoJson(e,t=!1){return this.fetchIdentifyGeoJson(e,t)}getNgwLayers(){return Ta(this,null,(function*(){return yield this.onLoad(),this._ngwLayers}))}getNgwLayerByResourceId(e){return Ta(this,null,(function*(){for(const t in this._ngwLayers){const r=this._ngwLayers[t];if(r.resourceId===e)return r&&r.layer;if(r.layer.getIdentificationIds){const t=yield r.layer.getIdentificationIds();if(t&&t.some((t=>t===e)))return r.layer}if(r.layer.getDependLayers){const t=r.layer.getDependLayers().find((t=>t.item&&t.item.parentId===e));if(t)return t.layer}}}))}fitLayer(t,r){return Ta(this,null,(function*(){let n;n="string"==typeof t||"number"==typeof t?String(n):t.id;const i=n&&this._ngwLayers[n];if(i)if(i.layer.getBounds){const e=yield i.layer.getBounds();e&&this.fitBounds(e,r)}else{let e;if(i.layer.item)e=i.layer.item;else{const t=i.resourceId;e=yield this.connector.getResource(t)}e&&ur({resourceId:e.resource.id,connector:this.connector}).then((e=>{e&&this.fitBounds(e,r)}))}else Fa(e.prototype,this,"fitLayer").call(this,"number"==typeof t?String(t):t,r)}))}zoomToLayer(e){return Ta(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.cancel())),this._promises[e]=[])}))}selectFromNgwRaster(e){return Ta(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,i="function"==typeof n.getIdentificationIds&&n.getIdentificationIds,o=null==(t=n.options.interactive)||t;i&&n.options.selectable&&o&&this.isLayerVisible(n)&&r.push(i.call(n))}const i=Promise.all(r),o=yield i,s=[];for(const e of o)e&&s.push(...e);if(!s.length)return void this._emitStatusEvent("ngw:select",null);const a=this.options.pixelRadius||10,l=this.getCenter();let c=this.getZoom();if(c=void 0!==c?c:20,!l||!c)return void this._emitStatusEvent("ngw:select",null);const u=function(e,t,r){return(r=null!=r?r:10)*(40075016.686*Math.abs(Math.cos(180*e[1]/Math.PI))/Math.pow(2,t+8))*5e-4}(l,c,a),p=ho(e,{layers:s,connector:this.connector,radius:u}).then((t=>{const r=Sa(Ma({},t),{resources:s,sourceType:"raster",event:e}),n=this._prepareToIdentify(r);return this._emitStatusEvent("ngw:select",n),n}));return this._addPromise("select",p),p}))}_addPromise(e,t){const r=this._promises[e];if(r&&-1===r.indexOf(t)){const e=()=>{const e=r.indexOf(t);-1!==e&&r.splice(e,1)};t.then(e),t.catch(e),r.push(t)}}_isFitFromResource(){const e=this._initMapState;return!e.zoom||!e.center}_createWebMap(){return Ta(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&&da(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),da(e,n,{},r)}for(const n of e)try{yield this.addNgwLayer(n)}catch(r){console.warn(r)}this._emitStatusEvent("ngw-map:create",this),this.enableSelection()}))}_addOsmBaseLayer(){this.addBaseLayer("OSM")}_addQmsBaseLayer(){let e,t;Array.isArray(this.options.qmsId)?(e=this.options.qmsId[0],t=this.options.qmsId[1]):e=Number(this.options.qmsId);const r={qmsId:e};t&&(r.id=t),this.addBaseLayer("QMS",r)}_selectFromNgwVector(e){const t=e.layer;if(!(t.options.selectable&&this.isLayerVisible(t)))return;const r=t.item&&t.item.resource.id,n=e.feature;if(void 0!==r&&n){const e=n.id;if(e){const t={featureCount:1,[r]:{featureCount:1,features:[{id:Number(e),fields:n.properties||{},label:`#${r}`,layerId:Number(r),parent:"",geom:n.geometry}]}};return this._emitStatusEvent("ngw:select",this._prepareToIdentify(Sa(Ma({},t),{resources:[r],sourceType:"vector"}))),t}}}_prepareToIdentify(e){return Sa(Ma({},e),{getIdentifyItems:()=>co(e,!0).map((e=>new Xi({feature:e.feature,connector:this.connector})))})}_getSelectListenersCount(){return this.emitter.listenerCount("ngw:select")}_whiteLabel(){return Ta(this,null,(function*(){const e=this.getContainer();if(e){const t=yield fo(this.connector,this.options.companyLogoOptions);t&&e.appendChild(t)}}))}};Na(Ba,"getIcon",(function(e={}){var t,r,n,i,o,s;const a=null!=(t=e.shape)?t:"circle",l=null!=(r=e.color)?r:"blue",c=null!=(n=e.strokeColor)?n:"white",u=null!=(i=e.size)?i:P,p=null!=(o=e.rotate)?o:0,h=null!=(s=e.anchor)?s:[u/2,u/2],d=void 0!==e.stroke?Number(e.stroke):.8,f=e.p||L[a]||"circle",y="string"==typeof f?f:f(e),m=function(e){return(new DOMParser).parseFromString(e,"image/svg+xml").documentElement}(e.svg||function({width:e,height:t,stroke:r=0,content:n}){const i=r/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} ${P+r} ${P+r}"\n >${n}</svg>`}({width:u,height:u,stroke:d,content:y}));return m.setAttribute("width",String(u)),m.setAttribute("height",String(u)),m.setAttribute("fill",l),d&&(m.setAttribute("stroke",c),m.setAttribute("stroke-width",String(d))),{type:"icon",iconSize:[u,u],iconAnchor:h,html:(new XMLSerializer).serializeToString(m),rotate:p,svg:m}}));let Ra=Ba;function $a(e){return t=this,r=null,n=function*(){return new Ra(e).onLoad()},new Promise(((e,i)=>{var o=e=>{try{a(n.next(e))}catch(t){i(t)}},s=e=>{try{a(n.throw(e))}catch(t){i(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,s);a((n=n.apply(t,r)).next())}));var t,r,n}export{Ra as NgwMap,ta as WebMap,zs as WebMapControls,$s as WebMapLayers,Os as WebMapMain,$a as createNgwMap,Ds as createToggleControl,na as createWebMap,Ps as detectGeometryType,Ls as findMostFrequentGeomType,ra as getDefaultControls,Ws as getWebMap,Is as paintTypeAlias,Hs as setWebMap,Es as typeAlias,js as updateGeoJsonAdapterOptions};
2
2
  //# sourceMappingURL=ngw-map.esm-browser.prod.js.map