@versatiles/map-editor 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,28 @@
1
+ import{t as e}from"../chunks/CRzLMJPS.js";import{$ as t,A as n,B as r,C as i,D as a,E as o,F as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,N as h,P as g,Q as _,R as v,S as y,T as b,V as x,W as S,X as C,Y as w,Z as T,_ as E,_t as D,at as O,d as k,et as A,g as j,gt as M,h as N,ht as ee,i as P,it as te,lt as F,mt as I,nt as L,ot as R,p as ne,pt as z,q as B,rt as V,t as H,tt as re,ut as U,v as W,w as G,x as K,y as q,z as J}from"../chunks/C1qWpZZK.js";import{$ as ie,A as ae,B as oe,C as se,D as Y,E as ce,F as le,H as ue,I as de,J as fe,K as pe,L as me,M as he,N as ge,O as _e,Q as ve,S as ye,T as be,U as xe,V as Se,W as Ce,X as we,Y as Te,a as Ee,at as De,b as Oe,c as ke,d as Ae,et as je,f as Me,i as Ne,it as Pe,k as Fe,l as Ie,m as Le,n as Re,nt as ze,o as Be,p as Ve,q as He,r as Ue,rt as We,s as Ge,t as Ke,tt as qe,v as Je,x as Ye,y as Xe,z as Ze}from"../chunks/R7VNWRco.js";import{$ as Qe,A as $e,B as et,C as tt,D as X,E as nt,F as rt,G as it,H as at,I as ot,J as st,K as ct,L as lt,M as ut,N as dt,O as ft,P as pt,Q as mt,R as ht,S as gt,T as Z,U as _t,V as vt,W as yt,X as bt,Y as xt,Z as St,_ as Ct,_t as wt,a as Tt,at as Et,b as Dt,bt as Ot,c as kt,ct as At,d as jt,dt as Mt,et as Nt,f as Pt,ft as Ft,g as It,gt as Lt,h as Rt,ht as zt,i as Bt,it as Vt,j as Ht,k as Ut,l as Wt,lt as Gt,m as Kt,mt as qt,n as Jt,nt as Yt,o as Xt,ot as Zt,p as Qt,pt as $t,q as en,r as tn,rt as nn,s as rn,st as an,t as on,tt as sn,u as cn,ut as ln,v as Q,vt as un,w as dn,x as fn,xt as pn,y as mn,yt as hn,z as gn}from"../chunks/D4hdjuw5.js";import{t as _n}from"../chunks/DW2jyAZk.js";function vn(e){return ge(e?.smooth)?{smooth:!0}:{}}function yn(e){let t={};for(let[n,r]of Object.entries(e??{}))r!==void 0&&(t[n]=r);return t}function bn(e){return{type:`Feature`,properties:yn({...He(e.style),"symbol-label":e.label,description:e.popup?.text}),geometry:{type:`Point`,coordinates:e.point}}}function xn(e){return{type:`Feature`,properties:yn({...ce(e.style),smooth:e.smooth||void 0,description:e.popup?.text}),geometry:{type:`LineString`,coordinates:e.points}}}function Sn(e){return{type:`Feature`,properties:yn({...ye(e.style),..._e(e.outlineStyle),smooth:e.smooth||void 0,description:e.popup?.text}),geometry:{type:`Polygon`,coordinates:[[...e.points,e.points[0]]]}}}function Cn(e){return{type:`Feature`,properties:yn({...ye(e.style),..._e(e.outlineStyle),subType:`Circle`,radius:e.radius,description:e.popup?.text}),geometry:{type:`Point`,coordinates:e.point}}}function wn(e){let t={type:`FeatureCollection`,features:e.elements.map(e=>{switch(e.type){case`marker`:return bn(e);case`line`:return xn(e);case`polygon`:return Sn(e);case`circle`:return Cn(e)}})},n=de(e.frame);n&&(t.frame=n);let r={},i=he(e.meta?.background);i&&(r.background=i),e.meta?.legend&&(r.legend=e.meta.legend),e.meta?.colorScheme&&(r.colorScheme=e.meta.colorScheme);let a=pe(e.meta?.viewer);a&&(r.viewer=a);let o=me(e.meta?.labels);return o&&(r.labels=o),e.meta?.title&&(r.title=e.meta.title),Object.keys(r).length>0&&(t.meta=r),t}function*Tn(e){for(let t of e){let e=t?.geometry;if(e!=null)switch(e.type){case`MultiPoint`:for(let n of e.coordinates)yield{...t,geometry:{type:`Point`,coordinates:n}};break;case`MultiLineString`:for(let n of e.coordinates)yield{...t,geometry:{type:`LineString`,coordinates:n}};break;case`MultiPolygon`:for(let n of e.coordinates)yield{...t,geometry:{type:`Polygon`,coordinates:n}};break;case`GeometryCollection`:yield*Tn(e.geometries.map(e=>({...t,geometry:e})));break;default:yield t}}}function En(e){let t=Dn(e);if(!t)return;let n=ae(e.properties);n&&(t.popup=n);for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function Dn(e){let t=e.properties??{},n=e.geometry;switch(n.type){case`Point`:{let e=Se(n.coordinates);if(!e)return;if(t.subType===`Circle`){let n=oe(t.radius);return n===void 0||n<=0?void 0:{type:`circle`,point:e,radius:n,style:se(t),outlineStyle:Fe(t)}}return{type:`marker`,point:e,...be(Ce(t?.[`symbol-label`])),style:fe(t)}}case`LineString`:{let e=ue(n.coordinates);return!e||e.length<2?void 0:{type:`line`,points:e,style:Y(t),...vn(t)}}case`Polygon`:{let e=ue(n.coordinates?.[0]);if(!e)return;let r=e[0],i=e[e.length-1];return e.length>1&&r[0]===i[0]&&r[1]===i[1]&&e.pop(),e.length<3?void 0:{type:`polygon`,points:e,style:se(t),outlineStyle:Fe(t),...vn(t)}}default:return}}function On(e){switch(e?.type){case`FeatureCollection`:return Array.isArray(e.features)?e.features:[];case`Feature`:return[e];case`Point`:case`MultiPoint`:case`LineString`:case`MultiLineString`:case`Polygon`:case`MultiPolygon`:case`GeometryCollection`:return[{type:`Feature`,properties:{},geometry:e}];default:throw Error(`Not a GeoJSON object`)}}function kn(e){let t=[];for(let n of Tn(On(e))){let e=En(n);e&&t.push(e)}let n={elements:t};if(e.type===`FeatureCollection`&&`frame`in e){let t=de(e.frame);t&&(n.frame=t)}if(e.type===`FeatureCollection`&&`meta`in e){let t=Ze(e.meta);t&&(n.meta=t)}return n}var An=[`strings`,`stringRefs`,`coordinates`,`styles`,`colors`,`frame`,`background`,`structure`],jn={readStringTable:`strings`,readStringRef:`stringRefs`,readElementPoint:`coordinates`,readElementPoints:`coordinates`,readStyle:`styles`,readElementStyles:`styles`,readPalette:`colors`,readFrame:`frame`,readBackground:`background`},Mn=[`title`,`label`,`popup`,`legend`],Nn={readText:([e])=>e,readLegendEntry:()=>`legend`};function Pn(e){let t=Ne.fromBase64(e),n=t.bits.length,r=Object.fromEntries(An.map(e=>[e,0])),i=Object.fromEntries(Mn.map(e=>[e,0])),a=new Map,o=`structure`,s=0,c=()=>{r[o]+=t.offset-s,s=t.offset},l,u=t,d=(e,n)=>{let r=u[e].bind(t);u[e]=(...e)=>n(r,e)};for(let[e,t]of Object.entries(jn))d(e,(e,n)=>{c();let r=o;o=t;try{return e(...n)}finally{c(),o=r}});for(let[e,t]of Object.entries(Nn))d(e,(e,n)=>{let r=l;l=t(n);try{return e(...n)}finally{l=r}});d(`readStringRef`,(e,n)=>{let r=t.offset,o=e(...n);if(n[0]!==!0){if(!l)throw Error(`A text outside a group: ${o}`);i[l]+=t.offset-r;let e=a.get(o);e||a.set(o,e=new Set),e.add(l)}return o}),t.readRoot(),c(),r.structure+=n-t.offset;let[f,p]=t.strings,m=p.map(e=>a.get(e)??new Set);return{measure:{characters:e.length,bits:n,kinds:r},texts:{format:f,strings:p,groups:m,references:i}}}function Fn(e){return Pn(e).measure}function In(e){let{format:t,strings:n,groups:r,references:i}=Pn(e).texts,a={...i},o=Mn.filter(e=>r.some(t=>t.has(e))),s=e=>{let i=new Set(o.filter((t,n)=>e&1<<n)),a=n.filter((e,t)=>r[t].size===0||[...r[t]].some(e=>i.has(e)));return Ie([...t,...a],t.length).length},c=o.length,l=Array.from({length:1<<c},(e,t)=>s(t)),u=e=>e<=1?1:e*u(e-1);return o.forEach((e,t)=>{for(let n=0;n<l.length;n++){if(n&1<<t)continue;let r=0;for(let e=n;e>0;e&=e-1)r++;let i=u(r)*u(c-r-1)/u(c);a[e]+=i*(l[n|1<<t]-l[n])}}),a}var Ln=`https://versatiles.org/versatiles-map-editor/schema/mapjson-1.schema.json`,Rn=class extends Error{version;constructor(e){super(`The map is of version ${e} of the format; this version reads up to 1.`),this.version=e,this.name=`MapJSONVersionError`}};function zn(e){let{frame:t,meta:n,elements:r}=xe(e);return{$schema:Ln,version:1,...t?{frame:t}:{},...n?{meta:n}:{},elements:r}}function Bn(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`The file contains no map`);let{version:t=1,frame:n,meta:r,elements:i}=e;if(typeof t!=`number`||!Number.isInteger(t)||t<1)throw Error(`The file has no valid version`);if(t>1)throw new Rn(t);if(!Array.isArray(i))throw Error(`The file contains no map elements`);return xe({elements:i,frame:n,meta:r})}var Vn={MapJSON:[`$schema`,`version`,`frame`,`meta`,`elements`],StateFrame:[`bounds`,`bearing`,`pitch`],StateMetadata:[`background`,`legend`,`colorScheme`,`viewer`,`labels`,`title`],StateLabels:[`overlap`,`minZoom`],StateBackground:[`base`,`theme`,`streets`,`borders`,`labels`,`language`,`font`,`labelSize`,`haloWidth`,`labelsOnTop`,`colors`,`hillshade`,`terrain`,`buildings`,`options`],StateBackgroundColors:[`saturation`,`black`,`white`],StateLegend:[`layout`,`font`,`bold`,`italic`,`theme`,`entries`],StateLegendMarker:[`type`,`style`,`label`],StateLegendLine:[`type`,`style`,`label`],StateLegendArea:[`type`,`style`,`outlineStyle`,`label`],StateViewer:[`search`,`navigation`,`zoomButtons`,`legend`,`scale`,`reset`,`fullscreen`,`locate`,`canPan`,`canZoom`,`canRotate`,`canTilt`,`confine`,`minZoom`,`maxZoom`,`scrollZoom`],StatePopup:[`text`],MarkerStyle:Te.marker,LineStyle:Te.line,AreaStyle:Te.area,OutlineStyle:Te.outline,StateElementMarker:[`type`,`point`,`label`,`style`,`popup`],StateElementLine:[`type`,`points`,`smooth`,`style`,`popup`],StateElementPolygon:[`type`,`points`,`smooth`,`style`,`outlineStyle`,`popup`],StateElementCircle:[`type`,`point`,`radius`,`style`,`outlineStyle`,`popup`]},Hn={marker:Vn.StateElementMarker,line:Vn.StateElementLine,polygon:Vn.StateElementPolygon,circle:Vn.StateElementCircle},Un={marker:Vn.StateLegendMarker,line:Vn.StateLegendLine,area:Vn.StateLegendArea},Wn=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Gn(e){let t=[],n=(e,n,r)=>{if(Wn(e)){for(let i of Object.keys(e))n.includes(i)||t.push(r?`${r}.${i}`:i);return e}},r=(e,t)=>{let r=e.type===`marker`?`marker`:e.type===`line`?`line`:`area`;n(e.style,Te[r],`${t}.style`),r===`area`&&n(e.outlineStyle,Te.outline,`${t}.outlineStyle`)},i=n(e,Vn.MapJSON,``);if(!i)return t;n(i.frame,Vn.StateFrame,`frame`);let a=n(i.meta,Vn.StateMetadata,`meta`);if(a){let e=n(a.background,Vn.StateBackground,`meta.background`);e&&n(e.colors,Vn.StateBackgroundColors,`meta.background.colors`),n(a.viewer,Vn.StateViewer,`meta.viewer`),n(a.labels,Vn.StateLabels,`meta.labels`);let i=n(a.legend,Vn.StateLegend,`meta.legend`);i&&Array.isArray(i.entries)&&i.entries.forEach((e,i)=>{let a=`meta.legend.entries[${i}]`,o=Wn(e)?Un[e.type]:void 0;if(!o)return void t.push(a);let s=n(e,o,a);s&&r(s,a)})}return Array.isArray(i.elements)&&i.elements.forEach((e,i)=>{let a=`elements[${i}]`,o=Wn(e)?Hn[e.type]:void 0;if(!o)return void t.push(a);let s=n(e,o,a);r(s,a),n(s.popup,Vn.StatePopup,`${a}.popup`)}),t}var Kn={meta:{title:``,colorScheme:``},frame:{bearing:0,pitch:0},"meta.viewer":Ye,"meta.legend":Le,"meta.labels":{overlap:`show`,minZoom:0},"meta.background":{...Me,labelsOnTop:!1},"meta.background.colors":Ae,element:{smooth:!1,label:``}},qn=[`arrowSize`,`patternScale`,`patternCoverage`];function Jn(e){if(!Wn(e)||!Array.isArray(e.elements))return[];let t=[],n=(e,t)=>e.replace(/\r\n?/g,`
2
+ `).toLowerCase()===t.toLowerCase(),r=(e,t)=>{if(e===t)return!0;if(typeof e!=`string`||typeof t!=`string`)return!1;if(n(e,t))return!0;let[r,i]=[De(e),De(t)];return e.startsWith(`#`)&&!!r&&!!i&&Pe(r)===Pe(i)},i=(e,t,n,i)=>{if(e.startsWith(`style:`)){let i=Oe[e.slice(6)];return qn.includes(t)&&typeof n==`number`?!0:t in i&&r(n,i[t])}return e===`popup`?t===`text`&&typeof n==`string`&&n.trim()===``:e===`meta.background`&&t===`haloWidth`?n===Ve[i.base===`satellite`?`satellite`:`vector`]:t in(Kn[e]??{})&&Kn[e][t]===n},a=(e,n,o,s)=>{if(!Wn(e))return void t.push(o);let c=Wn(n)?n:{};for(let[n,l]of Object.entries(e)){let u=o?`${o}.${n}`:n,d=c[n];if(l!==void 0){if(u===`meta.background.options`)Wn(l)||t.push(u);else if(Wn(l)){let t=e.type===`marker`?`marker`:e.type===`line`?`line`:`area`,r=n===`style`?`style:${t}`:n===`outlineStyle`?`style:outline`:n===`popup`?n:u;a(l,d,u,r)}else Array.isArray(l)?(d===void 0&&![`entries`,`elements`].includes(n)&&t.push(u),(n===`point`?[l]:n===`points`?l:[]).some(e=>Array.isArray(e)&&(e.length>2||Math.abs(Number(e[1]))>90||Math.abs(Number(e[0]))>ze.longitude))&&t.push(u)):d===void 0?i(s,n,l,e)||t.push(u):r(l,d)||t.push(u)}}},o=xe({elements:[],frame:e.frame,meta:e.meta}),{$schema:s,version:c,elements:l,...u}=e;a(u,o,``,``);let d=Wn(e.meta)&&Wn(e.meta.legend)?e.meta.legend.entries:void 0;if(Array.isArray(d)){let e=[...o.meta?.legend?.entries??[]];d.forEach((n,r)=>{let i=`meta.legend.entries[${r}]`;Wn(n)&&qe.includes(n.type)?a(n,e.shift(),i,`entry`):t.push(i)})}l.forEach((e,n)=>{let r=`elements[${n}]`,i=le(e);i?a(e,i,r,`element`):t.push(r)});let f=Gn(e);return t.filter(e=>!f.some(t=>e===t||e.startsWith(`${t}.`)))}var Yn={lt:`<`,gt:`>`,amp:`&`,quot:`"`,apos:`'`};function Xn(e){return e.replace(/&(#x[0-9a-f]+|#\d+|\w+);/gi,(e,t)=>{if(t[0]===`#`){let n=t[1].toLowerCase()===`x`?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Number.isInteger(n)&&n>=0&&n<=1114111?String.fromCodePoint(n):e}return Yn[t]??e})}function Zn(e){return e.slice(e.indexOf(`:`)+1)}function Qn(e){let t={name:`#document`,attributes:{},children:[]},n=[t],r=0;for(;r<e.length;){let t=n[n.length-1];if(e[r]!==`<`){let n=e.indexOf(`<`,r),i=e.slice(r,n<0?e.length:n);i.trim()&&t.children.push(Xn(i)),r=n<0?e.length:n}else if(e.startsWith(`<!--`,r))r=$n(e,`-->`,r);else if(e.startsWith(`<![CDATA[`,r)){let n=e.indexOf(`]]>`,r);if(n<0)throw Error(`Unclosed CDATA section`);t.children.push(e.slice(r+9,n)),r=n+3}else if(e.startsWith(`<?`,r))r=$n(e,`?>`,r);else if(e.startsWith(`<!`,r))r=$n(e,`>`,r);else if(e[r+1]===`/`){let i=$n(e,`>`,r),a=Zn(e.slice(r+2,i-1).trim());if(t.name!==a)throw Error(`Unexpected closing tag </${a}>`);n.pop(),r=i}else{let i=/^<([\w:.-]+)((?:\s+[\w:.-]+\s*=\s*(?:"[^"]*"|'[^']*'))*)\s*(\/?)>/.exec(e.slice(r));if(!i)throw Error(`Invalid tag at position ${r}`);let a={name:Zn(i[1]),attributes:{},children:[]};for(let[,e,,t,n]of i[2].matchAll(/([\w:.-]+)\s*=\s*("([^"]*)"|'([^']*)')/g))a.attributes[Zn(e)]=Xn(t??n);t.children.push(a),i[3]||n.push(a),r+=i[0].length}}if(n.length>1)throw Error(`Unclosed tag <${n[n.length-1].name}>`);return t}function $n(e,t,n){let r=e.indexOf(t,n);if(r<0)throw Error(`Missing "${t}"`);return r+t.length}function er(e,t){return(e?.children??[]).filter(e=>typeof e!=`string`&&e.name===t)}function tr(e,t){return er(e,t)[0]}function*nr(e){let t=[...e.children].reverse();for(;t.length>0;){let e=t.pop();if(yield e,typeof e!=`string`)for(let n=e.children.length-1;n>=0;n--)t.push(e.children[n])}}function rr(e){if(!e)return;let t=``;for(let n of nr(e))typeof n==`string`&&(t+=n);return t}function ir(e,t){let n=[];for(let r of nr(e))typeof r!=`string`&&r.name===t&&n.push(r);return n}function ar(e){return e.replace(/[<>&"']/g,e=>`&${{"<":`lt`,">":`gt`,"&":`amp`,'"':`quot`,"'":`apos`}[e]};`)}function $(e,t,n={}){let r=Object.entries(n).map(([e,t])=>` ${e}="${ar(t)}"`).join(``);return t===void 0?`<${e}${r}/>`:`<${e}${r}>${Array.isArray(t)?t.filter(e=>e!==void 0).join(``):ar(t)}</${e}>`}var or=`versatiles:frame`,sr=`versatiles:meta`,cr=`center`,lr=[`symbol-pattern`,`stroke-style`,`fill-pattern`],ur=500;function dr([e,t,n,r]){let i=[(e+n)/2,(t+r)/2],a=111320,o=(n-e)*a*Math.cos(i[1]*Math.PI/180),s=(r-t)*a;return{center:i,radius:Math.max(o/2,s/2,ur)}}function fr(e){let t=wn(e),n={};t.frame&&(n[or]=JSON.stringify(t.frame)),t.meta&&(n[sr]=JSON.stringify(t.meta));let r=t.frame?.bounds??We(e.elements),i=r&&dr(r);return`<?xml version="1.0" encoding="UTF-8"?>
3
+ `+$(`kml`,[`
4
+ `,$(`Document`,[$(`name`,e.meta?.title||`Map`),i&&$(`LookAt`,[$(`longitude`,String(i.center[0])),$(`latitude`,String(i.center[1])),$(`range`,String(Math.round(i.radius*2.5)))]),vr(n),...t.features.map(pr)].filter(Boolean).map(e=>e+`
5
+ `)),`
6
+ `],{xmlns:`http://www.opengis.net/kml/2.2`})+`
7
+ `}function pr(e){let t=e.properties??{},n={};for(let[e,r]of Object.entries(t))e!==`description`&&r!==void 0&&(n[e]=String(r));let r,i,a=e.geometry;if(a.type===`Point`&&t.subType===`Circle`)n[cr]=JSON.stringify(a.coordinates),r=gr(yr(a.coordinates,Number(t.radius))),i=[mr(t),hr(t)];else if(a.type===`Point`)r=$(`Point`,[$(`coordinates`,_r([a.coordinates]))]),i=[$(`IconStyle`,[$(`color`,br(t[`symbol-color`])),$(`scale`,String(t[`symbol-size`]??1)),$(`heading`,String(t[`symbol-rotation`]??0))]),$(`LabelStyle`,[$(`color`,br(t[`symbol-label-color`])),$(`scale`,String(t[`symbol-label-size`]??1))])];else if(a.type===`LineString`)r=$(`LineString`,[$(`coordinates`,_r(a.coordinates))]),i=[mr(t)];else if(a.type===`Polygon`)r=gr(a.coordinates[0]),i=[mr(t),hr(t)];else throw Error(`Unexpected geometry: ${a.type}`);let o=typeof t[`symbol-label`]==`string`?t[`symbol-label`]:``;return $(`Placemark`,[o?$(`name`,o.replace(/\s*\n\s*/g,` `).trim()):void 0,typeof t.description==`string`?$(`description`,t.description):void 0,$(`Style`,i),vr(n),r])}function mr(e){return $(`LineStyle`,[$(`color`,br(e[`stroke-color`])),$(`width`,String(e[`stroke-width`]??2))])}function hr(e){return $(`PolyStyle`,[$(`color`,br(e[`fill-color`],Number(e[`fill-opacity`]??1))),$(`outline`,e[`stroke-visibility`]===!1?`0`:`1`)])}function gr(e){return $(`Polygon`,[$(`outerBoundaryIs`,[$(`LinearRing`,[$(`coordinates`,_r(e))])])])}function _r(e){return e.map(([e,t])=>`${e},${t}`).join(` `)}function vr(e){let t=Object.entries(e);if(t.length!==0)return $(`ExtendedData`,t.map(([e,t])=>$(`Data`,[$(`value`,t)],{name:e})))}function yr([e,t],n,r=64){let i=n/111320,a=i/Math.max(Math.cos(t*Math.PI/180),.01),o=[];for(let n=0;n<=r;n++){let s=2*Math.PI*(n%r)/r;o.push([Math.round((e+a*Math.sin(s))*1e6)/1e6,Math.round((t+i*Math.cos(s))*1e6)/1e6])}return o}function br(e,t=1){let n=typeof e==`string`&&/^#[0-9a-f]{6}([0-9a-f]{2})?$/i.test(e)?e:`#ff0000`,r=(n.length===9?parseInt(n.slice(7),16)/255:1)*t;return(Math.round(Math.max(0,Math.min(1,r))*255).toString(16).padStart(2,`0`)+n.slice(5,7)+n.slice(3,5)+n.slice(1,3)).toLowerCase()}function xr(e){let t=tr(Qn(e),`kml`);if(!t)throw Error(`Not a KML document`);let n=new Map;for(let e of[...ir(t,`Style`),...ir(t,`StyleMap`)])e.attributes.id&&n.set(e.attributes.id,e);let r={type:`FeatureCollection`,features:[]},i=Er(tr(tr(t,`Document`)??t,`ExtendedData`)),a=kr(i[or]);a&&(r.frame=a);let o=kr(i[sr]);o&&(r.meta=o);for(let e of ir(t,`Placemark`)){let t=Sr(e,n);t&&r.features.push(t)}return kn(r)}function Sr(e,t){let n=wr(e);if(!n)return;let r=Er(tr(e,`ExtendedData`)),i=rr(tr(e,`description`));if(lr.some(e=>e in r)){let e={...r};i!==void 0&&(e.description=i);let t=kr(r[cr]);return delete e[cr],r.subType===`Circle`&&Array.isArray(t)?{type:`Feature`,properties:e,geometry:{type:`Point`,coordinates:t}}:{type:`Feature`,properties:e,geometry:n}}let a=Cr(e,t),o={},s=rr(tr(e,`name`))?.trim(),c=Dr(tr(tr(a,`IconStyle`),`color`)),l=Dr(tr(tr(a,`LabelStyle`),`color`)),u=tr(a,`LineStyle`),d=Dr(tr(u,`color`)),f=tr(a,`PolyStyle`),p=Dr(tr(f,`color`));s&&(o[`symbol-label`]=s),c&&(o[`symbol-color`]=c.withAlpha),l&&(o[`symbol-label-color`]=l.withAlpha),d&&(o[`stroke-color`]=d.withAlpha);let m=rr(tr(u,`width`));return m&&(o[`stroke-width`]=m),p&&(o[`fill-color`]=p.color,o[`fill-opacity`]=p.opacity),rr(tr(f,`fill`))?.trim()===`0`&&(o[`fill-opacity`]=0),rr(tr(f,`outline`))?.trim()===`0`&&(o[`stroke-visibility`]=!1),i?.trim()&&(o.description=Or(i)),{type:`Feature`,properties:o,geometry:n}}function Cr(e,t){let n=tr(e,`Style`);if(n)return n;let r=t.get(rr(tr(e,`styleUrl`))?.trim().replace(/^.*#/,``)??``);for(let e=0;r?.name===`StyleMap`&&e<3;e++){let e=er(r,`Pair`).find(e=>rr(tr(e,`key`))?.trim()===`normal`);r=tr(e,`Style`)??t.get(rr(tr(e,`styleUrl`))?.trim().replace(/^.*#/,``)??``)}return r?.name===`Style`?r:void 0}function wr(e){for(let t of e.children)if(typeof t!=`string`)switch(t.name){case`Point`:{let[e]=Tr(t);if(e)return{type:`Point`,coordinates:e};break}case`LineString`:return{type:`LineString`,coordinates:Tr(t)};case`Polygon`:return{type:`Polygon`,coordinates:[Tr(tr(tr(t,`outerBoundaryIs`),`LinearRing`))]};case`MultiGeometry`:return{type:`GeometryCollection`,geometries:t.children.filter(e=>typeof e!=`string`).map(e=>wr({name:``,attributes:{},children:[e]})).filter(e=>e!==void 0)}}}function Tr(e){return(rr(tr(e,`coordinates`))??``).trim().split(/\s+/).filter(Boolean).map(e=>e.split(`,`).map(Number)).filter(e=>e.length>=2&&Number.isFinite(e[0])&&Number.isFinite(e[1])).map(([e,t])=>[e,t])}function Er(e){let t={};for(let n of er(e,`Data`)){let e=n.attributes.name,r=rr(tr(n,`value`));e&&r!==void 0&&(t[e]=r)}return t}function Dr(e){let t=rr(e)?.trim().replace(/^#/,``).toLowerCase();if(!t||!/^[0-9a-f]{8}$/.test(t))return;let n=t.slice(0,2),r=`#${t.slice(6,8)}${t.slice(4,6)}${t.slice(2,4)}`;return{color:r,opacity:Math.round(parseInt(n,16)/255*100)/100,withAlpha:n===`ff`?r:r+n}}function Or(e){return e.replace(/<br\s*\/?>/gi,`
8
+ `).replace(/<\/(p|div|li)>/gi,`
9
+ `).replace(/<[^>]*>/g,``).replace(/&nbsp;/g,` `).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&amp;/g,`&`).replace(/\n{3,}/g,`
10
+
11
+ `).trim()}function kr(e){if(e!==void 0)try{return JSON.parse(e)}catch{return}}function Ar(e){let t=e.getStyleLayers().symbol;return t&&t.symbol===``?{name:`label`,color:t.labelColor}:{name:e.getState().type,color:e.getColors()[0]}}function jr(e){return e.target?.closest?.(`input, textarea, select, [role="combobox"], [contenteditable], [role="slider"], dialog[open], [role="menu"]`)!=null}var Mr={search:[{value:`top-left`,label:`Top left`,cell:[1,1]},{value:`top-right`,label:`Top right`,cell:[1,2]}],scale:[{value:`bottom-left`,label:`Bottom left`,cell:[1,1]},{value:`bottom-right`,label:`Bottom right`,cell:[1,2]}],navigation:[{value:`top-left`,label:`Top left`,cell:[1,1]},{value:`top-right`,label:`Top right`,cell:[1,2]},{value:`bottom-left`,label:`Bottom left`,cell:[2,1]},{value:`bottom-right`,label:`Bottom right`,cell:[2,2]}],legend:[{value:`top-left`,label:`Top left`,cell:[1,1]},{value:`top`,label:`Top`,cell:[1,2]},{value:`top-right`,label:`Top right`,cell:[1,3]},{value:`left`,label:`Left`,cell:[2,1]},{value:`right`,label:`Right`,cell:[2,3]},{value:`bottom-left`,label:`Bottom left`,cell:[3,1]},{value:`bottom`,label:`Bottom`,cell:[3,2]},{value:`bottom-right`,label:`Bottom right`,cell:[3,3]}]};function Nr(e){let t=Ye[e];return t===`none`?Mr[e][0].value:t}function Pr(e){return e.split(`
12
+ `).map(e=>e.trim()).filter(e=>e!==``).join(` `)}function Fr(e){return Pr(e.getStyleLayers().symbol?.label??``)||rn(e.popup).trim().split(`
13
+ `)[0]}var Ir={marker:`Marker`,line:`Line`,polygon:`Polygon`,circle:`Circle`};function Lr(e){return Ir[e]??e}function Rr(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return[...t].map(([e,t])=>`${t} ${Lr(e).toLowerCase()}${t===1?``:`s`}`).join(`, `)}var zr=class{#e=V(void 0);get scheme(){return l(this.#e)}set scheme(e){L(this.#e,e,!0)}recent=[];getUsedColors;constructor(e){this.getUsedColors=e}use(e){e=e.toLowerCase(),this.recent=[e,...this.recent.filter(t=>t!==e)]}getColors(){let e=this.getUsedColors().map(e=>e.toLowerCase()),t=new Set(e),n=new Set(this.recent.filter(e=>t.has(e)));for(let t=e.length-1;t>=0&&n.size<16;t--)n.add(e[t]);return[...n].slice(0,16)}};function Br(e){return e.json??=JSON.stringify(Ke(e.encoded)),e.json}var Vr=class{history=[];index=0;#e=V(!1);get undoEnabled(){return l(this.#e)}set undoEnabled(e){L(this.#e,e,!0)}#t=V(!1);get redoEnabled(){return l(this.#t)}set redoEnabled(e){L(this.#t,e,!0)}constructor(e){this.reset(e)}reset(e){this.history=[],this.index=0,this.push(e)}restore(e,t){e.length!==0&&(this.history=e.map(e=>({encoded:e})).reverse(),this.index=Math.min(this.history.length-1,Math.max(0,this.history.length-1-t)),this.updateButtons())}get current(){return JSON.parse(Br(this.history[this.index]))}get undone(){return this.index}push(e){let t=JSON.stringify(e),n=this.history[this.index];return n&&t===Br(n)?!1:(this.index>0&&(this.history.splice(0,this.index),this.index=0),this.history.unshift({json:t}),this.history.length>100&&(this.history.length=100),this.updateButtons(),!0)}get(){return JSON.parse(Br(this.history[this.index]))}undo(){return this.index<this.history.length-1&&this.index++,this.updateButtons(),this.get()}redo(){return this.index>0&&this.index--,this.updateButtons(),this.get()}updateButtons(){this.undoEnabled=this.index<this.history.length-1,this.redoEnabled=this.index>0}},Hr=[`color`,`symbol`,`rotation`,`size`];function Ur(e){let t={};for(let n of Hr)e?.[n]!==void 0&&Object.assign(t,{[n]:e[n]});return Object.keys(t).length>0?t:void 0}function Wr(e){return Gr(e.type===`marker`?{type:`marker`,style:Ur(e.style),label:``}:e.type===`line`?{type:`line`,style:e.style,label:``}:{type:`area`,style:e.style,outlineStyle:e.outlineStyle,label:``})}function Gr(e){let t={...e};return t.style||delete t.style,t.outlineStyle||delete t.outlineStyle,t}function Kr(e,t){if(e)return t===`style`?e.style:`outlineStyle`in e?e.outlineStyle:void 0}var qr=e=>e&&Object.fromEntries(Object.entries(e).sort(([e],[t])=>e<t?-1:1));function Jr(e){return JSON.stringify([e.type,qr(e.style),qr(Kr(e,`outlineStyle`))])}var Yr=e=>Jr(Wr(e));function Xr(e,t,n){if(e.length!==t.length||e.some((e,n)=>e.type!==t[n].type))return;let r=new Map;for(let n=0;n<e.length;n++){let i=Yr(e[n]),a=Wr(t[n]);Jr(a)!==i&&(r.has(i)||r.set(i,new Map),r.get(i).set(Jr(a),a))}if(r.size===0)return;let i=new Set(t.map(Yr)),a=new Set(n.map(Jr)),o=[],s=n.map(e=>{let t=r.get(Jr(e));if(!t||t.size!==1||i.has(Jr(e)))return e;let[[n,s]]=t;if(a.has(n))return e;let c={...s,label:e.label};return o.push(c),c});return o.length>0?{entries:s,changed:o}:void 0}function Zr(e,t){let n=new Set(e.map(Yr));return new Set(t.flatMap((e,t)=>n.has(Jr(e))?[]:[t]))}function Qr(e,t,n){let r=Yr(e);if(n.some(e=>Jr(e)===r))return`shown`;let i=t.trim();if(i&&n.some(e=>e.label?.trim()===i))return`different`}function $r(e){return(e?.entries??[]).flatMap(e=>{if(e.type===`marker`)return[hn(`symbol`,e.style).color];if(e.type===`line`)return[hn(`line`,e.style).color];let t=hn(`outline`,e.outlineStyle);return[hn(`fill`,e.style).color,...t.visible?[t.color]:[]]})}function ei(e,{popups:t=!0}={}){let n=t?e.elements:e.elements.map(e=>{if(!e.popup)return e;let{popup:t,...n}=e;return n}),{meta:r,...i}={...e,elements:n};if(!e.meta)return i;let{title:a,colorScheme:o,...s}=e.meta;if(s.viewer?.legend===`none`){delete s.legend;let{legend:e,...t}=s.viewer;Object.keys(t).length>0?s.viewer=t:delete s.viewer}return Object.keys(s).length>0?{...i,meta:s}:i}function ti(e){return e.elements.some(e=>e.popup!==void 0)}var ni=class{mapDocument;history;events=new tt;constructor(e){this.mapDocument=e,this.history=new Vr(e.getState())}getHash({resolution:e,...t}={}){return Re(ei(this.mapDocument.getState(),t),{resolution:e})}log(){this.followLegend();let e=this.mapDocument.getState();this.history.push(e)&&(this.events.emit(`log`,e),this.events.emit(`change`))}followLegend(){let e=this.mapDocument.legend;if(!e)return;let t=this.history.current.elements,n=this.mapDocument.getState().elements,r=Xr(t,n,e.entries);if(!r)return;this.mapDocument.legend={...e,entries:r.entries};let[i]=r.changed;Ct(r.changed.length>1?`${r.changed.length} legend entries have the new style too.`:i.label?.trim()?`The legend entry “${i.label.trim()}” has the new style too.`:`The legend entry has the new style too.`,`info`)}async undo(){this.history.undoEnabled&&(await this.mapDocument.setState(this.history.undo()),this.events.emit(`move`,this.history.undone),this.events.emit(`change`))}async redo(){this.history.redoEnabled&&(await this.mapDocument.setState(this.history.redo()),this.events.emit(`move`,this.history.undone),this.events.emit(`change`))}};function ri(e){let t=e.selection.selectedElements;t.length!==0&&(e.duplicateElements(t,[20,20]),e.state.log())}function ii(e,t){let n=e.selection.selectedElements;n.length!==0&&(e.moveElements(n,t),e.state.log())}function ai(e){let t=e.selection.selectedElements;t.length!==0&&(e.deleteElements(t),e.state.log())}function oi(e){return e.selection.selectedElements.length===1}function si(e){oi(e)&&e.styleClipboard.copy(e.selection.selectedElements[0])}function ci(e){return e.selection.selectedElements.length>0&&e.styleClipboard.style!==void 0}function li(e){let t=e.legend?.entries??[],n=new Set(t.flatMap(e=>e.style?.color?.toLowerCase()??[])),r=e.elements.flatMap(e=>e.getColors(`main`).map(e=>e.toLowerCase())),i=new Set(r),a={type:`area`,style:{color:[...e.colors.getColors().filter(e=>i.has(e)),...r.reverse()].find(e=>!n.has(e))??`#ff0000`},outlineStyle:{visible:!1},label:``};e.legend={...e.legend,entries:[...t,a]},e.state.log()}function ui(e){let t=e.legend?.entries??[],n=new Set(t.map(Jr)),r=new Map;for(let t of e.selection.selectedElements){let e=Wr(t.getState()),i=Jr(e);n.has(i)||(r.has(i)||r.set(i,{entry:e,texts:new Set}),r.get(i).texts.add(Fr(t)))}if(r.size===0)return 0;let i=[...r.values()].map(({entry:e,texts:t})=>({...e,label:t.size===1?[...t][0]:``}));return e.legend={...e.legend,entries:[...t,...i]},e.state.log(),i.length}function di(e){return e.styleClipboard.style!==void 0}function fi(e,t){let n=e.styleClipboard.style,r=e.legend?.entries;if(!n||!r?.[t])return;let i=r[t].label,a=(e,t)=>t&&Ot(e,t),o=Gr(n.symbol?{type:`marker`,style:Ur(a(`symbol`,n.symbol)),label:i}:n.fill?{type:`area`,style:a(`fill`,n.fill),outlineStyle:a(`outline`,n.stroke),label:i}:{type:`line`,style:a(`line`,n.stroke),label:i});e.legend={...e.legend,entries:r.map((e,n)=>n===t?o:e)},e.state.log()}function pi(e,t,n){let r=e.legend?.entries;if(!r?.[t])return;let i={...Wr(n.getState()),label:r[t].label};e.legend={...e.legend,entries:r.map((e,n)=>n===t?i:e)},e.state.log()}function mi(e){let t=e.styleClipboard.style;ci(e)&&t&&(e.styleClipboard.paste(e.selection.selectedElements,t),e.state.log())}function hi(e){return e.selection.selectedElements.filter(e=>e instanceof Xt)}function gi(e){let t=hi(e);if(t.length===0)return;let n=e.selection.selectedNode;for(let e of t)e.reverse();let r=e.selection.selectedElement;n&&r instanceof Xt&&e.selection.selectNode(r.path.length-1-n.index),e.state.log()}var _i=class{element;#e;#t;#n=new Set;#r=new Set;#i=new Set;constructor(e){this.element=e,this.update()}update(){if(this.#e)return this.element.style.cursor=this.#e;if(this.#t)return this.element.style.cursor=this.#t;if(this.#n.size>0)return this.element.style.cursor=`crosshair`;if(this.#r.size>0)return this.element.style.cursor=`grab`;if(this.#i.size>0)return this.element.style.cursor=`pointer`;this.element.style.cursor=`default`}setMode(e){this.#e=e,this.update()}setResize(e){this.#t=e,this.update()}toggleHover(e,t=!0){t?this.#i.add(e):this.#i.delete(e),this.update()}togglePrecise(e,t=!0){t?this.#n.add(e):this.#n.delete(e),this.update()}toggleGrab(e,t=!0){t?this.#r.add(e):this.#r.delete(e),this.update()}};function vi(e){return e.type.startsWith(`touch`)}function yi(e){return vi(e)&&e.points.length>1}var bi=new WeakSet;function xi(e){bi.add(e.originalEvent),e.preventDefault()}function Si(e){return bi.has(e.originalEvent)}function Ci(e,t,n,r){let i=vi(t),a=e.getContainer().ownerDocument,o=a.defaultView,s=!1,c=e=>{if(yi(e))return l();n(e)},l=t=>{s||(s=!0,i?(t?.originalEvent.cancelable&&t.originalEvent.preventDefault(),e.off(`touchmove`,c),e.off(`touchend`,l),e.off(`touchcancel`,l)):(e.off(`mousemove`,c),e.off(`mouseup`,l),a.removeEventListener(`mouseup`,u),o?.removeEventListener(`blur`,u)),r())},u=()=>l();i?(e.on(`touchmove`,c),e.on(`touchend`,l),e.on(`touchcancel`,l)):(e.on(`mousemove`,c),e.on(`mouseup`,l),a.addEventListener(`mouseup`,u),o?.addEventListener(`blur`,u))}var wi=400,Ti=8,Ei=10,Di=50,Oi=class{#e=V(`select`);#t=V([]);#n=0;hover;lastPress;swallowClick=!1;doc;constructor(e){this.doc=e;let t=e.view.map;t.on(`mousedown`,e=>this.handleDown(e)),t.on(`touchstart`,e=>this.handleDown(e)),t.on(`click`,e=>this.handleClick(e)),t.on(`mousemove`,e=>{l(this.#t).length!==0&&l(this.#e)!==`circle`&&(this.hover=[e.lngLat.lng,e.lngLat.lat],this.render())}),t.on(`mouseout`,()=>{this.hover=void 0,this.render()})}get tool(){return l(this.#e)}get active(){return l(this.#e)!==`select`}get points(){return l(this.#t)}get canFinish(){return l(this.#t).length>=(l(this.#e)===`polygon`?3:l(this.#e)===`line`?2:1/0)}setTool(e){L(this.#t,[]),this.#n=0,this.hover=void 0,this.lastPress=void 0,L(this.#e,e,!0);let t=this.doc.view.map;this.active?(this.doc.selection.selectElement(),t.doubleClickZoom.disable()):setTimeout(()=>{this.active||t.doubleClickZoom.enable()},wi),this.doc.cursor.togglePrecise(`drawing`,this.active),this.render()}finish(){return this.canFinish?(this.create({type:l(this.#e),points:l(this.#t)}),!0):!1}removeLastPoint(){L(this.#t,l(this.#t).slice(0,-1)),this.render()}create(e){this.setTool(`select`),this.doc.addElement(e),this.doc.state.log()}handleDown(e){if(this.swallowClick=!1,l(this.#e)!==`circle`||yi(e))return;xi(e);let t=this.doc.view.map,n=[e.lngLat.lng,e.lngLat.lat];L(this.#t,[n]),this.#n=0,Ci(t,e,e=>{e.preventDefault(),this.#n=en(n,[e.lngLat.lng,e.lngLat.lat]),this.render()},()=>{if(this.#n===0){let r=t.unproject([e.point.x+Di,e.point.y]);this.#n=en(n,[r.lng,r.lat])}this.swallowClick=!0,this.create({type:`circle`,point:n,radius:this.#n})})}handleClick(e){if(this.swallowClick){this.swallowClick=!1,xi(e);return}if(!this.active)return;xi(e);let t=[e.lngLat.lng,e.lngLat.lat];l(this.#e)===`marker`?this.create(Tt(t)):(l(this.#e)===`line`||l(this.#e)===`polygon`)&&this.addPoint(t,e.point)}addPoint(e,t){let n=performance.now(),r=this.lastPress;if(this.lastPress={time:n,x:t.x,y:t.y},r&&n-r.time<wi&&Math.hypot(t.x-r.x,t.y-r.y)<Ti){this.lastPress=void 0,this.finish();return}let i=l(this.#t);if(l(this.#e)===`polygon`&&i.length>=3){let e=this.doc.view.map.project(i[0]);if(Math.hypot(e.x-t.x,e.y-t.y)<Ei){this.finish();return}}L(this.#t,[...i,e]),this.render()}render(){let e=[],t=e=>({type:`Feature`,properties:{},geometry:e}),n=l(this.#t);if(l(this.#e)===`circle`){if(n.length>0&&this.#n>0){let r=yt(n[0],this.#n,72);e.push(t({type:`Polygon`,coordinates:[[...r,r[0]]]}))}}else if(l(this.#e)===`line`||l(this.#e)===`polygon`){let r=this.hover?[...n,this.hover]:n;l(this.#e)===`polygon`&&r.length>=3?e.push(t({type:`Polygon`,coordinates:[[...r,r[0]]]})):r.length>=2&&e.push(t({type:`LineString`,coordinates:r}))}n.forEach(n=>e.push(t({type:`Point`,coordinates:n}))),this.doc.view.map.getSource(`drawing`)?.setData({type:`FeatureCollection`,features:e})}},ki=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform),Ai=ki?`Cmd`:`Ctrl`;function ji(e){return ki?e.metaKey:e.ctrlKey}var Mi=3,Ni=class{doc;selection;hovered;pointer;frame;constructor(e,t){this.doc=e,this.selection=t;let n=this.doc.view.map;n.on(`mousedown`,e=>this.handleDown(e)),n.on(`touchstart`,e=>this.handleDown(e)),n.on(`mouseenter`,`selection_nodes`,()=>{this.doc.cursor.togglePrecise(`selection_nodes`)}),n.on(`mouseleave`,`selection_nodes`,()=>{this.doc.cursor.togglePrecise(`selection_nodes`,!1)}),n.on(`mousemove`,e=>{this.pointer=e.point,this.frame??=requestAnimationFrame(()=>{this.frame=void 0,this.hover(this.pointer&&this.doc.elementAt(this.pointer,Mi))})}),n.on(`mouseout`,()=>{this.pointer=void 0,this.hover(void 0)}),n.on(`click`,e=>{if(Si(e)||this.doc.drawing.active||this.findNode(e))return;e.preventDefault();let t=this.doc.elementAt(e.point,Mi);ji(e.originalEvent)?t&&this.selection.toggleElement(t):(this.selection.selectElement(t),this.selection.selectNode())})}handleDown(e){yi(e)||Si(e)||this.doc.drawing.active||this.handleNodeDown(e)||this.handleElementDown(e)}handleElementDown(e){if(ji(e.originalEvent)||e.originalEvent.shiftKey)return;let t=this.selection.selectedElements,n=this.doc.elementAt(e.point,vi(e)?16:Mi,t);if(!n)return;xi(e);let r=e.lngLat.lng,i=st(e.lngLat.lat),a=e.originalEvent.altKey?void 0:t,o=!1;Ci(this.doc.view.map,e,e=>{e.preventDefault(),o=!0,a??=this.doc.duplicateElements(t);let n=e.lngLat.lng,s=st(e.lngLat.lat);a.forEach(e=>e.moveBy(n-r,s-i)),r=n,i=s,this.selection.updateSelectionNodes()},()=>{o?a?.forEach(e=>e.snap()):this.selection.selectElement(n),o&&this.selection.updateSelectionNodes(),this.doc.state.log()})}findNode(e){let t=this.doc.view.map;if(!vi(e))return t.queryRenderedFeatures(e.point,{layers:[`selection_nodes`]})[0]?.properties;let{x:n,y:r}=e.point,i=t.queryRenderedFeatures([[n-16,r-16],[n+16,r+16]],{layers:[`selection_nodes`]}),a,o=1/0;for(let e of i){if(e.geometry.type!==`Point`)continue;let i=t.project(e.geometry.coordinates),s=Math.hypot(i.x-n,i.y-r);s<o&&(o=s,a=e.properties)}return a}handleNodeDown(e){let t=this.selection.selectedElement;if(t==null)return!1;let n=this.findNode(e);if(n==null)return!1;let r=t.getSelectionNodeUpdater(n);if(r==null)return!1;xi(e);let i=e.originalEvent.altKey&&t.isMoveNode(n),a=r;return this.selection.selectNode(r.vertex),Ci(this.doc.view.map,e,e=>{e.preventDefault(),i&&(i=!1,a=this.doc.duplicateElement(t).getSelectionNodeUpdater(n)??a),a.update(e.lngLat.lng,e.lngLat.lat),this.selection.updateSelectionNodes()},()=>{this.selection.updateSelectionNodes(),this.doc.state.log()}),!0}refreshCursor(){this.hover(this.hovered)}hover(e){this.hovered=e;let t=this.doc.cursor;t.toggleHover(`elements`,e!==void 0),t.toggleGrab(`elements`,e?.selected===!0)}},Pi=class{#e=V([]);#t=V(void 0);#n=V(!1);get selectedElements(){return l(this.#e)}get selectedElement(){return l(this.#e).length===1?l(this.#e)[0]:void 0}get selectedNode(){return l(this.#t)}get legendSelected(){return l(this.#n)}get legendEntry(){return l(this.#r)}#r=V();selectLegend(e=!0,t){e&&this.selectElements([]),L(this.#n,e,!0),e&&t!==void 0&&L(this.#r,{index:t})}selectedNodeIndex;doc;pointer;constructor(e){this.doc=e,this.pointer=new Ni(e,this)}selectElement(e){this.selectElements(e?[e]:[])}selectElements(e){L(this.#n,!1);let t=l(this.#e);if(e.length===t.length&&e.every((e,n)=>e===t[n]))return;let n=new Set(t),r=new Set(e);this.doc.elements.forEach(e=>{n.has(e)!==r.has(e)&&e.select(r.has(e))}),L(this.#e,e),this.selectedNodeIndex=void 0,this.updateSelectionNodes(),this.pointer.refreshCursor()}toggleElement(e){let t=l(this.#e);this.selectElements(t.includes(e)?t.filter(t=>t!==e):[...t,e])}deselectElements(e){let t=new Set(e),n=l(this.#e);n.some(e=>t.has(e))&&this.selectElements(n.filter(e=>!t.has(e)))}selectNode(e){this.selectedNodeIndex=e,this.updateSelectionNodes()}deleteSelectedNode(){let e=this.selectedElement,t=this.selectedNodeIndex;return e==null||t==null||!e.deleteNode(t)?!1:(this.selectNode(),this.doc.state.log(),!0)}updateSelectionNodes(){let e=this.selectedElement,t=e?.getSelectionNodes()??[],n=this.selectedNodeIndex,r=t.find(e=>e.index===n&&!e.transparent);r??(this.selectedNodeIndex=void 0),L(this.#t,e&&r?{index:r.index,coordinates:r.coordinates,deletable:e.canDeleteNode(r.index)}:void 0),this.doc.view.map.getSource(`selection_nodes`)?.setData({type:`FeatureCollection`,features:t.map(e=>({type:`Feature`,properties:{index:e.index,opacity:e.transparent?.3:1,selected:e===r},geometry:{type:`Point`,coordinates:e.coordinates}}))});let i=l(this.#e),a=i.length>1?i.flatMap(e=>e.getSelectionNodes().filter(e=>!e.transparent)):[];this.doc.view.map.getSource(`selection_marks`)?.setData({type:`FeatureCollection`,features:a.map(e=>({type:`Feature`,properties:{},geometry:{type:`Point`,coordinates:e.coordinates}}))})}},Fi=4,Ii=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round">${[[`#fff`,4],[`#000`,1.75]].map(([e,t])=>`<path stroke="${e}" stroke-width="${t}" d="M17 3a2.1 2.1 0 0 1 3 3l-2.5 2.5-3-3z M15.5 6.5l2 2 M14.5 7.5L5 17l-1 3 3-1 9.5-9.5"/>`).join(``)}</svg>`,Li=`url("data:image/svg+xml,${encodeURIComponent(Ii)}") 4 20, crosshair`,Ri=class{#e=V(!1);get active(){return l(this.#e)}set active(e){L(this.#e,e,!0)}#t;#n;#r;constructor(e){this.#t=e;let t=e.view.map;t.on(`click`,t=>{if(!this.active)return;xi(t);let n=t.originalEvent.pointerType===`touch`,r=e.elementAt(t.point,n?16:Fi);if(!r)return;let i=this.#n;this.close(),i?.(r)}),t.on(`mousemove`,t=>{this.active&&this.#i(e.elementAt(t.point,Fi))}),t.on(`mouseout`,()=>{this.active&&this.#i(void 0)})}open({onPick:e}){let t=this.#t;t.visibleArea.close({returning:!1}),t.drawing.setTool(`select`),this.#n=e,this.active=!0,t.cursor.setMode(Li)}close(){this.active&&(this.active=!1,this.#n=void 0,this.#t.cursor.setMode(void 0),this.#i(void 0))}#i(e){if(e===this.#r)return;this.#r=e;let t=this.#t.view.map;t.style&&t.getSource(`highlight`)?.setData({type:`FeatureCollection`,features:e?[e.getFeature()]:[]})}},zi=8,Bi=20,Vi=40,Hi=[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`],Ui=[`ns-resize`,`nesw-resize`,`ew-resize`,`nwse-resize`];function Wi(e,t=0){return Ui[((Hi.indexOf(e)-Math.round(t/45))%4+4)%4]}var Gi=class{#e=V(!1);get active(){return l(this.#e)}set active(e){L(this.#e,e,!0)}#t;#n;#r;#i=!1;#a=!1;turnBefore={};constructor(e){this.#t=e;let t=e.view.map;t.on(`mousedown`,e=>this.#f(e)),t.on(`touchstart`,e=>this.#f(e)),t.on(`click`,e=>{this.active&&xi(e)}),t.on(`mousemove`,t=>{if(!this.active)return;let n=this.#d(t.point,zi);e.cursor.setResize(n&&Wi(n,e.view.getTurn().bearing))}),t.on(`zoom`,()=>{this.active&&!e.frame&&this.render()}),t.on(`rotate`,()=>this.#u()),t.on(`pitch`,()=>this.#u()),t.on(`moveend`,()=>{this.#a&&(this.#a=!1,this.log(),this.render())})}get#o(){return this.#t.frame??this.#s()}#s(){let e=this.#t.getBounds();if(!e)return;let t=this.#t.view.map;if(this.#t.view.turned){let[t,n]=this.#c(e);return this.#l(e,Math.max(0,Vi-t)/2,Math.max(0,Vi-n)/2)}let n=t.project([e[0],e[1]]),r=t.project([e[2],e[3]]),i=Math.max(0,Vi-(r.x-n.x))/2,a=Math.max(0,Vi-(n.y-r.y))/2,[o,s,c,l]=e;return i>0&&(o=t.unproject([n.x-i,n.y]).lng,c=t.unproject([r.x+i,r.y]).lng),a>0&&(s=t.unproject([n.x,n.y+a]).lat,l=t.unproject([r.x,r.y-a]).lat),Ki([o,s,c,l])}#c([e,t,n,r]){let i=this.#t.view.degreesPerPixel();return[(n-e)/i,(st(r)-st(t))*180/Math.PI/i]}#l([e,t,n,r],i,a){let o=this.#t.view.degreesPerPixel(),s=(e,t)=>xt(st(e)+t*o*Math.PI/180);return Ki([e-i*o,s(t,-a),n+i*o,s(r,a)])}get turn(){let{bearing:e=0,pitch:t=0}=this.#t.frameTurn??{},{canPan:n,canZoom:r,canRotate:i,canTilt:a,confine:o,minZoom:s,maxZoom:c,scrollZoom:l}=this.#t.controls;return{bearing:e,pitch:t,canPan:n,canZoom:r,canRotate:i,canTilt:a,confine:o,minZoom:s,maxZoom:c,scrollZoom:l}}setTurn(e){let{bearing:t,pitch:n,...r}={...this.turn,...e};this.#t.frameTurn=de({bearing:t,pitch:n}),this.#t.viewer={...this.#t.viewer,...r},this.render()}#u(){if(!this.active)return;let e=this.#t.view.getTurn(),[t,n]=[Math.round(e.bearing),Math.round(e.pitch)],r=this.turn;(t!==Math.round(r.bearing)||n!==Math.round(r.pitch))&&(this.#t.frameTurn=de({bearing:t,pitch:n}),this.#a=!0)}log(){this.#t.state.log()}open({onDone:e}={}){if(this.#r=e,this.active)return;let t=this.#t;t.stylePicker.close(),t.drawing.setTool(`select`),t.selection.selectElement(),this.turnBefore=t.view.getTurn(),this.active=!0,this.#n=t.state.events.on(`change`,()=>this.render()),this.render()}close({returning:e=!0}={}){if(!this.active)return;this.commit(),this.active=!1;let t=this.#r;this.#r=void 0,this.#n!==void 0&&this.#t.state.events.off(`change`,this.#n),this.#n=void 0,this.#t.cursor.setResize(void 0),this.#t.view.hideVisibleArea(),this.#t.view.setTurn(this.turnBefore),e&&t?.()}useCurrentView(){this.#t.frame=St(this.#t.view.viewBounds()),this.#t.state.log(),this.render()}fitToElements(){this.#t.frame&&(this.#t.frame=void 0,this.#t.state.log(),this.render())}nudge(e,t){let n=this.#o;if(!this.active||!n)return;if(this.#t.view.turned){let[r,i]=e===`n`||e===`s`?[0,t]:[t,0],a=this.#l(n,r,i),o={w:0,s:1,e:2,n:3}[e],s=[...n];s[o]=a[o];let[c,l]=this.#c(s);if(c<Bi||l<Bi)return;this.#t.frame=St(s),this.#i=!0,this.render();return}let{x:r,y:i}=this.#t.view.map.project(et(n,e)),[a,o]={n:[0,-t],e:[t,0],s:[0,t],w:[-t,0]}[e];this.#t.frame=St(this.#p(n,e,{x:r+a,y:i+o})),this.#i=!0,this.render()}commit(){this.#i&&(this.#i=!1,this.#t.state.log())}render(){if(!this.active)return;let e=this.#t,{bearing:t,pitch:n}=this.turn;e.view.setTurn({bearing:t,pitch:n}),e.view.showVisibleArea(e.frame,e.frame?void 0:this.#s())}#d(e,t){let n=this.#o;if(!n)return;let r=this.#t.view.map,i,a=t;for(let t of gn){let{x:o,y:s}=r.project(et(n,t)),c=Math.hypot(o-e.x,s-e.y);c<=a&&(i=t,a=c)}return i}#f(e){if(!this.active||yi(e)||Si(e))return;let t=this.#d(e.point,vi(e)?16:zi),n=this.#o;if(!t||!n)return;xi(e);let r=this.#t,i=!1;Ci(r.view.map,e,e=>{e.preventDefault(),i=!0,r.frame=St(this.#p(r.frame??n,t,e.point)),this.render()},()=>{i&&r.state.log()})}#p(e,t,n){let r=this.#t.view.map;if(this.#t.view.turned){let{lng:i,lat:a}=r.unproject([n.x,n.y]),o=this.#t.view.degreesPerPixel(),s=Bi*o,c=(e,t)=>xt(st(e)+t*o*Math.PI/180),[l,u,d,f]=e;return t.includes(`w`)&&(l=Math.min(i,d-s)),t.includes(`e`)&&(d=Math.max(i,l+s)),t.includes(`n`)&&(f=Math.max(a,c(u,Bi))),t.includes(`s`)&&(u=Math.min(a,c(f,-20))),Ki([l,u,d,f])}let i=r.project([e[0],e[3]]),a=r.project([e[2],e[1]]),[o,s,c,l]=e;return t.includes(`w`)&&(o=r.unproject([Math.min(n.x,a.x-Bi),i.y]).lng),t.includes(`e`)&&(c=r.unproject([Math.max(n.x,i.x+Bi),i.y]).lng),t.includes(`n`)&&(l=r.unproject([i.x,Math.min(n.y,a.y-Bi)]).lat),t.includes(`s`)&&(s=r.unproject([i.x,Math.max(n.y,i.y+Bi)]).lat),Ki([o,s,c,l])}};function Ki([e,t,n,r]){return[Math.max(-180,e),Math.max(-_t,t),Math.min(180,n),Math.min(_t,r)]}var qi=[`symbol`,`fill`,`stroke`];function Ji(e){return e.getStyleLayers()}function Yi(e){return qi.find(t=>e[t]!==void 0)}var Xi=class{#e=V(void 0);get style(){return l(this.#e)}set style(e){L(this.#e,e)}copy(e){let t={};for(let[n,r]of Object.entries(Ji(e)))t[n]=n===`stroke`?{...hn(`outline`),...hn(`line`,r.getState())}:hn(n,r.getState());this.style=t}paste(e,t){for(let n of e){let e=Ji(n),r=qi.filter(n=>e[n]&&t[n]);if(r.length===0){let n=Yi(t),r=Yi(e),i=n&&t[n]?.color;r&&i&&e[r].patch({color:i})}else for(let n of r)e[n].patch({...t[n]})}}},Zi=class extends Jt{selection;drawing;cursor;state;visibleArea;stylePicker;styleClipboard=new Xi;colors=new zr(()=>[...$r(this.legend),...this.elements.flatMap(e=>e.getColors())]);constructor(e){super(e),this.cursor=new _i(e.getCanvasContainer()),this.visibleArea=new Gi(this),this.stylePicker=new Ri(this),this.drawing=new Oi(this),this.selection=new Pi(this),this.state=new ni(this)}async loadState(e,t={}){this.visibleArea.close({returning:!1}),await super.loadState(e,t),e&&this.state.history.reset(e)}applyMetadata(e){super.applyMetadata(e),this.colors.scheme=e?.colorScheme}deselectAll(){this.selection.selectElement()}clear(){this.deselectAll(),super.clear()}destroy(){super.destroy(),this.state.events.clear()}isInteractive(){return!0}removeElements(e){this.selection.deselectElements(e),super.removeElements(e)}duplicateElement(e,t=[0,0]){return this.duplicateElements([e],t)[0]}duplicateElements(e,t=[0,0]){let n=e=>this.view.offsetPoint(e,t),r=e.map(e=>{let t=structuredClone(e.getState());return`point`in t&&(t.point=n(t.point)),`points`in t&&(t.points=t.points.map(n)),t});return this.addElements(r)}addElements(e){let t=e.map(e=>Bt(this,e));return this.appendElements(t),this.selection.selectElements(t),t}addElement(e){let t=Bt(this,e);return this.appendElement(t),this.selection.selectElement(t),t}getCamera(){let e=this.view.getViewport(),{bearing:t,pitch:n}=this.visibleArea.active?this.visibleArea.turnBefore:this.view.getTurn();return{...e,...t?{bearing:t}:{},...n?{pitch:n}:{}}}showAllElements(){let e=this.elements.map(e=>e.getState());e.length>0&&this.view.fitArea(void 0,e,{turn:this.view.getTurn()})}applyCamera(e){super.applyCamera(e),this.#e({bearing:e?.bearing,pitch:e?.pitch})}#e(e){this.visibleArea?.active?this.visibleArea.turnBefore=e:this.view.setTurn(e)}getGeoJSON(){return wn(this.getState())}getState(){let e={},t=this.mapLabelsOnTop?{...this.background,labelsOnTop:!0}:this.background;t&&(e.background=t);let n=this.legend;n&&(e.legend=n);let r=this.colors.scheme;r&&(e.colorScheme=r),this.viewer&&(e.viewer=this.viewer);let i=this.title.trim();i&&(e.title=i);let a={};return this.labelOverlap===`hide`&&(a.overlap=`hide`),this.labelMinZoom>0&&(a.minZoom=this.labelMinZoom),Object.keys(a).length>0&&(e.labels=a),{...this.frame||this.frameTurn?{frame:{...this.frame?{bounds:this.frame}:{},...this.frameTurn}}:{},...Object.keys(e).length>0?{meta:e}:{},elements:this.elements.map(e=>e.getState())}}addGeoJSON(e){this.addState(kn(e))}addState(e){let t=e.frame?.bounds;t&&(this.frame=this.frame?Qi(this.frame,t):t);let n=tn(e.frame);n&&(this.frameTurn=n);let r=e.meta??{};r.background&&this.setBackground(r.background),r.background?.labelsOnTop&&(this.mapLabelsOnTop=!0),r.legend&&(this.legend=r.legend),r.colorScheme&&(this.colors.scheme=r.colorScheme),r.viewer&&(this.viewer={...this.viewer,...r.viewer}),r.title&&(this.title=r.title),r.labels?.overlap&&(this.labelOverlap=r.labels.overlap),r.labels?.minZoom&&(this.labelMinZoom=r.labels.minZoom),this.appendElements(e.elements.map(e=>Bt(this,e)))}};function Qi(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[2]),Math.max(e[3],t[3])]}var $i=g(`: <span class="text"> </span>`,1),ea=g(` <!>`,1);function ta(e,r){U(r,!0);let i=R(()=>Fr(r.element));z();var a=ea(),o=_(a,!0),s=A(o),c=e=>{var r=$i(),a=A(_(r)),o=t(a,!0);B(()=>n(o,l(i))),m(e,r)};G(s,e=>{l(i)&&e(c)}),B(()=>n(o,r.name)),m(e,a),F()}var na=g(`<li role="option"><span class="type svelte-duvspt"><!></span> <span class="name svelte-duvspt"><!></span> <span class="grip svelte-duvspt" aria-hidden="true"><!></span></li>`),ra=g(`<ul role="listbox" tabindex="0" aria-label="Elements" aria-multiselectable="true"></ul> <!>`,1);function ia(e,t){let i=u();U(t,!0);let a=R(()=>t.doc.selection.selectedElements),o=R(()=>new Set(l(a))),s=R(()=>[...t.doc.elements].reverse()),c=V(0),f=R(()=>Math.min(l(c),l(s).length-1)),h=V(void 0),g,v,y=e=>e.map(e=>e.id).join();d(()=>{if(y(l(a))===v)return;let e=l(a).at(-1),t=e?l(s).indexOf(e):-1;t>=0&&L(c,t,!0),g=e});function b(e,n){let r=l(s)[e];if(!r)return;L(c,e,!0);let i=g?l(s).indexOf(g):-1;if(n===`range`&&i>=0){let n=l(s).slice(Math.min(i,e),Math.max(i,e)+1);t.doc.selection.selectElements([...n.filter(e=>e!==r),r])}else n===`toggle`?t.doc.selection.toggleElement(r):t.doc.selection.selectElement(r),g=r;v=y(t.doc.selection.selectedElements)}async function x(e){if(e.altKey)return;if(e.metaKey||e.ctrlKey){if(e.key.toLowerCase()!==`a`||e.shiftKey)return;e.preventDefault(),t.doc.selection.selectElements([...t.doc.elements]),v=y(t.doc.selection.selectedElements);return}let n=l(s).length-1,r;switch(e.key){case`ArrowDown`:r=Math.min(n,l(f)+1);break;case`ArrowUp`:r=Math.max(0,l(f)-1);break;case`Home`:r=0;break;case`End`:r=n;break;case`Enter`:e.preventDefault(),b(l(f),`select`);return;case` `:e.preventDefault(),b(l(f),`toggle`);return;default:return}e.preventDefault(),b(r,e.shiftKey?`range`:`select`),await S(),l(h)?.querySelector(`#${CSS.escape(`${i}-${r}`)}`)?.scrollIntoView({block:`nearest`})}let C,w=V(void 0),E=V(void 0),D=!1;function O(e){let t=e.target.closest(`[role="option"]`);if(!t||e.button!==0)return;let n=e.target.closest(`.grip`)!==null;(e.pointerType===`mouse`||n)&&(C={x:e.clientX,y:e.clientY,index:Number(t.dataset.index),pointerId:e.pointerId},n&&M(e))}function M(e){if(!C||!l(h))return;let t=l(s)[C.index];L(w,l(o).has(t)?l(s).filter(e=>l(o).has(e)):[t],!0),l(h).setPointerCapture(C.pointerId),e.preventDefault()}function ee(e){if(!C||e.pointerId!==C.pointerId)return;if(!l(w)){if(Math.hypot(e.clientX-C.x,e.clientY-C.y)<4)return;M(e)}let t=[...l(h)?.querySelectorAll(`[role="option"]`)??[]],n=t.findIndex(t=>{let n=t.getBoundingClientRect();return e.clientY<n.top+n.height/2});L(E,n<0?t.length:n,!0);let r=l(h)?.closest(`.content`);if(r){let t=r.getBoundingClientRect();e.clientY<t.top+24?r.scrollTop-=8:e.clientY>t.bottom-24&&(r.scrollTop+=8)}}function te(e){C&&e.pointerId===C.pointerId&&(l(w)&&l(E)!==void 0&&(H(l(w),l(E)),D=!0,setTimeout(()=>D=!1,0)),ne())}function ne(){C&&l(h)?.hasPointerCapture(C.pointerId)&&l(h).releasePointerCapture(C.pointerId),C=void 0,L(w,void 0),L(E,void 0)}function H(e,n){let r=new Set(e),i=l(s).filter(e=>!r.has(e)),a=l(s).slice(0,n).filter(e=>!r.has(e)).length,o=[...i.slice(0,a),...e,...i.slice(a)];o.every((e,t)=>e===l(s)[t])||(t.doc.setDrawingOrder(o.reverse()),t.doc.state.log())}function re(e){if(D){D=!1;return}let t=e.target.closest(`[role="option"]`);t&&b(Number(t.dataset.index),ji(e)?`toggle`:e.shiftKey?`range`:`select`)}var W=ra(),G=_(W);let q;K(G,22,()=>l(s),e=>e,(e,t,n)=>{let r=R(()=>Ar(t));var a=na();let c;var u=T(a);let d;var p=T(u);gt(p,{get name(){return l(r).name},size:14}),I(u);var h=A(u,2),g=T(h);{let e=R(()=>Lr(t.getState().type));ta(g,{get element(){return t},get name(){return l(e)}})}I(h);var _=A(h,2),v=T(_);gt(v,{name:`grip`,size:14}),I(_),I(a),B(e=>{k(a,`id`,`${i}-${l(n)??``}`),k(a,`data-index`,l(n)),k(a,`aria-selected`,e),c=j(a,1,`svelte-duvspt`,null,c,{active:l(n)===l(f),"drop-before":l(E)===l(n),"drop-after":l(E)===l(s).length&&l(n)===l(s).length-1}),d=N(u,``,d,{color:l(r).color})},[()=>l(o).has(t)]),m(e,a)}),I(G),P(G,e=>L(h,e),()=>l(h));var ie=A(G,2);mn(ie,{children:(e,t)=>{z();var r=p();B(()=>n(r,`Shift-click or Shift and arrow keys select a range, ${Ai??``}-click adds or removes one element. Drag them to
14
+ change the drawing order.`)),m(e,r)},$$slots:{default:!0}}),B(()=>{q=j(G,1,`elements svelte-duvspt`,null,q,{dragging:l(w)!==void 0}),k(G,`aria-activedescendant`,l(f)>=0?`${i}-${l(f)}`:void 0)}),J(`keydown`,G,x),J(`click`,G,re),J(`pointerdown`,G,O),J(`pointermove`,G,ee),J(`pointerup`,G,te),r(`pointercancel`,G,ne),r(`lostpointercapture`,G,ne),m(e,W),F()}v([`keydown`,`click`,`pointerdown`,`pointermove`,`pointerup`]);var aa=g(`<button class="row svelte-zadp4x"><!>Legend</button>`),oa=g(`<aside id="elements-drawer" class="drawer svelte-zadp4x" aria-labelledby="elements-drawer-title"><div class="header svelte-zadp4x"><h2 id="elements-drawer-title" class="svelte-zadp4x">Elements <span class="count svelte-zadp4x"> </span></h2> <!></div> <div class="content svelte-zadp4x"><button class="row svelte-zadp4x"><!>Map settings</button> <!> <hr class="svelte-zadp4x"/> <!></div></aside>`);function sa(e,r){U(r,!0);let i=R(()=>r.doc.selection),a=R(()=>r.doc.elements.length),o=R(()=>l(i).selectedElements.length===0&&!l(i).legendSelected);var s=oa(),c=T(s),u=T(c),d=A(T(u)),f=t(d,!0);I(u);var h=A(u,2);fn(h,{icon:`close`,label:`Close the elements`,title:`Close the elements (E)`,size:`sm`,get onclick(){return r.onclose}}),I(c);var g=A(c,2),_=T(g),v=T(_);gt(v,{name:`map`,size:16}),z(),I(_);var y=A(_,2),b=e=>{var t=aa(),n=T(t);gt(n,{name:`legend`,size:16}),z(),I(t),B(()=>k(t,`aria-pressed`,l(i).legendSelected)),J(`click`,t,()=>l(i).selectLegend()),m(e,t)};G(y,e=>{r.doc.legend&&e(b)});var x=A(y,4),S=e=>{ia(e,{get doc(){return r.doc}})},C=e=>{mn(e,{children:(e,t)=>{z();var n=p(`No elements yet. Draw them with the tools on the left.`);m(e,n)},$$slots:{default:!0}})};G(x,e=>{l(a)>0?e(S):e(C,-1)}),I(g),I(s),B(()=>{n(f,l(a)),k(_,`aria-pressed`,l(o))}),J(`click`,_,()=>l(i).selectElement()),m(e,s),F()}v([`click`]);var ca=100,la=class{#e=[];add(e,t){this.#e=this.#e.filter(e=>t-e.time<ca),this.#e.push({...e,time:t})}aimsAt(e,t,n){let[r]=this.#e.filter(e=>n-e.time<ca).slice(-3);if(!r)return!1;let i=t.left>=r.x?t.left:t.right;return ua(e,r,{x:i,y:t.top},{x:i,y:t.bottom})}};function ua(e,t,n,r){let i=(t,n)=>(n.x-t.x)*(e.y-t.y)-(n.y-t.y)*(e.x-t.x),a=i(t,n),o=i(n,r),s=i(r,t);return!((a<0||o<0||s<0)&&(a>0||o>0||s>0))}var da=[` `,`;`,`,`,`|`];function fa(e,t){e=e.replace(/^\uFEFF/,``);let n=ma(e),r=pa(e,n).map((e,t)=>({row:e,number:t+1})).filter(({row:e})=>e.some(e=>e.trim()!==``)),i=r.map(({row:e})=>e),a=0;for(let e of i)a=Math.max(a,e.length);for(let e of i)for(;e.length<a;)e.push(``);t??=ha(i);let o=+!!t,s=i.slice(o),c=r.slice(o).map(({number:e})=>e);return{columns:Array.from({length:a},(e,n)=>t&&i[0][n].trim()?i[0][n].trim():`Column ${n+1}`),rows:s,rowNumbers:c,delimiter:n,hasHeader:t}}function pa(e,t){let n=[],r=[],i=``,a=!1;for(let o=0;o<e.length;o++){let s=e[o];a?s===`"`&&e[o+1]===`"`?(i+=`"`,o++):s===`"`?a=!1:i+=s:s===`"`&&i===``?a=!0:s===t?(r.push(i),i=``):s===`
15
+ `||s===`\r`?(s===`\r`&&e[o+1]===`
16
+ `&&o++,r.push(i),n.push(r),r=[],i=``):i+=s}return(i!==``||r.length>0)&&(r.push(i),n.push(r)),n}function ma(e){let t=da[0],n=-1,r=e.slice(0,65536);for(let e of da){let i=pa(r,e).slice(0,20).filter(e=>e.some(e=>e.trim()!==``)).map(e=>e.length);if(i.length===0||i[0]<2)continue;let a=i.filter(e=>e===i[0]).length/i.length;if(a===1)return e;a>n&&(t=e,n=a)}return t}function ha(e){if(e.length<2)return!1;let[t,...n]=e,r=0;for(let e=0;e<t.length;e++)if(!(n.slice(0,20).filter(t=>ga(t[e])!==void 0).length<Math.min(n.length,20)/2)&&(r++,ga(t[e])!==void 0))return!1;if(r>0)return!0;let i=t.map(e=>e.trim());return!i.every(e=>e!==``)||new Set(i).size!==i.length?!1:n.every(e=>e.every((e,t)=>e.trim()!==i[t]))}function ga(e){if(e==null)return;let t=e.trim().replace(/^\+/,``);if(/^-?(\d+([.,]\d*)?|[.,]\d+)$/.test(t))return Number(t.replace(`,`,`.`))}var _a=[`address`,`street`,`housenumber`,`postcode`,`city`,`country`],va={latitude:/^(lat|latitude|breite|breitengrad|y)$/i,longitude:/^(lon|lng|long|longitude|länge|laenge|längengrad|x)$/i,address:/^(address|adresse|anschrift|location|place|standort)$/i,street:/^(street|straße|strasse|str\.?)$/i,housenumber:/^(house ?number|house no\.?|hausnummer|hausnr\.?|nr\.?|no\.?|number)$/i,postcode:/^(postcode|post ?code|postal ?code|zip|zip ?code|plz|postleitzahl)$/i,city:/^(city|town|ort|stadt|gemeinde|municipality)$/i,country:/^(country|land|staat)$/i,label:/^(name|title|titel|label|bezeichnung)$/i,popup:/^(description|beschreibung|popup|info|text|details|notes?|notiz)$/i,category:/^(category|kategorie|type|typ|art|kind|group|gruppe|class|klasse)$/i};function ya(e){let t={};for(let n of Object.keys(va)){let r=e.findIndex(e=>va[n].test(e.trim()));r>=0&&(t[n]=r)}return t}var ba=5;function xa(e,t,n){return e===`none`?{}:{near:t,zoom:e===`region`?Math.min(n,ba):n}}function Sa(e,t){let n=n=>t[n]===void 0?``:(e[t[n]]??``).trim(),r=(e,...t)=>t.filter(e=>e!==``).join(e);return r(`, `,n(`address`),r(` `,n(`street`),n(`housenumber`)),r(` `,n(`postcode`),n(`city`)),n(`country`))}var Ca=new Set([`city`,`district`,`locality`,`county`,`state`,`country`]);function wa(e){return e.toLowerCase().replace(/ß/g,`ss`).replace(/[^\p{L}\p{N}]/gu,``).replace(/(strasse|str|street|st)$/,`str`)}function Ta(e){return e.match(/\d+/)?.[0]??e.trim().toLowerCase()}function Ea(e,t,n){let r=n=>t[n]===void 0?``:(e[t[n]]??``).trim(),i=r(`street`),a=r(`housenumber`),o=r(`postcode`),s=n.address??{};return!!((i!==``||a!==``||/\d/.test(r(`address`)))&&n.type&&Ca.has(n.type)||i&&(!s.street||wa(s.street)!==wa(i))||a&&(!s.housenumber||Ta(s.housenumber)!==Ta(a))||o&&s.postcode&&s.postcode.replace(/\s/g,``)!==o.replace(/\s/g,``))}var Da=2;function Oa(e,t){let n=new Map;for(let r of e.rows){let e=r[t].trim();n.set(e,(n.get(e)??0)+1)}return[...n].map(([e,t])=>({value:e,count:t}))}function ka(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch{return new TextDecoder(`windows-1252`).decode(e)}}function Aa(e,t,n,r){let i=Oa(e,t);return i.length>30?{categories:[],tooMany:i.length}:{categories:i.map(({value:e,count:t},i)=>({value:e,count:t,color:n[i%n.length],symbol:r})),tooMany:0}}function ja(e,t){return{color:e,symbol:t}}function Ma(e,t){let n=t.map(e=>({type:`marker`,style:ja(e.color,e.symbol),label:e.value||`(empty)`}));return{...e??{entries:[]},entries:[...e?.entries??[],...n]}}async function Na(e,t,n={}){let{signal:r,onProgress:i,geocoder:a=$e,importUncertain:o=!0,...s}=n,c=Array(e.rows.length),l=[],u=(e,n)=>{let r={type:`marker`,point:n},i=t.label==null?``:e[t.label].trim();i&&(r.label=i);let a=t.category&&t.category.styles[e[t.category.column].trim()],o={...t.style,...a};Object.keys(o).length>0&&(r.style=o);let s=t.popup==null?``:e[t.popup].trim();return s&&(r.popup={text:s}),r},d=t.position;if(`latitude`in d)e.rows.forEach((t,n)=>{let r=ga(t[d.latitude]),i=ga(t[d.longitude]),a=`${t[d.latitude]}, ${t[d.longitude]}`;r===void 0||i===void 0||Math.abs(r)>90||Math.abs(i)>180?c[n]={row:e.rowNumbers[n],value:a,reason:`invalid coordinates`}:c[n]=u(t,[i,r])});else{let t=0,n=0;await Promise.all(Array.from({length:Da},async()=>{for(;t<e.rows.length;){r?.throwIfAborted();let f=t++,p=e.rows[f],m=Sa(p,d.address);if(!m)c[f]={row:e.rowNumbers[f],value:``,reason:`no address`};else try{let[t]=await a(m,{...s,limit:1,signal:r}),n=e.rowNumbers[f];t?Ea(p,d.address,t)?o?(c[f]=u(p,t.point),l.push({row:n,value:m,found:t.label})):c[f]={row:n,value:m,reason:`uncertain, found ${t.label}`}:c[f]=u(p,t.point):c[f]={row:n,value:m,reason:`address not found`}}catch(t){r?.throwIfAborted(),console.error(t),c[f]={row:e.rowNumbers[f],value:m,reason:`search failed`}}i?.(++n,e.rows.length)}}))}let f=[],p=[];for(let e of c)`type`in e?f.push(e):p.push(e);return l.sort((e,t)=>e.row-t.row),{markers:f,failed:p,uncertain:l}}function Pa(e){if(e.length===0)return;let[t,n]=e[0],[r,i]=e[0];for(let[a,o]of e)a<t&&(t=a),a>r&&(r=a),o<n&&(n=o),o>i&&(i=o);return[[t,n],[r,i]]}function Fa(){return Object.fromEntries(_a.map(e=>[e,-1]))}function Ia(e,t){return{positionType:`coordinates`,latitude:0,longitude:1,address:Fa(),bias:`region`,importUncertain:!0,label:-1,popup:-1,color:e,symbol:t,category:-1,categories:[],tooManyCategories:0,addLegend:!0}}function La(e){let t=ya(e),n=_a.some(e=>t[e]!=null),r=Fa();for(let e of _a)r[e]=t[e]??-1;return n||(r.address=0),{positionType:t.latitude==null&&n?`address`:`coordinates`,latitude:t.latitude??0,longitude:t.longitude??Math.min(1,e.length-1),address:r,label:t.label??-1,popup:t.popup??-1,category:t.category??-1}}function Ra(e,t,n,r){if(e.category=n,e.categories=[],e.tooManyCategories=0,n<0||!t)return;let{categories:i,tooMany:a}=Aa(t,n,r,e.symbol);e.categories=i,e.tooManyCategories=a}function za(e){return e.positionType===`coordinates`||_a.some(t=>e.address[t]>=0)}function Ba(e){let{positionType:t,latitude:n,longitude:r,address:i,label:a,popup:o,category:s,categories:c}=e;return{position:t===`coordinates`?{latitude:n,longitude:r}:{address:Object.fromEntries(_a.filter(e=>i[e]>=0).map(e=>[e,i[e]]))},label:a>=0?a:void 0,popup:o>=0?o:void 0,style:ja(e.color,e.symbol),category:c.length>0?{column:s,styles:Object.fromEntries(c.map(e=>[e.value,ja(e.color,e.symbol)]))}:void 0}}function Va({r:e,g:t,b:n}){e/=255,t/=255,n/=255;let r=Math.max(e,t,n),i=r-Math.min(e,t,n),a=0;return i>0&&(a=r===e?((t-n)/i+6)%6:r===t?(n-e)/i+2:(e-t)/i+4),{h:a*60,s:r===0?0:i/r,v:r}}function Ha(e,t){let n=Va(e);return n.v===0&&(n.s=t.s),(n.s===0||n.v===0)&&(n.h=t.h),n}function Ua({h:e,s:t,v:n}){let r=r=>{let i=(r+e/60)%6;return(n-n*t*Math.max(0,Math.min(i,4-i,1)))*255};return{r:r(5),g:r(3),b:r(1)}}function Wa(e,t,n){let r=({r:e,g:t,b:n},r=1)=>`rgb(${Math.round(e)} ${Math.round(t)} ${Math.round(n)}${r<1?` / ${r}`:``})`,i;switch(e){case`r`:case`g`:case`b`:i=[0,255].map(n=>r({...t,[e]:n}));break;case`alpha`:i=[r(t,0),r(t)];break;case`h`:i=[0,60,120,180,240,300,360].map(e=>r(Ua({...n,h:e})));break;case`s`:case`v`:i=[0,1].map(t=>r(Ua({...n,[e]:t})))}return`linear-gradient(to right, ${i.join(`, `)})`}var Ga=`rgb`,Ka=g(`<label class="svelte-1xbrtr9"><span aria-hidden="true"> </span><span class="sr-only"> </span></label> <!>`,1),qa=g(`<span class="sr-only">Color channels</span> <!> <div class="sliders svelte-1xbrtr9"></div>`,1);function Ja(e,r){U(r,!0);let i=H(r,`value`,15),a=V(re(Ga));function o(e){return De(e)??{r:0,g:0,b:0,alpha:1}}let s=R(()=>o(i())),c=R(()=>({r:l(s).r,g:l(s).g,b:l(s).b})),u=V(re(Va(o(i())))),f=i();d(()=>{i()!==f&&(f=i(),L(u,Ha(o(i()),l(u)),!0))});function p(e){f=Pe(e),i(f)}function h(e){L(u,e,!0),p({...Ua(e),alpha:l(s).alpha})}function g(e){L(u,Ha(e,l(u)),!0),p({...e,alpha:l(s).alpha})}function v(e){p({...l(c),alpha:e})}function y(e){L(a,Ga=e,!0)}let b=[{value:`rgb`,label:`RGB`},{value:`hsv`,label:`HSV`}],x=R(()=>{let e=l(a)===`rgb`?[`r`,`g`,`b`].map((e,t)=>({key:e,short:e.toUpperCase(),name:[`Red`,`Green`,`Blue`][t],max:255,step:1,get:()=>l(c)[e],set:t=>g({...l(c),[e]:t})})):[{key:`h`,short:`H`,name:`Hue`,max:360,step:1,unit:`°`,get:()=>l(u).h,set:e=>h({...l(u),h:e})},{key:`s`,short:`S`,name:`Saturation`,max:1,step:.01,scale:100,unit:`%`,get:()=>l(u).s,set:e=>h({...l(u),s:e})},{key:`v`,short:`V`,name:`Brightness`,max:1,step:.01,scale:100,unit:`%`,get:()=>l(u).v,set:e=>h({...l(u),v:e})}];return e.push({key:`alpha`,short:`A`,name:`Opacity`,max:1,step:.01,scale:100,unit:`%`,get:()=>l(s).alpha,set:v}),e});var S=qa(),C=_(S),w=A(C,2);dn(w,{get labelledby(){return`${r.id??``}-channels`},get value(){return l(a)},onchange:y,get options(){return b}});var E=A(w,2);K(E,21,()=>l(x),e=>e.key,(e,i)=>{var a=Ka(),o=_(a),c=T(o),d=t(c,!0),f=A(c),p=t(f,!0);I(o);var h=A(o,2),g=l(i).get,v=l(i).set;{let e=R(()=>Wa(l(i).key,l(s),l(u))),t=R(()=>l(i).key===`alpha`);Pt(h,{get id(){return`${r.id??``}-${l(i).key??``}`},min:0,get max(){return l(i).max},get step(){return l(i).step},get scale(){return l(i).scale},get unit(){return l(i).unit},get value(){return g()},set value(e){v(e)},get onchange(){return r.onchange},get track(){return l(e)},get checkered(){return l(t)},wide:!0})}B(()=>{k(o,`id`,`${r.id??``}-${l(i).key??``}-label`),k(o,`for`,`${r.id??``}-${l(i).key??``}`),k(o,`title`,l(i).name),n(d,l(i).short),n(p,l(i).name)}),m(e,a)}),I(E),B(()=>k(C,`id`,`${r.id??``}-channels`)),m(e,S),F()}var Ya=g(`<button></button>`),Xa=g(`<div class="palette svelte-1yqgqof" role="group"></div>`);function Za(e,t){U(t,!0);var n=Xa();K(n,20,()=>t.colors,e=>e,(e,n)=>{var r=Ya();let i,a;B(e=>{i=j(r,1,`swatch svelte-1yqgqof`,null,i,{active:e}),k(r,`aria-label`,n),k(r,`title`,n),a=N(r,``,a,{"--swatch-color":n})},[()=>n===t.active.toLowerCase()]),J(`click`,r,()=>t.onpick(n)),m(e,r)}),I(n),B(()=>k(n,`aria-label`,t.label)),m(e,n),F()}v([`click`]);var Qa,$a=g(`<option> </option>`),eo=g(`<!> <!>`,1),to=g(`<div class="group-label svelte-1en0rpt">Used colors</div> <!>`,1),no=g(`<div class="panel svelte-1en0rpt" popover="manual" role="dialog" tabindex="-1"><div class="title svelte-1en0rpt"><span class="name svelte-1en0rpt">Color</span> <!></div> <div class="compare svelte-1en0rpt"><button class="swatch old svelte-1en0rpt" title="Restore the old color"></button> <span class="swatch new svelte-1en0rpt" role="img"></span></div> <!> <div class="hex svelte-1en0rpt"><label class="svelte-1en0rpt">Hex</label> <!></div> <!> <!></div>`),ro=g(`<button class="color-button picker svelte-1en0rpt"><span class="swatch svelte-1en0rpt"></span> </button> <!>`,1);function io(e,i){U(i,!0);let a=H(i,`value`,15),o=H(i,`palette`,7),s=V(!1),c=V(``),u=V(re([])),d=V(void 0),f=V(void 0),p=V(re({x:0,y:0})),g;function v(e){return De(e)??{r:0,g:0,b:0,alpha:1}}let y=R(()=>v(a())),b=R(()=>nn.current.colorSchemes),x=R(()=>ln(o()?.scheme,l(b))),S=R(()=>Pe(l(y)));function w(){o()?.use(a()),i.onchange?.()}function E(){L(s,!l(s)),l(s)&&(L(u,o()?.getColors()??[],!0),L(c,l(S),!0))}function D(e){let t=e.target;l(s)&&!l(d)?.contains(t)&&!l(f)?.contains(t)&&L(s,!1)}function O(){if(!l(f)||!l(d))return;let e=l(f).getBoundingClientRect(),t={width:innerWidth,height:innerHeight};if(Qa)L(p,It(Qa,e,t),!0);else{let n=(l(d).closest(`.sidebar`)??l(d)).getBoundingClientRect();L(p,Rt(n,l(d).getBoundingClientRect().top,e,t),!0)}}function j(e){e.showPopover?.(),O()}function M(e){e.target.closest(`button`)||(e.currentTarget.setPointerCapture(e.pointerId),g={dx:e.clientX-l(p).x,dy:e.clientY-l(p).y},e.preventDefault())}function ee(e){if(!g||!l(f))return;let t={x:e.clientX-g.dx,y:e.clientY-g.dy};L(p,It(t,l(f).getBoundingClientRect(),{width:innerWidth,height:innerHeight}),!0),Qa=l(p)}function te(){g=void 0}function ne(){L(s,!1),l(d)?.focus()}function z(e){l(s)&&e.key===`Escape`&&(e.stopPropagation(),ne())}function q(e){l(s)&&e.key===`Escape`&&e.target===document.body&&ne()}function ie(e){let t=e.currentTarget.value.trim(),n=De(/^[0-9a-f]+$/i.test(t)?`#`+t:t);n&&ae(Pe(n)),e.currentTarget.value=l(S)}function ae(e){let t=De(e);t&&(a(Pe(t)),w())}function oe(e){let t=De(e);t&&ae(Pe({...t,alpha:l(y).alpha}))}var se=ro();r(`click`,C,D),r(`keydown`,C,q),r(`resize`,C,()=>l(s)&&O());var Y=_(se),ce=T(Y);let le;var ue=A(ce);I(Y),P(Y,e=>L(d,e),()=>l(d));var de=A(Y,2),fe=e=>{var s=no();let d;var g=T(s),v=A(T(g),2);fn(v,{icon:`close`,label:`Close`,title:`Close (Escape)`,size:`sm`,onclick:ne}),I(g);var y=A(g,2),C=T(y);let E;var D=A(C,2);let O;I(y);var F=A(y,2);Ja(F,{get id(){return i.id},onchange:w,get value(){return a()},set value(e){a(e)}});var R=A(F,2),V=T(R),H=A(V,2);cn(H,{get id(){return`${i.id??``}-hex`},get value(){return l(S)},maxlength:30,spellcheck:`false`,onchange:ie}),I(R);var re=A(R,2),U=e=>{var r=eo(),s=_(r);Qt(s,{class:`scheme`,"aria-label":`Color scheme`,get value(){return l(x).id},onchange:e=>{let t=e.currentTarget.value;o().scheme=t===l(b)[0].id?void 0:t,i.onchange?.()},children:(e,r)=>{var i=h(),a=_(i);K(a,17,()=>l(b),({id:e,name:t})=>e,(e,r,i,a)=>{let o=()=>l(r).id,s=()=>l(r).name;var c=$a(),u=t(c,!0),d={};B(()=>{n(u,s()),d!==(d=o())&&(c.value=(c.__value=d)??``)}),m(e,c)}),m(e,i)},$$slots:{default:!0}}),Za(A(s,2),{get colors(){return l(x).colors},get label(){return l(x).name},get active(){return a()},onpick:oe}),m(e,r)};G(re,e=>{o()&&e(U)});var q=A(re,2),se=e=>{var t=to();Za(A(_(t),2),{get colors(){return l(u)},label:`Used colors`,get active(){return a()},onpick:ae}),m(e,t)};G(q,e=>{l(u).length>0&&e(se)}),I(s),P(s,e=>L(f,e),()=>l(f)),W(s,e=>j?.(e)),B(()=>{k(s,`id`,`${i.id??``}-panel`),k(s,`aria-labelledby`,`${i.id??``}-label`),d=N(s,``,d,{left:`${l(p).x??``}px`,top:`${l(p).y??``}px`}),k(C,`aria-label`,`Old color ${l(c)??``}, restore it`),E=N(C,``,E,{"--swatch-color":l(c)}),k(D,`aria-label`,`New color ${l(S)??``}`),O=N(D,``,O,{"--swatch-color":l(S)}),k(V,`for`,`${i.id??``}-hex`)}),J(`keydown`,s,z),J(`pointerdown`,g,M),J(`pointermove`,g,ee),J(`pointerup`,g,te),r(`pointercancel`,g,te),r(`lostpointercapture`,g,te),J(`click`,C,()=>ae(l(c))),m(e,s)};G(de,e=>{l(s)&&e(fe)}),B(()=>{k(Y,`id`,i.id),k(Y,`aria-labelledby`,`${i.id??``}-label ${i.id??``}`),k(Y,`aria-expanded`,l(s)),k(Y,`aria-controls`,`${i.id??``}-panel`),le=N(ce,``,le,{"--swatch-color":l(S)}),n(ue,` ${l(S)??``}`)}),J(`click`,Y,E),J(`keydown`,Y,z),m(e,se),F()}v([`click`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var ao=g(`<option> </option>`),oo=g(`<!> <!>`,1);function so(e,r){U(r,!0);let i=H(r,`mixed`,3,!1),a=R(()=>nn.current.fonts),o=e=>l(a).find(t=>t.id===e)??Gt(e),s=R(()=>r.value===void 0?void 0:o(r.value)),c=R(()=>!l(s)||l(a).some(e=>e.id===l(s).id)),u=R(()=>At(l(c)||!l(s)?l(a):[l(s),...l(a)])),d=R(()=>l(s)?l(c)?an(l(a),l(s).family):[l(s)]:[]);function f(e){if(e===``)return r.onchange(void 0);let t=l(s)??(r.inherited?o(r.inherited):void 0),n=Zt(l(a),e,t);n&&r.onchange(n.id)}var p=oo(),g=_(p);Q(g,{get id(){return`${r.id??``}-font`},label:`Font`,get mixed(){return i()},children:(e,i)=>{{let i=R(()=>l(s)?.family??``);Qt(e,{get id(){return`${r.id??``}-font`},get value(){return l(i)},onchange:e=>f(e.currentTarget.value),children:(e,i)=>{var a=oo(),o=_(a),s=e=>{var i=ao(),a=t(i,!0);i.value=i.__value=``,B(()=>n(a,r.inherit)),m(e,i)};G(o,e=>{r.inherit&&e(s)});var c=A(o,2);K(c,16,()=>l(u),e=>e,(e,r)=>{var i=ao(),a=t(i,!0),o={};B(()=>{n(a,r),o!==(o=r)&&(i.value=(i.__value=o)??``)}),m(e,i)}),m(e,a)},$$slots:{default:!0}})}},$$slots:{default:!0}});var v=A(g,2),y=e=>{Q(e,{get id(){return`${r.id??``}-face`},label:`Style`,get mixed(){return i()},children:(e,i)=>{Qt(e,{get id(){return`${r.id??``}-face`},get value(){return l(s).id},onchange:e=>r.onchange(e.currentTarget.value),children:(e,r)=>{var i=h(),a=_(i);K(a,17,()=>l(d),({id:e,face:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).face;var o=ao(),s=t(o,!0),c={};B(()=>{n(s,a()),c!==(c=i())&&(o.value=(o.__value=c)??``)}),m(e,o)}),m(e,i)},$$slots:{default:!0}})},$$slots:{default:!0}})};G(v,e=>{l(s)&&e(y)}),m(e,p),F()}var co=g(`<canvas></canvas>`),lo=g(`<button class="item svelte-11koyaz"> </button>`),uo=g(`<button class="item svelte-11koyaz"><canvas class="svelte-11koyaz"></canvas><br/><span class="title svelte-11koyaz"> </span></button>`),fo=g(`<p class="empty svelte-11koyaz" role="status"> </p>`),po=g(`<!> <div class="list svelte-11koyaz"><!> <!></div> <!>`,1),mo=g(`<button class="picker"><!> <!></button> <!>`,1);function ho(e,r){U(r,!0);let a,s=V(void 0),c=V(``),u=window.devicePixelRatio||1,d=H(r,`symbol`,15),f=H(r,`noneLabel`,3,`No symbol`),g=Ut(),v=V(0);o(()=>{let e=matchMedia(`(prefers-color-scheme: dark)`),t=()=>te(v);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)});let y=e=>vt(e,`--color-text`,`#000`),x=(e,t)=>g.drawSymbol(e,t,{color:y(e)}),S=(e,t)=>g.drawSymbol(e,t,{color:y(e),halo:vt(e,`--color-bg`,`#fff`),haloWidth:2}),C=R(()=>d()?Nt(d()):void 0);function w(e){d(e),a?.close()}function E(){L(c,``),l(s)?.focus()}function D(e,t){e.key===`Enter`&&l(c).trim()&&t!==void 0&&(e.preventDefault(),w(t))}var O=mo(),j=_(O),M=T(j);i(M,()=>`${d()} ${l(v)}`,e=>{var t=h(),n=_(t),r=e=>{var t=co();N(t,`width:20px;height:20px;vertical-align:middle`),W(t,(e,t)=>x?.(e,t),()=>l(C).name),B(()=>{k(t,`width`,20*u),k(t,`height`,20*u)}),m(e,t)};G(n,e=>{l(C)&&e(r)}),m(e,t)});var ee=A(M,2),ne=e=>{var t=p();B(()=>n(t,l(C).title)),m(e,t)},z=e=>{var t=p();B(()=>n(t,f())),m(e,t)},re=e=>{var t=p(`Select Symbol`);m(e,t)};G(ee,e=>{l(C)?e(ne):d()===``?e(z,1):e(re,-1)}),I(j);var q=A(j,2);P(Dt(q,{title:`Select a symbol`,onopen:E,children:(e,r)=>{var a=h(),o=_(a);b(o,sn,null,e=>{let r=R(()=>Qe(mt(),l(c))),a=R(()=>Yt(f(),l(c)));var o=po(),d=_(o);cn(d,{class:`filter`,type:`search`,placeholder:`Filter, e.g. cafe`,"aria-label":`Filter symbols`,autocomplete:`off`,onkeydown:e=>D(e,l(r)[0]?.name??(l(a)?``:void 0)),get element(){return l(s)},set element(e){L(s,e,!0)},get value(){return l(c)},set value(e){L(c,e,!0)}});var p=A(d,2);N(p,``,{},{"--list-icon-size":`32px`,"--list-item-size":`48px`,"--max-columns":16});var g=T(p),y=e=>{var r=lo(),i=t(r,!0);B(()=>n(i,f())),J(`click`,r,()=>w(``)),m(e,r)};G(g,e=>{l(a)&&e(y)});var b=A(g,2);i(b,()=>l(v),e=>{var i=h(),a=_(i);K(a,17,()=>l(r),e=>e.name,(e,r)=>{var i=uo(),a=T(i);W(a,(e,t)=>S?.(e,t),()=>l(r).name);var o=A(a,2),s=t(o,!0);I(i),B(()=>{k(i,`title`,l(r).name),k(a,`width`,32*u),k(a,`height`,32*u),n(s,l(r).title)}),J(`click`,i,()=>w(l(r).name)),m(e,i)}),m(e,i)}),I(p);var x=A(p,2),C=e=>{var r=fo(),i=t(r);B(e=>n(i,`No symbol matches “${e??``}”.`),[()=>l(c).trim()]),m(e,r)};G(x,e=>{l(r).length===0&&!l(a)&&e(C)}),m(e,o)}),m(e,a)},$$slots:{default:!0}}),e=>a=e,()=>a),B(()=>{k(j,`id`,r.id),k(j,`aria-labelledby`,r.id?`${r.id}-label ${r.id}`:void 0)}),J(`click`,j,()=>a?.open()),m(e,O),F()}v([`click`]);var go=g(`<option>(none)</option>`),_o=g(`<option> </option>`),vo=g(`<!> <!>`,1),yo=g(`<th class="svelte-17p4q42"> </th>`),bo=g(`<td class="svelte-17p4q42"> </td>`),xo=g(`<tr></tr>`),So=g(`<p> </p>`),Co=g(`<option>near the map view</option> <option>in the region of the map view</option> <option>anywhere</option>`,1),wo=g(`<!> <!> <!>`,1),To=g(`<p class="warning svelte-17p4q42"> </p>`),Eo=g(`<div class="category svelte-17p4q42"><span> </span> <div class="picker svelte-17p4q42"><!></div> <span hidden=""> </span> <!></div>`),Do=g(`<fieldset class="categories svelte-17p4q42"><legend>Style per category</legend> <!> <!></fieldset>`),Oo=g(`<!> <div class="preview svelte-17p4q42"><table class="svelte-17p4q42"><thead><tr></tr></thead><tbody></tbody></table> <!></div> <div class="mapping svelte-17p4q42"><fieldset class="svelte-17p4q42"><legend>Position</legend> <!> <!></fieldset> <fieldset class="svelte-17p4q42"><legend>Content</legend> <!> <!></fieldset> <fieldset class="svelte-17p4q42"><legend>Style</legend> <!> <!> <!></fieldset></div> <!> <div class="buttons svelte-17p4q42"><!> <!></div>`,1);function ko(e,r){let i=u();U(r,!0);let a=(e,a=M,o=M,s=M,c=M,u)=>{let d=O(()=>ee(u?.(),!1));Q(e,{get id(){return`${i}-${a()??``}`},get label(){return o()},children:(e,o)=>{{let o=R(()=>s()());Qt(e,{get id(){return`${i}-${a()??``}`},get value(){return l(o)},onchange:e=>c()(Number(e.currentTarget.value)),children:(e,i)=>{var a=vo(),o=_(a),s=e=>{var t=go();t.value=t.__value=-1,m(e,t)};G(o,e=>{l(d)&&e(s)});var c=A(o,2);K(c,17,()=>r.table.columns,y,(e,r,i)=>{var a=_o(),o=t(a,!0);a.value=a.__value=i,B(()=>n(o,l(r))),m(e,a)}),m(e,a)},$$slots:{default:!0}})}},$$slots:{default:!0}})},o=H(r,`settings`,15),s=H(r,`hasHeader`,15),c={address:`Address`,street:`Street`,housenumber:`House number`,postcode:`Postcode`,city:`City`,country:`Country`};function d(e){Ra(o(),r.table,e,r.colors)}let f=[{value:`coordinates`,label:`Latitude and longitude`},{value:`address`,label:`Address (searched)`}];var h=Oo(),g=_(h);Z(g,{onchange:()=>d(o().category),get checked(){return s()},set checked(e){s(e)},children:(e,t)=>{z();var n=p(`The first row contains the column names`);m(e,n)},$$slots:{default:!0}});var v=A(g,2),b=T(v),x=T(b),S=T(x);K(S,21,()=>r.table.columns,y,(e,r)=>{var i=yo(),a=t(i,!0);B(()=>n(a,l(r))),m(e,i)}),I(S),I(x);var C=A(x);K(C,21,()=>r.table.rows.slice(0,5),y,(e,r)=>{var i=xo();K(i,21,()=>l(r),y,(e,r)=>{var i=bo(),a=t(i,!0);B(()=>n(a,l(r))),m(e,i)}),I(i),m(e,i)}),I(C),I(b);var w=A(b,2),E=e=>{var i=So(),a=t(i);B(e=>n(a,`… and ${e??``}`),[()=>ut(r.table.rows.length-5,`more row`)]),m(e,i)};G(w,e=>{r.table.rows.length>5&&e(E)}),I(v);var D=A(v,2),j=T(D),N=T(j),P=A(N,2);dn(P,{get labelledby(){return`${i}-position`},get value(){return o().positionType},onchange:e=>o(o().positionType=e,!0),get options(){return f}});var te=A(P,2),L=e=>{var t=vo(),n=_(t);a(n,()=>`latitude`,()=>`Latitude`,()=>()=>o().latitude,()=>e=>o(o().latitude=e,!0));var r=A(n,2);a(r,()=>`longitude`,()=>`Longitude`,()=>()=>o().longitude,()=>e=>o(o().longitude=e,!0)),m(e,t)},ne=e=>{var t=wo(),n=_(t);K(n,16,()=>_a,e=>e,(e,t)=>{a(e,()=>t,()=>c[t],()=>()=>o().address[t],()=>e=>o(o().address[t]=e,!0),()=>!0)});var r=A(n,2);Q(r,{get id(){return`${i}-bias`},label:`Prefer places`,children:(e,t)=>{Qt(e,{get id(){return`${i}-bias`},get value(){return o().bias},onchange:e=>o(o().bias=e.currentTarget.value,!0),children:(e,t)=>{var n=Co(),r=_(n);r.value=r.__value=`view`;var i=A(r,2);i.value=i.__value=`region`;var a=A(i,2);a.value=a.__value=`none`,m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var s=A(r,2);Z(s,{get checked(){return o().importUncertain},set checked(e){o(o().importUncertain=e,!0)},children:(e,t)=>{z();var n=p(`Also import uncertain matches (e.g. another street found)`);m(e,n)},$$slots:{default:!0}}),m(e,t)};G(te,e=>{o().positionType===`coordinates`?e(L):e(ne,-1)}),I(j);var V=A(j,2),re=A(T(V),2);a(re,()=>`label`,()=>`Label`,()=>()=>o().label,()=>e=>o(o().label=e,!0),()=>!0),a(A(re,2),()=>`popup`,()=>`Popup`,()=>()=>o().popup,()=>e=>o(o().popup=e,!0),()=>!0),I(V);var W=A(V,2),q=A(T(W),2);Q(q,{get id(){return`${i}-color`},label:`Color`,children:(e,t)=>{io(e,{get id(){return`${i}-color`},get palette(){return r.doc.colors},get value(){return o().color},set value(e){o(o().color=e,!0)}})},$$slots:{default:!0}});var J=A(q,2);Q(J,{get id(){return`${i}-symbol`},label:`Symbol`,children:(e,t)=>{var n=()=>o().symbol,r=e=>o(o().symbol=e??``,!0);ho(e,{get id(){return`${i}-symbol`},get symbol(){return n()},set symbol(e){r(e)}})},$$slots:{default:!0}}),a(A(J,2),()=>`category`,()=>`Category`,()=>()=>o().category,()=>d,()=>!0),I(W),I(D);var ie=A(D,2),ae=e=>{var r=To(),i=t(r);B(()=>n(i,`The category column has ${o().tooManyCategories??``} different values. Categories are for a few values (at most
17
+ 30), like kinds of places.`)),m(e,r)},oe=e=>{var a=Do(),s=A(T(a),2);K(s,19,()=>o().categories,e=>e.value,(e,a,o)=>{var s=Eo(),c=T(s),u=t(c),d=A(c,2);io(T(d),{get id(){return`${i}-category-${l(o)??``}`},get palette(){return r.doc.colors},get value(){return l(a).color},set value(e){l(a).color=e}}),I(d);var f=A(d,2),p=t(f),h=A(f,2),g=()=>l(a).symbol,_=e=>l(a).symbol=e??``;ho(h,{get id(){return`${i}-category-${l(o)??``}-symbol`},get symbol(){return g()},set symbol(e){_(e)}}),I(s),B(()=>{k(c,`id`,`${i}-category-${l(o)??``}-label`),n(u,`${(l(a).value||`(empty)`)??``} (${l(a).count??``})`),k(f,`id`,`${i}-category-${l(o)??``}-symbol-label`),n(p,`Symbol of ${(l(a).value||`(empty)`)??``}`)}),m(e,s)});var c=A(s,2);Z(c,{get checked(){return o().addLegend},set checked(e){o(o().addLegend=e,!0)},children:(e,t)=>{z();var n=p(`Add the categories to the legend`);m(e,n)},$$slots:{default:!0}}),I(a),m(e,a)};G(ie,e=>{o().tooManyCategories>0?e(ae):o().categories.length>0&&e(oe,1)});var se=A(ie,2),Y=T(se);X(Y,{variant:`ghost`,size:`md`,get onclick(){return r.onback},children:(e,t)=>{z();var n=p(`Back`);m(e,n)},$$slots:{default:!0}});var ce=A(Y,2);{let e=R(()=>r.table.rows.length===0||!za(o()));X(ce,{variant:`primary`,size:`md`,get disabled(){return l(e)},get onclick(){return r.onimport},children:(e,t)=>{z();var i=p();B(e=>n(i,`Import ${e??``}`),[()=>ut(r.table.rows.length,`row`)]),m(e,i)},$$slots:{default:!0}})}I(se),B(()=>k(N,`id`,`${i}-position`)),m(e,h),F()}var Ao=g(`<p>A CSV or TSV file, or a table copied from a spreadsheet, with one place per row.</p> <!> <input type="file" hidden="" accept=".csv,.tsv,.txt,text/csv,text/tab-separated-values"/> <label>Or paste the table here:</label> <!> <!>`,1),jo=g(`<p> </p> <progress></progress> <!>`,1),Mo=g(`<p class="error svelte-k3lpz9" role="alert"> </p>`),No=g(`<p> </p>`),Po=g(`<li> </li>`),Fo=g(`<p>These rows were placed where the search found something else. Please check them:</p> <ul class="failed svelte-k3lpz9" aria-label="Uncertain matches"></ul>`,1),Io=g(`<p>These rows could not be imported:</p> <ul class="failed svelte-k3lpz9" aria-label="Rows not imported"></ul>`,1),Lo=g(`<!> <!> <!> <!>`,1),Ro=g(`<div class="import svelte-k3lpz9"><!></div>`);function zo(e,r){let i=u();U(r,!0);let a=H(r,`doc`,7),o,s=V(void 0),c=V(`input`),d=V(``),f=V(!0),h=R(()=>l(d).trim()?fa(l(d),l(f)):void 0),g=V(re(Ia(un.symbol.color,un.symbol.symbol))),v=R(()=>ln(a().colors.scheme,nn.current.colorSchemes).colors),y=V(re({done:0,total:0})),b,x=V(0),S=V(re([])),C=V(re([])),w=V(``);function E(){L(c,`input`),L(d,``),o?.open()}async function D(e){let t=e.currentTarget.files?.[0];t&&(L(d,ka(await t.arrayBuffer()),!0),O(void 0))}function O(e){let t=fa(l(d),e);L(f,t.hasHeader,!0);let{category:n,...r}=La(t.columns);Object.assign(l(g),r),Ra(l(g),l(h),n,l(v)),L(c,`mapping`)}async function j(){if(!l(h))return;L(c,`importing`),L(w,``),L(y,{done:0,total:l(h).rows.length},!0),b=new AbortController;let e=a().view.map.getCenter();try{let t=await Na(l(h),Ba(l(g)),{signal:b.signal,language:navigator.language,...xa(l(g).bias,[e.lng,e.lat],a().view.map.getZoom()),importUncertain:l(g).importUncertain,onProgress:(e,t)=>L(y,{done:e,total:t},!0)});M(t.markers.map(e=>e.point)),a().addElements(t.markers),l(g).addLegend&&l(g).categories.length>0&&t.markers.length>0&&(a().legend=Ma(a().legend,l(g).categories)),t.markers.length>0&&a().state.log(),L(x,t.markers.length,!0),L(S,t.failed,!0),L(C,t.uncertain,!0),L(c,`done`)}catch(e){if(b.signal.aborted){L(c,`mapping`);return}console.error(e),L(w,e instanceof Error?e.message:String(e),!0),L(x,0),L(S,[],!0),L(C,[],!0),L(c,`done`)}}function M(e){let t=Pa(e);t&&a().view.map.fitBounds(t,{padding:50,maxZoom:15})}var N={open:E};return P(Dt(e,{title:`Import a table as markers`,onclose:()=>b?.abort(),children:(e,r)=>{var u=Ro(),E=T(u),M=e=>{var t=Ao(),n=A(_(t),2);X(n,{class:`file`,size:`md`,onclick:()=>l(s)?.click(),children:(e,t)=>{z();var n=p(`Choose a file…`);m(e,n)},$$slots:{default:!0}});var r=A(n,2);P(r,e=>L(s,e),()=>l(s));var a=A(r,2),o=A(a,2);jt(o,{get id(){return`${i}-paste`},class:`table`,rows:8,get value(){return l(d)},set value(e){L(d,e,!0)}});var c=A(o,2);{let e=R(()=>!l(d).trim());X(c,{variant:`primary`,size:`md`,get disabled(){return l(e)},onclick:()=>O(void 0),children:(e,t)=>{z();var n=p(`Continue`);m(e,n)},$$slots:{default:!0}})}B(()=>k(a,`for`,`${i}-paste`)),J(`change`,r,D),m(e,t)},N=e=>{ko(e,{get table(){return l(h)},get doc(){return a()},get colors(){return l(v)},onback:()=>L(c,`input`),onimport:j,get settings(){return l(g)},set settings(e){L(g,e,!0)},get hasHeader(){return l(f)},set hasHeader(e){L(f,e,!0)}})},ee=e=>{var r=jo(),i=_(r),a=t(i),o=A(i,2),s=A(o,2);X(s,{size:`md`,onclick:()=>b?.abort(),children:(e,t)=>{z();var n=p(`Cancel`);m(e,n)},$$slots:{default:!0}}),B(()=>{n(a,`Searching the addresses: ${l(y).done??``} of ${l(y).total??``}`),k(o,`max`,l(y).total),ne(o,l(y).done)}),m(e,r)},te=e=>{var r=Lo(),i=_(r),a=e=>{var r=Mo(),i=t(r);B(()=>n(i,`The import failed: ${l(w)??``}`)),m(e,r)},s=e=>{var r=No(),i=t(r);B(e=>n(i,`Imported ${e??``}.`),[()=>ut(l(x),`marker`)]),m(e,r)};G(i,e=>{l(w)?e(a):e(s,-1)});var c=A(i,2),u=e=>{var r=Fo(),i=A(_(r),2);K(i,21,()=>l(C),({row:e,value:t,found:n})=>e,(e,r)=>{let i=()=>l(r).row,a=()=>l(r).value,o=()=>l(r).found;var s=Po(),c=t(s);B(()=>n(c,`Row ${i()??``}: ${a()??``} — found ${o()??``}`)),m(e,s)}),I(i),m(e,r)};G(c,e=>{l(C).length>0&&e(u)});var d=A(c,2),f=e=>{var r=Io(),i=A(_(r),2);K(i,21,()=>l(S),({row:e,value:t,reason:n})=>e,(e,r)=>{let i=()=>l(r).row,a=()=>l(r).value,o=()=>l(r).reason;var s=Po(),c=t(s);B(()=>n(c,`Row ${i()??``}: ${a()?`${a()} — `:``}${o()??``}`)),m(e,s)}),I(i),m(e,r)};G(d,e=>{l(S).length>0&&e(f)});var h=A(d,2);X(h,{variant:`primary`,size:`md`,onclick:()=>o?.close(),children:(e,t)=>{z();var n=p(`Done`);m(e,n)},$$slots:{default:!0}}),m(e,r)};G(E,e=>{l(c)===`input`?e(M):l(c)===`mapping`&&l(h)?e(N,1):l(c)===`importing`?e(ee,2):l(c)===`done`&&e(te,3)}),I(u),m(e,u)},$$slots:{default:!0}}),e=>o=e,()=>o),F(N)}v([`change`]);var Bo=g(`<tr><th scope="row" class="svelte-1nxbjyd"> </th><td class="svelte-1nxbjyd"><kbd class="svelte-1nxbjyd"> </kbd></td></tr>`),Vo=g(`<table class="svelte-1nxbjyd"><caption class="svelte-1nxbjyd"> </caption><tbody></tbody></table>`),Ho=g(`<div class="groups svelte-1nxbjyd"></div>`);function Uo(e,i){U(i,!0);let a=V(void 0);function o(){l(a)?.open()}let s=/Mac|iPhone|iPad/.test(navigator.platform),c=s?`⌘`:`Ctrl+`,u=s?`⌥`:`Alt+`,d=s?`⇧`:`Shift+`,f=s?`⌫`:`Delete`,p=[{title:`Tools`,keys:[[`Select`,`V`],[`Marker`,`M`],[`Line`,`L`],[`Polygon`,`P`],[`Circle`,`C`],[`Elements`,`E`]]},{title:`View`,keys:[[`Show all elements`,`0`],[`Fullscreen, and back`,`F, and Escape`],[`Close the preview`,`Escape`]]},{title:`Drawing`,keys:[[`Finish a line or polygon`,`Enter, or double-click`],[`Remove the last node`,f],[`Cancel`,`Escape`]]},{title:`Editing`,keys:[[`Undo`,`${c}Z`],[`Redo`,s?`${d}${c}Z`:`Ctrl+Shift+Z, or Ctrl+Y`],[`Add to the selection, or remove`,`${c}click`],[`Zoom to a box`,`${d}drag`],[`Duplicate`,`${c}D, or ${u}drag`],[`Bring forward, send backward`,`${c}↑ ↓`],[`Bring to front, send to back`,`${d}${c}↑ ↓`],[`Copy style`,`${u}${c}C`],[`Paste style`,`${u}${c}V`],[`Delete the node or the elements`,f],[`Deselect`,`Escape`]]},{title:`Shared map`,keys:[[`Move a side outwards`,`${d}← → ↑ ↓`],[`Move a side inwards`,`${u}${d}← → ↑ ↓`],[`Back to the map`,`Escape`]]},{title:`List of elements`,keys:[[`Choose an element`,`↑ ↓, or click`],[`Select a range`,`${d}↑ ↓, or ${d}click`],[`Add or remove one`,`Space, or ${c}click`],[`Select all`,`${c}A`]]}];function h(e){e.key!==`?`||jr(e)||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),o())}var g={open:o};return r(`keydown`,C,h),P(Dt(e,{size:`small`,title:`Keyboard shortcuts`,children:(e,r)=>{var i=Ho();K(i,21,()=>p,({title:e,keys:t})=>e,(e,r)=>{let i=()=>l(r).title,a=()=>l(r).keys;var o=Vo(),s=T(o),c=t(s,!0),u=A(s);K(u,21,a,([e,t])=>e,(e,r)=>{var i=R(()=>D(l(r),2));let a=()=>l(i)[0],o=()=>l(i)[1];var s=Bo(),c=T(s),u=t(c,!0),d=A(c),f=T(d),p=t(f,!0);I(d),I(s),B(()=>{n(u,a()),n(p,o())}),m(e,s)}),I(u),I(o),B(()=>n(c,i())),m(e,o)}),I(i),m(e,i)},$$slots:{default:!0}}),e=>L(a,e,!0),()=>l(a)),F(g)}var Wo=new class{#e=V(!1);get active(){return l(this.#e)}set active(e){L(this.#e,e,!0)}constructor(){typeof document<`u`&&(this.active=document.fullscreenElement!==null,document.addEventListener(`fullscreenchange`,()=>this.active=document.fullscreenElement!==null))}get available(){return typeof document<`u`&&document.fullscreenEnabled===!0}async toggle(){if(this.available)try{document.fullscreenElement?await document.exitFullscreen():await document.documentElement.requestFullscreen()}catch(e){console.warn(`Fullscreen is not possible`,e)}}onKeydown=e=>{jr(e)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toUpperCase()===`F`&&this.available&&(e.preventDefault(),this.toggle())}},Go=g(`<kbd aria-hidden="true" class="svelte-v4f4cr"> </kbd>`),Ko=g(`<button class="item svelte-v4f4cr" role="menuitem"><span class="name svelte-v4f4cr"> </span> <!></button>`),qo=g(`<button role="menuitem" aria-haspopup="menu"><span class="name svelte-v4f4cr"> </span> <span class="chevron svelte-v4f4cr"><!></span></button> <div class="submenu svelte-v4f4cr" role="menu" tabindex="-1"><!></div>`,1),Jo=g(`<button role="menuitem"><!></button>`),Yo=g(`<div class="recent svelte-v4f4cr"><button class="item svelte-v4f4cr" role="menuitem"><span class="name svelte-v4f4cr"> <span class="changed svelte-v4f4cr"> </span></span></button> <!></div>`),Xo=g(`<p class="empty svelte-v4f4cr">No maps yet</p>`),Zo=g(`<!> <!> <!>`,1),Qo=g(`<!> <!>`,1),$o=g(`<div class="main-menu svelte-v4f4cr"><!> <div class="menu svelte-v4f4cr" role="menu" aria-label="Menu" tabindex="-1"><!> <!> <!> <!> <!> <!> <!> <!> <!> <hr class="svelte-v4f4cr"/> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <hr class="svelte-v4f4cr"/> <!> <a class="item svelte-v4f4cr" role="menuitem" href="https://github.com/versatiles-org/versatiles-map-editor/issues" target="_blank" rel="noopener noreferrer"><span class="name svelte-v4f4cr">Report an issue</span> <!> <span class="sr-only">(opens in a new tab)</span></a></div></div> <!> <!>`,1);function es(i,o){let s=u();U(o,!0);let c=(e,i=M,a=M,o)=>{let s=O(()=>ee(o?.(),()=>({}),!0));var c=Ko(),u=T(c),d=t(u,!0),f=A(u,2),p=e=>{var r=Go(),i=t(r,!0);B(()=>n(i,te?l(s).keys[0]:l(s).keys[1])),m(e,r)};G(f,e=>{l(s).keys&&e(p)}),I(c),B(()=>{c.disabled=l(s).disabled,k(c,`aria-keyshortcuts`,l(s).keys?.[2]),n(d,i())}),J(`click`,c,()=>W(a())),r(`pointerenter`,c,e=>{e.pointerType===`mouse`&&l(v)&&!e.currentTarget.closest(`.submenu`)&&(fe(e)?pe(()=>ve()):ve())}),m(e,c)},f=(e,i=M,o=M,c=M,u)=>{let d=O(()=>ee(u?.(),o()));var f=qo(),p=_(f);let h;var g=T(p),y=t(g,!0),b=A(g,2),x=T(b);gt(x,{name:`chevron`,size:14}),I(b),I(p),P(p,e=>Y[i()]=e,()=>Y?.[i()]);var S=A(p,2);let C;var w=T(S);a(w,c),I(S),P(S,e=>se[i()]=e,()=>se?.[i()]),B(()=>{h=j(p,1,`item svelte-v4f4cr`,null,h,{open:l(v)===i()}),k(p,`aria-expanded`,l(v)===i()),k(p,`aria-controls`,`${s}-${i()??``}`),n(y,o()),k(S,`id`,`${s}-${i()??``}`),k(S,`aria-label`,l(d)),k(S,`hidden`,l(v)!==i()),C=N(S,``,C,{left:l(ce)&&`${l(ce).left}px`,top:l(ce)&&`${l(ce).top}px`,"max-height":l(ce)&&`${l(ce).maxHeight}px`})}),J(`click`,p,e=>_e(i(),e.detail===0)),r(`pointerenter`,p,e=>{e.pointerType===`mouse`&&(l(v)&&l(v)!==i()&&fe(e)?pe(()=>_e(i())):_e(i()))}),r(`pointerenter`,S,he),m(e,f)},g=V(!1),v=V(void 0),y=V(void 0),b=V(void 0),x=V(void 0),w=V(void 0),E=R(()=>o.doc.state.history),D=R(()=>o.doc.selection.selectedElements.length>0),te=/Mac|iPhone|iPad/.test(navigator.platform);async function ne(){if(l(g))return H();L(g,!0),L(v,void 0),await S(),q()[0]?.focus()}function H(e=!0){L(g,!1),L(v,void 0),he(),e&&l(y)?.focus()}function W(e){H(),e()}function q(e){let t=e?se[e]:l(b),n=e?`[role^="menuitem"]`:`:scope > [role^="menuitem"]`;return[...t?.querySelectorAll(n)??[]].filter(e=>!e.disabled&&e.checkVisibility())}function ie(e){let t=Object.keys(se).find(t=>se[t]?.contains(e.target));if(t&&(e.key===`ArrowLeft`||e.key===`Escape`)){e.preventDefault(),e.stopPropagation(),ve(!0);return}let n=Object.keys(Y).find(t=>Y[t]===e.target);if(n&&e.key===`ArrowRight`){e.preventDefault(),_e(n,!0);return}let r=q(t),i=r.indexOf(document.activeElement),a;switch(e.key){case`ArrowDown`:a=(i+1)%r.length;break;case`ArrowUp`:a=(i-1+r.length)%r.length;break;case`Home`:a=0;break;case`End`:a=r.length-1;break;case`Escape`:e.preventDefault(),e.stopPropagation(),H();return;case`Tab`:H(!1);return;default:return}e.preventDefault(),r[a]?.focus()}function ae(e){Wo.onKeydown(e),!(e.defaultPrevented||jr(e)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)&&e.key===`0`&&(e.preventDefault(),o.doc.showAllElements())}function oe(e){let t=e.target;l(g)&&!l(b)?.contains(t)&&!l(y)?.contains(t)&&H(!1)}let se=re({}),Y=re({}),ce=V(void 0),le=new la,ue,de;function fe(e){let t=l(v)&&se[l(v)];return!!t&&le.aimsAt({x:e.clientX,y:e.clientY},t.getBoundingClientRect(),performance.now())}function pe(e){ue=e,clearTimeout(de),de=setTimeout(me,300)}function me(){let e=ue;he(),e?.()}function he(){clearTimeout(de),ue=void 0}function ge(e){le.add({x:e.clientX,y:e.clientY},performance.now()),ue&&(fe(e)?pe(ue):me())}async function _e(e,t=!1){he(),L(v,e,!0),e===`examples`&&xe(),await S(),ye(),t&&q(e)[0]?.focus()}function ve(e=!1){he();let t=l(v);L(v,void 0),e&&t&&Y[t]?.focus()}function ye(){let e=l(v),t=e&&Y[e],n=e&&se[e];if(!t||!n||!l(b))return;let r=l(b).getBoundingClientRect(),i=t.getBoundingClientRect(),a=n.offsetWidth,o=innerHeight-16,s=Math.min(n.scrollHeight,o),c=r.right-4;c+a>innerWidth-8&&(c=Math.max(8,r.left-a+4));let u=Math.max(8,Math.min(i.top-6,innerHeight-8-s));L(ce,{left:c,top:u,maxHeight:o},!0)}d(()=>{l(be),l(Se),l(v),S().then(ye)});let be=V(void 0);async function xe(){L(be,l(be)??(await e(async()=>{let{examples:e}=await import(`../chunks/CMToF36d.js`);return{examples:e}},[],import.meta.url)).examples,!0)}let Se=V(re([]));d(()=>{if(!l(g))return;let e=async()=>L(Se,await o.sync.recent(),!0);return e(),o.sync.onChange(()=>void e())});let Ce=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}),we=V(void 0);async function Te(e){if(l(we)!==e.id){L(we,e.id,!0);return}L(we,void 0);let t=l(Se).findIndex(({id:t})=>t===e.id);await o.sync.deleteRecent(e.id),L(Se,await o.sync.recent(),!0),await S();let n=[...se.recent?.querySelectorAll(`.recent`)??[]];([...n[Math.min(t,n.length-1)]?.querySelectorAll(`[role="menuitem"]`)??[]].find(e=>!e.disabled)??q(`recent`)[0]??Y.recent)?.focus()}d(()=>{l(g)||L(we,void 0)});var Ee=$o();r(`pointerdown`,C,oe),r(`keydown`,C,ae),r(`resize`,C,ye);var De=_(Ee),Oe=T(De);fn(Oe,{icon:`menu`,label:`Menu`,"aria-haspopup":`menu`,get"aria-expanded"(){return l(g)},get"aria-controls"(){return`${s}-menu`},onclick:ne,get element(){return l(y)},set element(e){L(y,e,!0)}});var ke=A(Oe,2);{let e=e=>{var t=h(),n=_(t);K(n,17,()=>l(be)??[],e=>e.id,(e,t)=>{c(e,()=>l(t).title,()=>()=>o.files.openExample(l(t)))}),m(e,t)},r=e=>{var r=h(),i=_(r);K(i,17,()=>l(Se),e=>e.id,(e,r)=>{var i=Yo(),a=T(i),s=T(a),c=T(s),u=A(c),d=t(u,!0);I(s),I(a);var f=A(a,2),h=e=>{var t=Jo();let n;var i=T(t),a=e=>{var t=p(`Delete`);m(e,t)},o=e=>{gt(e,{name:`trash`,size:14})};G(i,e=>{l(we)===l(r).id?e(a):e(o,-1)}),I(t),B(()=>{n=j(t,1,`item delete svelte-v4f4cr`,null,n,{confirming:l(we)===l(r).id}),k(t,`aria-label`,l(we)===l(r).id?`Really delete ${l(r).name}`:`Delete ${l(r).name}`),k(t,`title`,l(we)===l(r).id?`Click again to delete`:`Delete`)}),J(`click`,t,()=>Te(l(r))),m(e,t)};G(f,e=>{!l(r).current&&!l(r).openElsewhere&&e(h)}),I(i),B(e=>{a.disabled=l(r).openElsewhere,k(a,`aria-current`,l(r).current?`true`:void 0),n(c,`${l(r).name??``} `),n(d,e)},[()=>l(r).current?`This map`:l(r).openElsewhere?`Open in another tab`:Ce.format(l(r).changed)]),J(`click`,a,()=>W(()=>o.sync.openRecent(l(r).id))),m(e,i)},e=>{var t=Xo();m(e,t)}),m(e,r)},i=e=>{var t=Zo(),n=_(t);c(n,()=>`GeoJSON…`,()=>()=>o.files.importGeoJSON());var r=A(n,2);c(r,()=>`KML (Google Earth)…`,()=>()=>o.files.importKML());var i=A(r,2);c(i,()=>`Table (CSV/TSV)…`,()=>()=>l(x)?.open()),m(e,t)},a=e=>{var t=Qo(),n=_(t);c(n,()=>`GeoJSON`,()=>()=>o.files.exportGeoJSON());var r=A(n,2);c(r,()=>`KML (Google Earth)`,()=>()=>o.files.exportKML()),m(e,t)};var Ae=T(ke);c(Ae,()=>`New map`,()=>()=>o.files.newFile());var je=A(Ae,2);c(je,()=>`Open…`,()=>()=>o.files.openFile());var Me=A(je,2);f(Me,()=>`examples`,()=>`Open example`,()=>e,()=>`Examples`);var Ne=A(Me,2);f(Ne,()=>`recent`,()=>`Recent maps`,()=>r);var Pe=A(Ne,2);c(Pe,()=>`Download…`,()=>()=>o.files.downloadFile());var Fe=A(Pe,2);f(Fe,()=>`import`,()=>`Import`,()=>i);var Ie=A(Fe,2);f(Ie,()=>`export`,()=>`Export`,()=>a);var Le=A(Ie,2);c(Le,()=>`Shared map…`,()=>()=>o.doc.visibleArea.open());var Re=A(Le,2),ze=e=>{c(e,()=>Wo.active?`Exit fullscreen`:`Fullscreen`,()=>()=>Wo.toggle(),()=>({keys:[`F`,`F`,`F`]}))};G(Re,e=>{Wo.available&&e(ze)});var Be=A(Re,4);c(Be,()=>`Undo`,()=>()=>o.doc.state.undo(),()=>({disabled:!l(E).undoEnabled,keys:[`⌘Z`,`Ctrl+Z`,`Meta+Z Control+Z`]}));var Ve=A(Be,2);c(Ve,()=>`Redo`,()=>()=>o.doc.state.redo(),()=>({disabled:!l(E).redoEnabled,keys:[`⇧⌘Z`,`Ctrl+Shift+Z`,`Meta+Shift+Z Control+Shift+Z`]}));var He=A(Ve,2);c(He,()=>`Duplicate`,()=>()=>ri(o.doc),()=>({disabled:!l(D),keys:[`⌘D`,`Ctrl+D`,`Meta+D Control+D`]}));var Ue=A(He,2);c(Ue,()=>`Bring to front`,()=>()=>ii(o.doc,`front`),()=>({disabled:!l(D),keys:[`⇧⌘↑`,`Ctrl+Shift+↑`,`Meta+Shift+ArrowUp Control+Shift+ArrowUp`]}));var We=A(Ue,2);c(We,()=>`Bring forward`,()=>()=>ii(o.doc,`forward`),()=>({disabled:!l(D),keys:[`⌘↑`,`Ctrl+↑`,`Meta+ArrowUp Control+ArrowUp`]}));var Ge=A(We,2);c(Ge,()=>`Send backward`,()=>()=>ii(o.doc,`backward`),()=>({disabled:!l(D),keys:[`⌘↓`,`Ctrl+↓`,`Meta+ArrowDown Control+ArrowDown`]}));var Ke=A(Ge,2);c(Ke,()=>`Send to back`,()=>()=>ii(o.doc,`back`),()=>({disabled:!l(D),keys:[`⇧⌘↓`,`Ctrl+Shift+↓`,`Meta+Shift+ArrowDown Control+Shift+ArrowDown`]}));var qe=A(Ke,2);{let e=R(()=>({disabled:!oi(o.doc),keys:[`⌥⌘C`,`Ctrl+Alt+C`,`Meta+Alt+C Control+Alt+C`]}));c(qe,()=>`Copy style`,()=>()=>si(o.doc),()=>l(e))}var Je=A(qe,2);{let e=R(()=>({disabled:!ci(o.doc),keys:[`⌥⌘V`,`Ctrl+Alt+V`,`Meta+Alt+V Control+Alt+V`]}));c(Je,()=>`Paste style`,()=>()=>mi(o.doc),()=>l(e))}var Ye=A(Je,2);c(Ye,()=>`Delete`,()=>()=>ai(o.doc),()=>({disabled:!l(D),keys:[`⌫`,`Del`,`Delete`]}));var Xe=A(Ye,4);c(Xe,()=>`Keyboard shortcuts`,()=>()=>l(w)?.open(),()=>({keys:[`?`,`?`,`?`]}));var Ze=A(Xe,2),Qe=A(T(Ze),2);gt(Qe,{name:`external`,size:14}),z(2),I(Ze),I(ke),P(ke,e=>L(b,e),()=>l(b)),J(`click`,Ze,()=>H())}I(De);var $e=A(De,2);P(zo($e,{get doc(){return o.doc}}),e=>L(x,e,!0),()=>l(x));var et=A($e,2);P(Uo(et,{}),e=>L(w,e,!0),()=>l(w)),B(()=>{k(ke,`id`,`${s}-menu`),k(ke,`hidden`,!l(g))}),J(`keydown`,ke,ie),J(`pointermove`,ke,ge),r(`scroll`,ke,ye),m(i,Ee),F()}v([`click`,`keydown`,`pointermove`]);var ts=g(`<div class="preview svelte-1cx698p"><iframe title="Preview of the shared map" class="svelte-1cx698p"></iframe></div>`);function ns(e,t){U(t,!0);let n=H(t,`open`,15),i=new URL(`view/`,window.location.href.replace(/#.*$/,``)).href,a=V(void 0),o=V(``);d(()=>{if(!n())return;let e=()=>L(o,`${i}#${t.doc.state.getHash()}`);e();let r=t.doc.state.events.on(`change`,e);return()=>t.doc.state.events.off(`change`,r)}),d(()=>{if(!n())return;let e=e=>{jr(e)||(e.key===`Escape`&&(e.preventDefault(),n(!1)),e.stopPropagation())};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})});function s(){l(a)?.contentWindow?.addEventListener(`keydown`,e=>{e.key===`Escape`&&n(!1)}),l(a)?.focus()}var c=h(),u=_(c),f=e=>{var n=ts();let i;var c=T(n);P(c,e=>L(a,e),()=>l(a)),I(n),B(()=>{i=N(n,``,i,{top:`${t.top??``}px`}),k(c,`src`,l(o))}),r(`load`,c,s),x(c),m(e,n)};G(u,e=>{n()&&e(f)}),m(e,c),F()}function rs(e,t){if(e.length===0)throw Error(`A group needs at least one object`);return{get value(){return e[0][t]},set value(n){for(let r of e)r[t]=n},get mixed(){let n=e[0][t];return e.some(e=>e[t]!==n)}}}var is=g(`<span class="picture svelte-yosfe2"></span>`),as=g(`<!> <!>`,1),os=g(`<!> <!> <!>`,1);function ss(e,t){let n=u();U(t,!0);let r=H(t,`colorLabel`,3,`Color`),i=()=>t.doc.state.log(),a=R(()=>rs(t.layers,`color`)),o=R(()=>rs(t.layers,`pattern`)),s=R(()=>rs(t.layers,`patternScale`)),c=R(()=>rs(t.layers,`patternCoverage`)),d=R(()=>t.layers.some(e=>e.pattern!==`solid`)),f={solid:`Solid`,"diagonal-up":`Diagonal up`,"diagonal-down":`Diagonal down`,horizontal:`Horizontal`,vertical:`Vertical`,cross:`Cross`,"diagonal-cross":`Diagonal cross`,dots:`Dots`,"diagonal-dots":`Diagonal dots`},p=ie.map(e=>({value:e,label:f[e]})),h=(e,t=2.5)=>`repeating-linear-gradient(${e}deg, currentColor 0 ${t}px, transparent ${t}px 6px)`,g={solid:`color-mix(in srgb, currentColor 60%, transparent)`,"diagonal-up":h(-45),"diagonal-down":h(45),horizontal:h(0),vertical:h(90),cross:`${h(0,1.5)}, ${h(90,1.5)}`,"diagonal-cross":`${h(45,1.5)}, ${h(-45,1.5)}`,dots:`radial-gradient(circle, currentColor 1.6px, transparent 2px) 0 0 / 6px 6px`,"diagonal-dots":[0,4].map(e=>`radial-gradient(circle, currentColor 1.6px, transparent 2px) ${e}px ${e}px / 8px 8px`).join(`, `)};var v=os(),y=_(v);Q(y,{get label(){return r()},get id(){return`${n}-color`},get mixed(){return l(a).mixed},children:(e,r)=>{io(e,{get id(){return`${n}-color`},onchange:i,get palette(){return t.doc.colors},get value(){return l(a).value},set value(e){l(a).value=e}})},$$slots:{default:!0}});var b=A(y,2);Q(b,{label:`Pattern`,get id(){return`${n}-pattern`},get mixed(){return l(o).mixed},children:(e,t)=>{Kt(e,{get id(){return`${n}-pattern`},get value(){return l(o).value},get mixed(){return l(o).mixed},onchange:e=>{l(o).value=e,i()},get options(){return p},picture:(e,t=M)=>{var n=is();let r;B(()=>r=N(n,``,r,{background:g[t()]})),m(e,n)},$$slots:{picture:!0}})},$$slots:{default:!0}});var x=A(b,2),S=e=>{var t=as(),r=_(t);Q(r,{get id(){return`${n}-patternScale`},label:`Pattern size`,get mixed(){return l(s).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-patternScale`},get min(){return Xe[0]},get max(){return Xe[1]},step:.5,onchange:i,unit:`×`,get value(){return l(s).value},set value(e){l(s).value=e}})},$$slots:{default:!0}});var a=A(r,2);Q(a,{get id(){return`${n}-patternCoverage`},label:`Coverage`,get mixed(){return l(c).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-patternCoverage`},get min(){return Je[0]},get max(){return Je[1]},step:.05,scale:100,onchange:i,unit:`%`,get value(){return l(c).value},set value(e){l(c).value=e}})},$$slots:{default:!0}}),m(e,t)};G(x,e=>{l(d)&&e(S)}),m(e,v),F()}var cs=(e,t=M,n=M)=>{var r=fs(),i=T(r),a=T(i),o=A(a),s=e=>{var t=ls();m(e,t)},c=e=>{var t=us();m(e,t)},l=e=>{var t=ds();m(e,t)};G(o,e=>{t()===`triangle`?e(s):t()===`chevron`?e(c,1):t()===`circle`&&e(l,2)}),I(i),I(r),B(()=>{k(i,`transform`,n()?void 0:`matrix(-1 0 0 1 26 0)`),k(a,`x2`,t()===`triangle`?17:21)}),m(e,r)},ls=s(`<path d="M24 6L16 1.5V10.5z" fill="currentColor"></path>`),us=s(`<path d="M18 2.5L21.5 6L18 9.5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>`),ds=s(`<circle cx="21" cy="6" r="3.5" fill="currentColor"></circle>`),fs=s(`<svg width="26" height="12" viewBox="0 0 26 12" aria-hidden="true"><g><line x1="3" y1="6" y2="6" stroke="currentColor" stroke-width="2"></line><!></g></svg>`),ps=g(`<div class="arrows svelte-4o4ofh"><span class="caption svelte-4o4ofh">Start</span> <!> <span class="caption svelte-4o4ofh">End</span> <!> <span class="swap svelte-4o4ofh"><!></span></div>`),ms=g(`<!> <!>`,1);function hs(e,t){let n=u();U(t,!0);let r=()=>t.doc.state.log(),i=R(()=>rs(t.layers,`arrowStart`)),a=R(()=>rs(t.layers,`arrowEnd`)),o=R(()=>rs(t.layers,`arrowSize`)),s=R(()=>t.layers.some(e=>e.arrowStart!==`none`||e.arrowEnd!==`none`)),c={none:`None`,triangle:`Triangle`,chevron:`Chevron`,circle:`Circle`},d=we.map(e=>({value:e,label:c[e]}));function f(){for(let e of t.layers)[e.arrowStart,e.arrowEnd]=[e.arrowEnd,e.arrowStart];r()}var p=ms(),h=_(p);{let e=R(()=>l(i).mixed||l(a).mixed);Q(h,{get id(){return`${n}-arrows`},label:`Arrowheads`,get mixed(){return l(e)},group:!0,children:(e,t)=>{var o=ps(),s=T(o),c=A(s,2);dn(c,{layout:`pictures`,get labelledby(){return`${n}-start-label`},get value(){return l(i).value},get mixed(){return l(i).mixed},onchange:e=>{l(i).value=e,r()},get options(){return d},picture:(e,t=M)=>{cs(e,t,()=>!1)},$$slots:{picture:!0}});var u=A(c,2),p=A(u,2);dn(p,{layout:`pictures`,get labelledby(){return`${n}-end-label`},get value(){return l(a).value},get mixed(){return l(a).mixed},onchange:e=>{l(a).value=e,r()},get options(){return d},picture:(e,t=M)=>{cs(e,t,()=>!0)},$$slots:{picture:!0}});var h=A(p,2),g=T(h);fn(g,{icon:`swap`,label:`Swap the arrowheads of start and end`,size:`sm`,onclick:f}),I(h),I(o),B(()=>{k(s,`id`,`${n}-start-label`),k(u,`id`,`${n}-end-label`)}),m(e,o)},$$slots:{default:!0}})}var g=A(h,2),v=e=>{Q(e,{get id(){return`${n}-size`},label:`Arrowhead size`,get mixed(){return l(o).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-size`},min:1,max:8,step:.5,onchange:r,unit:`×`,get value(){return l(o).value},set value(e){l(o).value=e}})},$$slots:{default:!0}})};G(g,e=>{l(s)&&e(v)}),m(e,p),F()}var gs=s(`<svg width="28" height="10" aria-hidden="true"><line x1="3" y1="5" x2="25" y2="5" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line></svg>`),_s=g(`<!> <!> <!>`,1);function vs(e,n){let r=u();U(n,!0);let i=H(n,`colorLabel`,3,`Color`),a=()=>n.doc.state.log(),o=R(()=>rs(n.layers,`color`)),s=R(()=>rs(n.layers,`width`)),c=R(()=>rs(n.layers,`dash`)),d={solid:`Solid`,dashed:`Dashed`,dotted:`Dotted`,"long-dash":`Long dash`,"dash-dot":`Dash-dot`},f=ve.map(e=>({value:e,label:d[e]}));function p(e,t=2){let n=wt[e];return n.length>1?n.map(e=>e*t).join(` `):void 0}var h=_s(),g=_(h);Q(g,{get id(){return`${r}-color`},get label(){return i()},get mixed(){return l(o).mixed},children:(e,t)=>{io(e,{get id(){return`${r}-color`},onchange:a,get palette(){return n.doc.colors},get value(){return l(o).value},set value(e){l(o).value=e}})},$$slots:{default:!0}});var v=A(g,2);Q(v,{get id(){return`${r}-dash`},label:`Style`,get mixed(){return l(c).mixed},group:!0,children:(e,n)=>{dn(e,{layout:`pictures`,get labelledby(){return`${r}-dash-label`},get value(){return l(c).value},get mixed(){return l(c).mixed},onchange:e=>{l(c).value=e,a()},get options(){return f},picture:(e,n=M)=>{var r=gs(),i=t(r);B(e=>k(i,`stroke-dasharray`,e),[()=>p(n())]),m(e,r)},$$slots:{picture:!0}})},$$slots:{default:!0}});var y=A(v,2);Q(y,{get id(){return`${r}-width`},label:`Width`,get mixed(){return l(s).mixed},children:(e,t)=>{Pt(e,{get id(){return`${r}-width`},min:.5,max:20,step:.5,onchange:a,unit:`px`,get value(){return l(s).value},set value(e){l(s).value=e}})},$$slots:{default:!0}}),m(e,h),F()}var ys=g(`<section class="inspector-section svelte-ewoxxi"><div class="heading svelte-ewoxxi"><h3 class="svelte-ewoxxi"> </h3> <!></div> <!></section>`);function bs(e,r){let i=u();var o=ys(),s=T(o),c=T(s),l=t(c,!0),d=A(c,2);a(d,()=>r.heading??M),I(s);var f=A(s,2);a(f,()=>r.children),I(o),B(()=>{k(o,`aria-labelledby`,`${i}-title`),k(c,`id`,`${i}-title`),n(l,r.title)}),m(e,o)}var xs=g(`<!> <!> <!>`,1),Ss=g(`<!> <!> <!> <!> <!>`,1),Cs=g(`<!> <!>`,1);function ws(e,t){let n=u();U(t,!0);let r=()=>t.doc.state.log(),i=R(()=>rs(t.layers,`symbol`)),a=R(()=>rs(t.layers,`color`)),o=R(()=>rs(t.layers,`rotation`)),s=R(()=>rs(t.layers,`flat`)),c=R(()=>rs(t.layers,`haloWidth`)),d=R(()=>rs(t.layers,`label`)),f=R(()=>rs(t.layers,`labelPosition`)),p=R(()=>rs(t.layers,`labelColor`)),h=R(()=>rs(t.layers,`haloColor`)),g=R(()=>rs(t.layers,`size`)),v=R(()=>rs(t.layers,`labelSize`)),y=R(()=>rs(t.layers,`labelFont`)),b=R(()=>l(i).mixed||l(i).value!==``),x={auto:[2,2],right:[2,3],left:[2,1],top:[1,2],bottom:[3,2],"top-right":[1,3],"top-left":[1,1],"bottom-right":[3,3],"bottom-left":[3,1]},S={right:`Right`,left:`Left`,top:`Above`,bottom:`Below`,"top-right":`Above right`,"top-left":`Above left`,"bottom-right":`Below right`,"bottom-left":`Below left`},C=R(()=>t.layers.map(e=>e.symbol!==``)),w=R(()=>l(C).every(Boolean)?{label:`Automatic`,short:`Auto`}:l(C).some(Boolean)?{label:`Automatic, or on the point without symbol`,short:`Auto/Center`}:{label:`On the point`,short:`Center`}),T=R(()=>je.map(e=>({value:e,label:e===`auto`?l(w).label:S[e],cell:x[e],short:e===`auto`?l(w).short:void 0})));var E=xs(),D=_(E);bs(D,{title:`Symbol`,children:(e,c)=>{var u=xs(),d=_(u);Q(d,{get id(){return`${n}-symbol`},label:`Symbol`,get mixed(){return l(i).mixed},children:(e,t)=>{var a=()=>l(i).value,o=e=>{l(i).value=e??``,r()};ho(e,{get id(){return`${n}-symbol`},get symbol(){return a()},set symbol(e){o(e)}})},$$slots:{default:!0}});var f=A(d,2),p=e=>{var i=xs(),s=_(i);Q(s,{get id(){return`${n}-color`},label:`Color`,get mixed(){return l(a).mixed},children:(e,i)=>{io(e,{get id(){return`${n}-color`},onchange:r,get palette(){return t.doc.colors},get value(){return l(a).value},set value(e){l(a).value=e}})},$$slots:{default:!0}});var c=A(s,2);Q(c,{get id(){return`${n}-size`},label:`Size`,get mixed(){return l(g).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-size`},min:.5,max:3,step:.1,onchange:r,unit:`×`,get value(){return l(g).value},set value(e){l(g).value=e}})},$$slots:{default:!0}});var u=A(c,2);Q(u,{get id(){return`${n}-rotate`},label:`Rotation`,get mixed(){return l(o).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-rotate`},min:-180,max:180,step:15,onchange:r,unit:`°`,get value(){return l(o).value},set value(e){l(o).value=e}})},$$slots:{default:!0}}),m(e,i)};G(f,e=>{l(b)&&e(p)});var h=A(f,2);Q(h,{get id(){return`${n}-flat`},label:`Flat on the map`,get mixed(){return l(s).mixed},children:(e,t)=>{Z(e,{get id(){return`${n}-flat`},title:`Lay the symbol and the label flat on the map, so they turn and tilt with it; else they face the viewer`,onchange:r,get checked(){return l(s).value},set checked(e){l(s).value=e}})},$$slots:{default:!0}}),m(e,u)},$$slots:{default:!0}});var O=A(D,2);bs(O,{title:`Label`,children:(e,i)=>{var a=Ss(),o=_(a);Q(o,{get id(){return`${n}-label`},label:`Label`,get mixed(){return l(d).mixed},children:(e,t)=>{{let t=R(()=>Math.min(4,Math.max(1,(l(d).value??``).split(`
18
+ `).length)));jt(e,{get id(){return`${n}-label`},class:`label`,get rows(){return l(t)},title:`Shift and Enter adds a line`,onchange:r,onkeydown:e=>{e.key!==`Enter`||e.shiftKey||e.isComposing||(e.preventDefault(),r())},get value(){return l(d).value},set value(e){l(d).value=e}})}},$$slots:{default:!0}});var s=A(o,2);Q(s,{get id(){return`${n}-labelColor`},label:`Text color`,get mixed(){return l(p).mixed},children:(e,i)=>{io(e,{get id(){return`${n}-labelColor`},onchange:r,get palette(){return t.doc.colors},get value(){return l(p).value},set value(e){l(p).value=e}})},$$slots:{default:!0}});var c=A(s,2);{let e=R(()=>l(y).value||void 0);so(c,{get id(){return`${n}-font`},get value(){return l(e)},get mixed(){return l(y).mixed},inherit:`Like the background map`,get inherited(){return t.doc.font},onchange:e=>{l(y).value=e??``,r()}})}var u=A(c,2);Q(u,{get id(){return`${n}-labelSize`},label:`Text size`,get mixed(){return l(v).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-labelSize`},min:.5,max:3,step:.1,onchange:r,unit:`×`,get value(){return l(v).value},set value(e){l(v).value=e}})},$$slots:{default:!0}});var h=A(u,2);Q(h,{get id(){return`${n}-labelPosition`},label:`Label position`,get mixed(){return l(f).mixed},group:!0,children:(e,t)=>{dn(e,{layout:`grid`,get labelledby(){return`${n}-labelPosition-label`},get value(){return l(f).value},get mixed(){return l(f).mixed},onchange:e=>{l(f).value=e,r()},get options(){return l(T)}})},$$slots:{default:!0}}),m(e,a)},$$slots:{default:!0}}),bs(A(O,2),{title:`Halo`,children:(e,i)=>{var a=Cs(),o=_(a);Q(o,{get id(){return`${n}-halo`},label:`Halo`,get mixed(){return l(c).mixed},children:(e,t)=>{Pt(e,{get id(){return`${n}-halo`},min:0,max:3,step:.5,onchange:r,unit:`px`,get value(){return l(c).value},set value(e){l(c).value=e}})},$$slots:{default:!0}});var s=A(o,2);Q(s,{get id(){return`${n}-haloColor`},label:`Halo color`,get mixed(){return l(h).mixed},children:(e,i)=>{io(e,{get id(){return`${n}-haloColor`},onchange:r,get palette(){return t.doc.colors},get value(){return l(h).value},set value(e){l(h).value=e}})},$$slots:{default:!0}}),m(e,a)},$$slots:{default:!0}}),m(e,E),F()}var Ts=g(`<div role="alert"><!></div>`),Es=g(`<!> <!> <!>`,1);function Ds(e,t){let n=u();U(t,!0);let r=R(()=>t.circles.map(e=>e.measurements.find(e=>e.kind===`radius`)?.value??0)),i=R(()=>l(r).some(e=>e!==l(r)[0])),a=R(()=>l(i)?``:dt(l(r)[0])),o=R(()=>l(i)?``:Ht(it(l(r)[0]))),s=V(void 0);function c(e,n){let r=l(e===`radius`?a:o),i=ht(r)||(e===`radius`?`m`:`m²`),c=e===`radius`?lt(n.value,i):ot(n.value,i),u=c===void 0?void 0:e===`radius`?c:bt(c);if(u===void 0||!(u>0&&u<=at))L(s,e,!0);else{L(s,void 0);for(let e of t.circles)e.setRadius(u);t.doc.state.log(),n.value=e===`radius`?dt(u):Ht(it(u))}}bs(e,{title:`Size`,children:(e,t)=>{var r=Es(),u=_(r);Q(u,{get id(){return`${n}-radius`},label:`Radius`,get mixed(){return l(i)},children:(e,t)=>{{let t=R(()=>l(i)?`Mixed`:void 0),r=R(()=>l(s)===`radius`);cn(e,{get id(){return`${n}-radius`},get value(){return l(a)},get placeholder(){return l(t)},get"aria-invalid"(){return l(r)},onchange:e=>c(`radius`,e.currentTarget)})}},$$slots:{default:!0}});var d=A(u,2);Q(d,{get id(){return`${n}-area`},label:`Area`,get mixed(){return l(i)},children:(e,t)=>{{let t=R(()=>l(i)?`Mixed`:void 0),r=R(()=>l(s)===`area`);cn(e,{get id(){return`${n}-area`},get value(){return l(o)},get placeholder(){return l(t)},get"aria-invalid"(){return l(r)},onchange:e=>c(`area`,e.currentTarget)})}},$$slots:{default:!0}});var f=A(d,2),h=e=>{var t=Ts(),n=T(t);mn(n,{children:(e,t)=>{z();var n=p(`Type a size, e.g. “500 m”, “1.5 km” or “3 ha”.`);m(e,n)},$$slots:{default:!0}}),I(t),m(e,t)};G(f,e=>{l(s)&&e(h)}),m(e,r)},$$slots:{default:!0}}),F()}var Os=g(`<span class="mixed svelte-1oy73by">(mixed)</span>`),ks=g(`<label class="switch svelte-1oy73by" title="Draw an outline"><!> <!></label>`),As=g(`<!> <!>`,1),js=g(`<!> <div role="status"><!></div> <!>`,1),Ms=g(`<output> </output>`),Ns=g(`<!> <!> <!> <!> <!> <!> <!> <!>`,1);function Ps(e,r){let a=u();U(r,!0);let o=R(()=>r.elements.length===1?r.elements[0]:void 0),s=()=>r.doc.state.log();function c(e){let t=r.elements.map(t=>t.getStyleLayers()[e]);return t.every(e=>e!==void 0)?t:[]}let f=R(()=>r.elements.every(e=>e.getState().type===`circle`)?r.elements:[]),g=R(()=>c(`symbol`)),v=R(()=>c(`fill`)),y=R(()=>c(`stroke`)),b=R(()=>l(v).length>0?rs(l(y),`visible`):void 0),x=R(()=>l(y).every(e=>e.canHaveArrows)?l(y):[]),S=R(()=>r.elements.every(e=>e instanceof kt)?r.elements:[]),C=R(()=>l(S).length>0?rs(l(S),`smooth`):void 0),w=R(()=>{if(!l(o))return;let e=Fr(l(o)).trim(),t=r.doc.legend?.entries??[];return Qr(l(o).getState(),e,t)===`different`?e:void 0}),E=V(void 0);d(()=>{r.elements,L(E,void 0)});var D=h(),O=_(D);i(O,()=>r.elements,e=>{var i=Ns(),c=_(i),u=e=>{ws(e,{get layers(){return l(g)},get doc(){return r.doc}})};G(c,e=>{l(g).length>0&&e(u)});var d=A(c,2),S=e=>{var t=As(),n=_(t);bs(n,{title:`Fill`,children:(e,t)=>{ss(e,{get layers(){return l(v)},get doc(){return r.doc}})},$$slots:{default:!0}}),bs(A(n,2),{title:`Outline`,heading:e=>{var t=ks(),n=T(t),r=e=>{var t=Os();m(e,t)};G(n,e=>{l(b).mixed&&e(r)});var i=A(n,2);Z(i,{"aria-label":`Draw outline`,onchange:s,get checked(){return l(b).value},set checked(e){l(b).value=e}}),I(t),m(e,t)},children:(e,t)=>{var n=h(),i=_(n),a=e=>{vs(e,{get layers(){return l(y)},get doc(){return r.doc}})};G(i,e=>{l(b).value&&e(a)}),m(e,n)},$$slots:{heading:!0,default:!0}}),m(e,t)},D=e=>{bs(e,{title:`Line`,children:(e,t)=>{var n=As(),i=_(n);vs(i,{get layers(){return l(y)},get doc(){return r.doc}});var a=A(i,2),o=e=>{hs(e,{get layers(){return l(x)},get doc(){return r.doc}})};G(a,e=>{l(x).length>0&&e(o)}),m(e,n)},$$slots:{default:!0}})};G(d,e=>{l(v).length>0&&l(b)?e(S):l(y).length>0&&e(D,1)});var O=A(d,2),j=e=>{bs(e,{title:`Shape`,children:(e,t)=>{var i=As(),o=_(i);Q(o,{get id(){return`${a}-smooth`},label:`Smooth`,get mixed(){return l(C).mixed},children:(e,t)=>{Z(e,{get id(){return`${a}-smooth`},title:`Draw as a smooth curve through the points`,onchange:s,get checked(){return l(C).value},set checked(e){l(C).value=e}})},$$slots:{default:!0}});var c=A(o,2),u=e=>{nt(e,{children:(e,t)=>{X(e,{onclick:()=>gi(r.doc),children:(e,t)=>{z();var r=p();B(()=>n(r,l(x).length>1?`Reverse lines`:`Reverse line`)),m(e,r)},$$slots:{default:!0}})},$$slots:{default:!0}})};G(c,e=>{l(x).length>0&&e(u)}),m(e,i)},$$slots:{default:!0}})};G(O,e=>{l(C)&&e(j)});var M=A(O,2),N=e=>{Ds(e,{get circles(){return l(f)},get doc(){return r.doc}})};G(M,e=>{l(f).length>0&&e(N)});var ee=A(M,2),P=e=>{mn(e,{children:(e,t)=>{z();var n=p(`These elements have no style properties in common.`);m(e,n)},$$slots:{default:!0}})};G(ee,e=>{r.elements.length>1&&l(g).length===0&&l(y).length===0&&e(P)});var te=A(ee,2),F=e=>{bs(e,{title:`Popup`,children:(e,t)=>{jt(e,{class:`popup`,rows:3,"aria-label":`Popup`,onchange:s,placeholder:`Shown on click: **bold**, [link](https://…)`,get value(){return l(o).popup},set value(e){l(o).popup=e}})},$$slots:{default:!0}})};G(te,e=>{l(o)&&e(F)});var ne=A(te,2);bs(ne,{title:`Legend`,children:(e,t)=>{var i=js(),a=_(i);nt(a,{children:(e,t)=>{X(e,{onclick:()=>L(E,ui(r.doc),!0),children:(e,t)=>{z();var n=p(`Add to legend`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var o=A(a,2),s=T(o);mn(s,{children:(e,t)=>{var i=h(),a=_(i),o=e=>{var t=p();B(()=>n(t,r.elements.length>1?`An entry for each style of the elements, with the label or popup text that they share.`:`An entry with its style, and its label or popup text.`)),m(e,t)},s=e=>{var t=p();B(()=>n(t,`The legend shows ${r.elements.length>1?`these styles`:`this style`} already.`)),m(e,t)},c=e=>{var t=p();B(()=>n(t,`Added ${l(E)===1?`an entry`:`${l(E)} entries`} to the legend.`)),m(e,t)};G(a,e=>{l(E)===void 0?e(o):l(E)===0?e(s,1):e(c,-1)}),m(e,i)},$$slots:{default:!0}}),I(o);var c=A(o,2),u=e=>{mn(e,{children:(e,t)=>{z();var r=p();B(()=>n(r,`The legend shows “${l(w)??``}” with a different style.`)),m(e,r)},$$slots:{default:!0}})};G(c,e=>{l(w)&&l(E)===void 0&&e(u)}),m(e,i)},$$slots:{default:!0}});var V=A(ne,2),H=e=>{bs(e,{title:`Info`,children:(e,r)=>{var i=h(),s=_(i);K(s,19,()=>l(o).measurements.map(e=>rt(e)),({label:e,value:t})=>e,(e,r,i)=>{let o=()=>l(r).label,s=()=>l(r).value;Q(e,{get id(){return`${a}-measurement-${l(i)??``}`},get label(){return o()},children:(e,r)=>{var o=Ms(),c=t(o,!0);B(()=>{k(o,`id`,`${a}-measurement-${l(i)??``}`),n(c,s())}),m(e,o)},$$slots:{default:!0}})}),m(e,i)},$$slots:{default:!0}})},re=R(()=>l(o)?.getStyleLayers().stroke&&l(f).length===0);G(V,e=>{l(re)&&e(H)}),m(e,i)}),m(e,D),F()}var Fs=g(`<option> </option>`),Is=g(`<!> <!>`,1),Ls=g(`<!> <!> <!> <!> <!>`,1),Rs=g(`<option>Browser language</option> <option>Local names</option> <!> <!>`,1),zs=g(`<!> <!> <!>`,1);function Bs(e,r){let i=u();U(r,!0);let a=H(r,`doc`,7),o=R(()=>zt(a().background)),s=new Intl.DisplayNames([navigator.language,`en`],{type:`language`}),c=Ft.map(e=>({id:e,name:s.of(e)??e})).sort((e,t)=>e.name.localeCompare(t.name)),d=[{value:`vector`,label:`OpenStreetMap`},{value:`satellite`,label:`Satellite`}],f=[{value:`normal`,label:`Normal`},{value:`fewer`,label:`Fewer`},{value:`none`,label:`None`}],h=R(()=>l(o).colors.saturation),g=R(()=>l(o).colors.black),v=R(()=>l(o).colors.white),y=()=>({saturation:l(h),black:l(g),white:l(v)}),b=R(()=>l(o).labelSize),x=R(()=>l(o).haloWidth),S=R(()=>JSON.stringify(l(o).colors)!==JSON.stringify(Mt));function C(e,t){let n=Lt({...y(),[e]:t},e,l(o).base);L(g,n.black),L(v,n.white)}let w=R(()=>l(o).base===`satellite`&&(l(g)<0||l(v)>1));function T(e,t){a().setBackground(qt(a().background,{[e]:t})),a().state.log()}function E(e){a().mapLabelsOnTop=e,a().state.log()}var D=zs(),O=_(D);bs(O,{title:`Background map`,children:(e,r)=>{var a=Ls(),s=_(a);Q(s,{get id(){return`${i}-base`},label:`Base map`,group:!0,children:(e,t)=>{dn(e,{get labelledby(){return`${i}-base-label`},get value(){return l(o).base},onchange:e=>T(`base`,e),get options(){return d}})},$$slots:{default:!0}});var c=A(s,2),u=e=>{Q(e,{get id(){return`${i}-theme`},label:`Theme`,children:(e,r)=>{Qt(e,{get id(){return`${i}-theme`},get value(){return l(o).theme},onchange:e=>T(`theme`,e.currentTarget.value),children:(e,r)=>{var i=Is(),a=_(i),s=e=>{var r=Fs(),i=t(r,!0),a={};B(()=>{n(i,l(o).theme),a!==(a=l(o).theme)&&(r.value=(r.__value=a)??``)}),m(e,r)},c=R(()=>!$t.some(e=>e.id===l(o).theme));G(a,e=>{l(c)&&e(s)});var u=A(a,2);K(u,17,()=>$t,({id:e,name:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).name;var o=Fs(),s=t(o,!0),c={};B(()=>{n(s,a()),c!==(c=i())&&(o.value=(o.__value=c)??``)}),m(e,o)}),m(e,i)},$$slots:{default:!0}})},$$slots:{default:!0}})};G(c,e=>{l(o).base===`vector`&&e(u)});var f=A(c,2),p=e=>{Q(e,{get id(){return`${i}-buildings3d`},label:`3D buildings`,children:(e,t)=>{{let t=R(()=>l(o).buildings===`extruded`);Z(e,{get id(){return`${i}-buildings3d`},title:`Raise the buildings to their heights, which a tilted map shows when zoomed in`,get checked(){return l(t)},onchange:e=>T(`buildings`,e.currentTarget.checked?`extruded`:`flat`)})}},$$slots:{default:!0}})};G(f,e=>{l(o).base===`vector`&&e(p)});var h=A(f,2),g=e=>{var t=Is(),n=_(t);Q(n,{get id(){return`${i}-streets`},label:`Streets`,children:(e,t)=>{Z(e,{get id(){return`${i}-streets`},get checked(){return l(o).streets},onchange:e=>T(`streets`,e.currentTarget.checked)})},$$slots:{default:!0}});var r=A(n,2);Q(r,{get id(){return`${i}-borders`},label:`Borders`,children:(e,t)=>{Z(e,{get id(){return`${i}-borders`},get checked(){return l(o).borders},onchange:e=>T(`borders`,e.currentTarget.checked)})},$$slots:{default:!0}}),m(e,t)};G(h,e=>{l(o).base===`satellite`&&e(g)});var v=A(h,2),y=e=>{var t=Is(),n=_(t);Q(n,{get id(){return`${i}-hillshade`},label:`Hillshade`,children:(e,t)=>{Z(e,{get id(){return`${i}-hillshade`},title:`Shade hills and mountains with light and shadow`,get checked(){return l(o).hillshade},onchange:e=>T(`hillshade`,e.currentTarget.checked)})},$$slots:{default:!0}});var r=A(n,2);Q(r,{get id(){return`${i}-terrain`},label:`Terrain`,children:(e,t)=>{Z(e,{get id(){return`${i}-terrain`},title:`Raise hills and mountains, which a tilted map shows`,get checked(){return l(o).terrain},onchange:e=>T(`terrain`,e.currentTarget.checked)})},$$slots:{default:!0}}),m(e,t)};G(v,e=>{nn.current.elevation&&e(y)}),m(e,a)},$$slots:{default:!0}});var k=A(O,2);bs(k,{title:`Background colors`,children:(e,t)=>{var n=Ls(),r=_(n);Q(r,{get id(){return`${i}-saturation`},label:`Saturation`,children:(e,t)=>{Pt(e,{get id(){return`${i}-saturation`},min:-1,max:1,step:.05,onchange:()=>T(`colors`,y()),scale:100,unit:`%`,get value(){return l(h)},set value(e){L(h,e)}})},$$slots:{default:!0}});var a=A(r,2);Q(a,{get id(){return`${i}-black`},label:`Black becomes`,children:(e,t)=>{var n=()=>l(g),r=e=>C(`black`,e);Pt(e,{get id(){return`${i}-black`},min:-1,max:1,step:.05,get value(){return n()},set value(e){r(e)},onchange:()=>T(`colors`,y()),scale:100,unit:`%`})},$$slots:{default:!0}});var o=A(a,2);Q(o,{get id(){return`${i}-white`},label:`White becomes`,children:(e,t)=>{var n=()=>l(v),r=e=>C(`white`,e);Pt(e,{get id(){return`${i}-white`},min:0,max:2,step:.05,get value(){return n()},set value(e){r(e)},onchange:()=>T(`colors`,y()),scale:100,unit:`%`})},$$slots:{default:!0}});var s=A(o,2),c=e=>{mn(e,{children:(e,t)=>{z();var n=p(`The satellite imagery keeps its mid-gray between 0 % and 100 %, so black and white move together.`);m(e,n)},$$slots:{default:!0}})};G(s,e=>{l(w)&&e(c)});var u=A(s,2);nt(u,{children:(e,t)=>{{let t=R(()=>!l(S));X(e,{get disabled(){return l(t)},onclick:()=>T(`colors`,Mt),children:(e,t)=>{z();var n=p(`Reset colors`);m(e,n)},$$slots:{default:!0}})}},$$slots:{default:!0}}),m(e,n)},$$slots:{default:!0}}),bs(A(k,2),{title:`Background labels`,children:(e,r)=>{var s=Is(),u=_(s);Q(u,{get id(){return`${i}-labels`},label:`Labels`,group:!0,children:(e,t)=>{dn(e,{get labelledby(){return`${i}-labels-label`},get value(){return l(o).labels},onchange:e=>T(`labels`,e),get options(){return f}})},$$slots:{default:!0}});var d=A(u,2),p=e=>{var r=Ls(),s=_(r);so(s,{get id(){return i},get value(){return l(o).font},onchange:e=>e&&T(`font`,e)});var u=A(s,2);Q(u,{get id(){return`${i}-language`},label:`Language`,children:(e,r)=>{Qt(e,{get id(){return`${i}-language`},get value(){return l(o).language},onchange:e=>T(`language`,e.currentTarget.value),children:(e,r)=>{var i=Rs(),a=_(i);a.value=a.__value=`user`;var s=A(a,2);s.value=s.__value=`local`;var u=A(s,2),d=e=>{var r=Fs(),i=t(r,!0),a={};B(()=>{n(i,l(o).language),a!==(a=l(o).language)&&(r.value=(r.__value=a)??``)}),m(e,r)},f=R(()=>![`user`,`local`,...Ft].includes(l(o).language));G(u,e=>{l(f)&&e(d)});var p=A(u,2);K(p,17,()=>c,({id:e,name:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).name;var o=Fs(),s=t(o,!0),c={};B(()=>{n(s,a()),c!==(c=i())&&(o.value=(o.__value=c)??``)}),m(e,o)}),m(e,i)},$$slots:{default:!0}})},$$slots:{default:!0}});var d=A(u,2);Q(d,{get id(){return`${i}-label-size`},label:`Label size`,children:(e,t)=>{Pt(e,{get id(){return`${i}-label-size`},min:.5,max:2,step:.05,onchange:()=>T(`labelSize`,l(b)),scale:100,unit:`%`,get value(){return l(b)},set value(e){L(b,e)}})},$$slots:{default:!0}});var f=A(d,2);Q(f,{get id(){return`${i}-halo-width`},label:`Halo width`,children:(e,t)=>{Pt(e,{get id(){return`${i}-halo-width`},min:0,max:5,step:.25,onchange:()=>T(`haloWidth`,l(x)),unit:`px`,get value(){return l(x)},set value(e){L(x,e)}})},$$slots:{default:!0}});var p=A(f,2);Q(p,{get id(){return`${i}-labels-on-top`},label:`Over areas and lines`,children:(e,t)=>{Z(e,{get id(){return`${i}-labels-on-top`},get checked(){return a().mapLabelsOnTop},onchange:e=>E(e.currentTarget.checked)})},$$slots:{default:!0}}),m(e,r)};G(d,e=>{l(o).labels!==`none`&&e(p)}),m(e,s)},$$slots:{default:!0}}),m(e,D),F()}function Vs(e){return e.legend??{entries:[]}}function Hs(e,t){let n={...Vs(e),...t};e.legend=n.entries.length>0?n:void 0}function Us(e,t,n){Ws(e,t,e=>({...e,...n}))}function Ws(e,t,n){let{entries:r}=Vs(e);Hs(e,{entries:r.map((e,r)=>r===t?n(e):e)})}var Gs=e=>hn(`symbol`,e.style).color;function Ks(e,t,n){let r=Vs(e).entries[t];if(!r||n===r.type)return;let i={color:Gs(r)};Ws(e,t,()=>n===`area`?{type:n,style:i,outlineStyle:{visible:!1},label:r.label}:{type:n,style:i,label:r.label}),e.state.log()}function qs(e,t,n){let r=Vs(e).entries[t];if(!r)return;let i=Ys(e,t,`outlineStyle`,`outline`);if(n&&!Kr(r,`outlineStyle`)?.color){let e=De(Gs(r));e&&(i.color=Pe({...e,alpha:1}))}i.visible=n,e.state.log()}function Js(e,t,n){let r={...e};return n?r[t]=n:delete r[t],r}function Ys(e,t,n,r){let i=()=>hn(r,Kr(Vs(e).entries[t],n)),a=(a,o)=>{let s=Ot(r,{...i(),[a]:o});Ws(e,t,e=>Js(e,n,s))};return{get color(){return i().color},set color(e){a(`color`,e)},get pattern(){return i().pattern},set pattern(e){a(`pattern`,e)},get patternScale(){return i().patternScale},set patternScale(e){a(`patternScale`,e)},get patternCoverage(){return i().patternCoverage},set patternCoverage(e){a(`patternCoverage`,e)},get dash(){return i().dash},set dash(e){a(`dash`,e)},get width(){return i().width},set width(e){a(`width`,e)},get visible(){return i().visible!==!1},set visible(e){a(`visible`,e)},get arrowStart(){return i().arrowStart??un.line.arrowStart},set arrowStart(e){a(`arrowStart`,e)},get arrowEnd(){return i().arrowEnd??un.line.arrowEnd},set arrowEnd(e){a(`arrowEnd`,e)},get arrowSize(){return i().arrowSize??un.line.arrowSize},set arrowSize(e){a(`arrowSize`,e)}}}var Xs=g(`<!>Take style from…`,1),Zs=g(`<!> <!>`,1),Qs=g(`<div role="status"><!></div>`),$s=g(`<!> <!> <!>`,1),ec=g(`<div class="details svelte-4icea3"><div class="head svelte-4icea3"><!> <!></div> <!> <!> <!> <!> <!></div>`);function tc(e,t){U(t,!0);let r=()=>t.doc.state.log(),i=[{value:`marker`,label:`Marker`},{value:`line`,label:`Line`},{value:`area`,label:`Area`}];var a=ec(),o=T(a),s=T(o);{let e=R(()=>t.index+1),n=R(()=>t.index===0);fn(s,{get id(){return`${t.id??``}-up`},icon:`up`,size:`xs`,get label(){return`Move entry ${l(e)??``} up`},get disabled(){return l(n)},onclick:()=>t.onstep(-1)})}var c=A(s,2);{let e=R(()=>t.index+1),n=R(()=>t.index===t.count-1);fn(c,{get id(){return`${t.id??``}-down`},icon:`down`,size:`xs`,get label(){return`Move entry ${l(e)??``} down`},get disabled(){return l(n)},onclick:()=>t.onstep(1)})}I(o);var u=A(o,2);Q(u,{get id(){return`${t.id??``}-type`},label:`Shows`,group:!0,children:(e,n)=>{dn(e,{get labelledby(){return`${t.id??``}-type-label`},get value(){return t.entry.type},onchange:e=>Ks(t.doc,t.index,e),get options(){return i}})},$$slots:{default:!0}});var d=A(u,2);nt(d,{children:(e,n)=>{var r=Zs(),i=_(r);{let e=R(()=>!di(t.doc));X(i,{get disabled(){return l(e)},title:`The style of an element, copied with “Copy style”`,onclick:()=>fi(t.doc,t.index),children:(e,t)=>{z();var n=p(`Paste style`);m(e,n)},$$slots:{default:!0}})}var a=A(i,2);X(a,{get"aria-pressed"(){return t.picking},title:`Click an element on the map to take its style`,get onclick(){return t.onpick},children:(e,t)=>{var n=Xs(),r=_(n);gt(r,{name:`pipette`,size:16}),z(),m(e,n)},$$slots:{default:!0}}),m(e,r)},$$slots:{default:!0}});var f=A(d,2),h=e=>{var t=Qs(),n=T(t);mn(n,{children:(e,t)=>{z();var n=p(`Click an element on the map to take its style. Escape cancels.`);m(e,n)},$$slots:{default:!0}}),I(t),m(e,t)};G(f,e=>{t.picking&&e(h)});var g=A(f,2),v=e=>{var n=Zs(),i=_(n);Q(i,{get id(){return`${t.id??``}-symbol`},label:`Symbol`,children:(e,n)=>{var i=()=>hn(`symbol`,t.entry.style).symbol,a=e=>{Us(t.doc,t.index,{style:{...t.entry.style,symbol:e??``}}),r()};ho(e,{get id(){return`${t.id??``}-symbol`},get symbol(){return i()},set symbol(e){a(e)}})},$$slots:{default:!0}});var a=A(i,2);Q(a,{get id(){return`${t.id??``}-color`},label:`Color`,children:(e,n)=>{var i=()=>Gs(t.entry),a=e=>Us(t.doc,t.index,{style:{...t.entry.style,color:e}});io(e,{get id(){return`${t.id??``}-color`},get value(){return i()},set value(e){a(e)},onchange:r,get palette(){return t.doc.colors}})},$$slots:{default:!0}}),m(e,n)},y=e=>{let n=R(()=>Ys(t.doc,t.index,`style`,`line`));var r=Zs(),i=_(r);{let e=R(()=>[l(n)]);vs(i,{get layers(){return l(e)},get doc(){return t.doc}})}var a=A(i,2);{let e=R(()=>[l(n)]);hs(a,{get layers(){return l(e)},get doc(){return t.doc}})}m(e,r)},b=e=>{let n=R(()=>Ys(t.doc,t.index,`outlineStyle`,`outline`));var r=$s(),i=_(r);{let e=R(()=>[Ys(t.doc,t.index,`style`,`fill`)]);ss(i,{get layers(){return l(e)},get doc(){return t.doc},colorLabel:`Fill color`})}var a=A(i,2);Q(a,{get id(){return`${t.id??``}-outline`},label:`Outline`,children:(e,r)=>{Z(e,{get id(){return`${t.id??``}-outline`},get checked(){return l(n).visible},onchange:e=>qs(t.doc,t.index,e.currentTarget.checked)})},$$slots:{default:!0}});var o=A(a,2),s=e=>{{let r=R(()=>[l(n)]);vs(e,{get layers(){return l(r)},get doc(){return t.doc},colorLabel:`Outline color`})}};G(o,e=>{l(n).visible&&e(s)}),m(e,r)};G(g,e=>{t.entry.type===`marker`?e(v):t.entry.type===`line`?e(y,1):e(b,-1)});var x=A(g,2);X(x,{variant:`danger`,wide:!0,get onclick(){return t.onremove},children:(e,r)=>{z();var i=p();B(()=>n(i,`Remove entry ${t.index+1}`)),m(e,i)},$$slots:{default:!0}}),I(a),B(()=>k(a,`id`,`${t.id??``}-details`)),m(e,a),F()}var nc=g(`<!> <!> <!> <!>`,1),rc=g(`<!> <!> <!> <!> <!>`,1),ic=g(`<div><fieldset class="entry svelte-akqerx"><legend class="sr-only"></legend> <div class="row svelte-akqerx"><span class="grip svelte-akqerx" aria-hidden="true" title="Drag to move"><!></span> <!> <!> <!></div> <!> <!></fieldset></div>`),ac=g(`<div role="group" aria-label="Legend entries"></div> <!>`,1),oc=g(`<!> <!> <!>`,1);function sc(e,t){let n=u();U(t,!0);let i=H(t,`doc`,7),a=R(()=>Vs(i())),o=()=>i().state.log(),s=R(()=>i().elements.length===0?new Set:Zr(i().elements.map(e=>e.getState()),l(a).entries)),f=[{value:`vertical`,label:`Vertical`},{value:`horizontal`,label:`Horizontal`},{value:`inline`,label:`Inline`}],g=[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`},{value:`glass`,label:`Glass`}],v=[{value:`sans-serif`,label:`Sans`},{value:`serif`,label:`Serif`},{value:`monospace`,label:`Mono`}];function b(e){Hs(i(),e),o()}let x=R(()=>i().controls.legend);function C(e){i().viewer={...i().viewer,legend:e},o()}function w(){i().visibleArea.open({onDone:()=>i().selection.selectLegend()})}let E=V(void 0);d(()=>{i().stylePicker.active||L(E,void 0)});function D(e){if(l(E)===e)return i().stylePicker.close();i().stylePicker.open({onPick:t=>pi(i(),e,t)}),L(E,e,!0)}let O=V(re([])),M=c(()=>l(a).entries.length);d(()=>{let e=l(a).entries.length;c(()=>{if(e>M)for(let t=M;t<e;t++)l(O)[t]=!0;else e<M&&L(O,l(O).slice(0,e),!0);M=e})});function N(e){l(O)[e]=!l(O)[e]}d(()=>{let e=i().selection.legendEntry;e&&c(()=>{l(O)[e.index]=!0,S().then(()=>document.getElementById(`${n}-${e.index}-entry`)?.scrollIntoView({block:`nearest`}))})});function ee(e){L(O,l(O).filter((t,n)=>n!==e),!0),M=l(a).entries.length-1,Hs(i(),{entries:l(a).entries.filter((t,n)=>n!==e)}),o()}function te(e,t){let n=t>e?t-1:t;if(n===e)return e;let r=l(a).entries.filter((t,n)=>n!==e);r.splice(n,0,l(a).entries[e]);let s=l(O).filter((t,n)=>n!==e);return s.splice(n,0,l(O)[e]??!1),L(O,s,!0),Hs(i(),{entries:r}),o(),n}async function ne(e,t){let r=te(e,t<0?e-1:e+2);await S();let i=document.getElementById(`${n}-${r}-${t<0?`up`:`down`}`),a=document.getElementById(`${n}-${r}-${t<0?`down`:`up`}`);(i&&!i.disabled?i:a)?.focus()}let W=V(void 0),q=V(void 0),ie=V(void 0);function ae(e,t){e.button===0&&l(W)&&(L(q,{index:t,pointerId:e.pointerId},!0),l(W).setPointerCapture(e.pointerId),e.preventDefault(),window.getSelection()?.removeAllRanges())}function oe(e){if(!l(q)||e.pointerId!==l(q).pointerId||!l(W))return;let t=[...l(W).querySelectorAll(`:scope > .slot`)],n=t.findIndex(t=>{let n=t.getBoundingClientRect();return e.clientY<n.top+n.height/2});L(ie,n<0?t.length:n,!0);let r=l(W).closest(`.sidebar`);if(r){let t=r.getBoundingClientRect();e.clientY<t.top+24?r.scrollTop-=8:e.clientY>t.bottom-24&&(r.scrollTop+=8)}}function se(e){l(q)&&e.pointerId===l(q).pointerId&&(l(ie)!==void 0&&te(l(q).index,l(ie)),Y())}function Y(){l(q)&&l(W)?.hasPointerCapture(l(q).pointerId)&&l(W).releasePointerCapture(l(q).pointerId),L(q,void 0),L(ie,void 0)}var ce=h(),le=_(ce),ue=e=>{var t=oc(),c=_(t);bs(c,{title:`In shared maps`,children:(e,t)=>{var r=nc(),i=_(r);Q(i,{get id(){return`${n}-shown`},label:`Shown`,children:(e,t)=>{{let t=R(()=>l(x)!==`none`);Z(e,{get id(){return`${n}-shown`},get checked(){return l(t)},onchange:e=>C(e.currentTarget.checked?Nr(`legend`):`none`)})}},$$slots:{default:!0}});var a=A(i,2),o=e=>{Q(e,{get id(){return`${n}-place`},label:`Place`,group:!0,children:(e,t)=>{dn(e,{layout:`grid`,get labelledby(){return`${n}-place-label`},get value(){return l(x)},onchange:C,get options(){return Mr.legend}})},$$slots:{default:!0}})};G(a,e=>{l(x)!==`none`&&e(o)});var s=A(a,2);nt(s,{children:(e,t)=>{X(e,{onclick:w,children:(e,t)=>{z();var n=p(`Edit shared map…`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var c=A(s,2);mn(c,{children:(e,t)=>{z();var n=p(`With the other controls of shared maps, and their visible area.`);m(e,n)},$$slots:{default:!0}}),m(e,r)},$$slots:{default:!0}});var u=A(c,2);bs(u,{title:`Legend style`,children:(e,t)=>{var r=rc(),i=_(r);Q(i,{get id(){return`${n}-theme`},label:`Theme`,group:!0,children:(e,t)=>{{let t=R(()=>l(a).theme??`light`);dn(e,{get labelledby(){return`${n}-theme-label`},get value(){return l(t)},onchange:e=>b({theme:e}),get options(){return g}})}},$$slots:{default:!0}});var o=A(i,2);Q(o,{get id(){return`${n}-layout`},label:`Layout`,group:!0,children:(e,t)=>{{let t=R(()=>l(a).layout??`vertical`);dn(e,{get labelledby(){return`${n}-layout-label`},get value(){return l(t)},onchange:e=>b({layout:e}),get options(){return f}})}},$$slots:{default:!0}});var s=A(o,2);Q(s,{get id(){return`${n}-font`},label:`Font`,group:!0,children:(e,t)=>{{let t=R(()=>l(a).font??`sans-serif`);dn(e,{get labelledby(){return`${n}-font-label`},get value(){return l(t)},onchange:e=>b({font:e}),get options(){return v}})}},$$slots:{default:!0}});var c=A(s,2);Q(c,{get id(){return`${n}-bold`},label:`Bold`,children:(e,t)=>{{let t=R(()=>l(a).bold===!0);Z(e,{get id(){return`${n}-bold`},get checked(){return l(t)},onchange:e=>b({bold:e.currentTarget.checked})})}},$$slots:{default:!0}});var u=A(c,2);Q(u,{get id(){return`${n}-italic`},label:`Italic`,children:(e,t)=>{{let t=R(()=>l(a).italic===!0);Z(e,{get id(){return`${n}-italic`},get checked(){return l(t)},onchange:e=>b({italic:e.currentTarget.checked})})}},$$slots:{default:!0}}),m(e,r)},$$slots:{default:!0}}),bs(A(u,2),{title:`Entries`,children:(e,t)=>{var c=ac(),u=_(c);let d;K(u,21,()=>l(a).entries,y,(e,t,r)=>{var c=ic();let u;var d=T(c),f=T(d);f.textContent=`Entry ${r+1}`;var h=A(f,2),g=T(h),_=T(g);gt(_,{name:`grip`,size:14}),I(g);var v=A(g,2);ft(v,{get entry(){return l(t)}});var y=A(v,2);cn(y,{get id(){return`${n}-${r}-label`},class:`text`,"aria-label":`Text`,get value(){return l(t).label},oninput:e=>Us(i(),r,{label:e.currentTarget.value}),onchange:o});var b=A(y,2);{let e=R(()=>[`toggle`,{open:l(O)[r]}]),t=R(()=>l(O)[r]?`Close`:`Open`),i=R(()=>l(O)[r]===!0),a=R(()=>l(O)[r]?`${n}-${r}-details`:void 0);fn(b,{icon:`chevron`,size:`xs`,get class(){return l(e)},get label(){return`${l(t)??``} entry ${r+1}`},get"aria-expanded"(){return l(i)},get"aria-controls"(){return l(a)},onclick:()=>N(r)})}I(h);var x=A(h,2),S=e=>{mn(e,{children:(e,t)=>{z();var n=p(`No element has this style.`);m(e,n)},$$slots:{default:!0}})},C=R(()=>l(s).has(r));G(x,e=>{l(C)&&e(S)});var w=A(x,2),M=e=>{{let o=R(()=>l(E)===r);tc(e,{get doc(){return i()},get id(){return`${n}-${r}`},index:r,get count(){return l(a).entries.length},get entry(){return l(t)},get picking(){return l(o)},onpick:()=>D(r),onstep:e=>ne(r,e),onremove:()=>ee(r)})}};G(w,e=>{l(O)[r]&&e(M)}),I(d),I(c),B(()=>{u=j(c,1,`slot svelte-akqerx`,null,u,{"drop-before":l(ie)===r&&l(q)?.index!==r&&l(q)?.index!==r-1,"drop-after":l(ie)===l(a).entries.length&&r===l(a).entries.length-1&&l(q)?.index!==r}),k(d,`id`,`${n}-${r}-entry`)}),J(`pointerdown`,g,e=>ae(e,r)),m(e,c)}),I(u),P(u,e=>L(W,e),()=>l(W));var f=A(u,2);nt(f,{children:(e,t)=>{X(e,{onclick:()=>li(i()),children:(e,t)=>{z();var n=p(`Add legend entry`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}}),B(()=>d=j(u,1,`entries svelte-akqerx`,null,d,{dragging:l(q)!==void 0})),J(`pointermove`,u,oe),J(`pointerup`,u,se),r(`pointercancel`,u,Y),r(`lostpointercapture`,u,Y),m(e,c)},$$slots:{default:!0}}),m(e,t)},de=e=>{nt(e,{children:(e,t)=>{X(e,{onclick:()=>li(i()),children:(e,t)=>{z();var n=p(`Add legend entry`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}})};G(le,e=>{l(a).entries.length>0?e(ue):e(de,-1)}),m(e,ce),F()}v([`pointermove`,`pointerup`,`pointerdown`]);var cc=g(`<span class="sr-only"> </span> <!>`,1),lc=g(`<div><!> <!></div> <!>`,1);function uc(e,r){let i=u();U(r,!0);let a=H(r,`doc`,7),o=[{key:`search`,label:`Address search`,hint:`Visitors can find a place, e.g. their street. The map content does not change.`,layout:`segmented`},{key:`legend`,label:`Legend`,hint:`The legend that you made for the map.`,layout:`grid`},{key:`scale`,label:`Scale bar`,hint:`A bar with the length that it stands for, in meters or kilometers.`,layout:`segmented`}];function s(e,t){a().viewer={...a().viewer,[e]:t},a().state.log()}var c=h(),d=_(c);K(d,17,()=>o,({key:e,label:t,hint:n,layout:r})=>e,(e,r)=>{let o=()=>l(r).key,c=()=>l(r).label,u=()=>l(r).hint,d=()=>l(r).layout;var f=h(),g=_(f),v=e=>{let r=R(()=>a().controls[o()]);var f=lc(),h=_(f);let g;var v=T(h);{let e=R(()=>l(r)!==`none`);Z(v,{get checked(){return l(e)},onchange:e=>s(o(),e.currentTarget.checked?Nr(o()):`none`),children:(e,t)=>{z();var r=p();B(()=>n(r,c())),m(e,r)},$$slots:{default:!0}})}var y=A(v,2),b=e=>{var a=cc(),u=_(a),f=t(u),p=A(u,2);dn(p,{get layout(){return d()},get labelledby(){return`${i}-${o()??``}-place`},get value(){return l(r)},onchange:e=>s(o(),e),get options(){return Mr[o()]}}),B(e=>{k(u,`id`,`${i}-${o()??``}-place`),n(f,`Place of the ${e??``}`)},[()=>c().toLowerCase()]),m(e,a)};G(y,e=>{l(r)!==`none`&&e(b)}),I(h);var x=A(h,2);mn(x,{children:(e,t)=>{z();var r=p();B(()=>n(r,u())),m(e,r)},$$slots:{default:!0}}),B(()=>g=j(h,1,`control svelte-9s6qsh`,null,g,{below:d()===`segmented`})),m(e,f)};G(g,e=>{(o()!==`legend`||a().legend?.entries.length)&&e(v)}),m(e,f)}),m(e,c),F()}var dc=g(`<div class="button svelte-19s5udl"><!></div> <!>`,1),fc=g(`<!> <!>`,1);function pc(e,t){let r=u();U(t,!0);let i=H(t,`doc`,7),a=[{key:`zoomButtons`,label:`Zoom`,hint:`Buttons to zoom in and out, with a compass if visitors can rotate or tilt the map.`},{key:`reset`,label:`Reset view`,hint:`Shows the map as it opened, after a visitor moved or turned it.`},{key:`fullscreen`,label:`Fullscreen`,hint:`Shows the map on the whole screen. An embedded map needs the embed code of “Share” for it.`},{key:`locate`,label:`My location`,hint:`Shows where the visitor is, if they allow it, and follows them until it is switched off. The position stays in their browser. An embedded map needs the embed code of “Share” for it.`}];function o(e){i().viewer={...i().viewer,...e},i().state.log()}var s=fc(),c=_(s);Q(c,{get id(){return`${r}-place`},label:`Place`,group:!0,children:(e,t)=>{dn(e,{layout:`grid`,get labelledby(){return`${r}-place-label`},get value(){return i().controls.navigation},onchange:e=>o({navigation:e}),get options(){return Mr.navigation}})},$$slots:{default:!0}});var d=A(c,2);K(d,17,()=>a,({key:e,label:t,hint:n})=>e,(e,t)=>{let r=()=>l(t).key,a=()=>l(t).label,s=()=>l(t).hint;var c=dc(),u=_(c),d=T(u);Z(d,{get checked(){return i().controls[r()]},onchange:e=>o({[r()]:e.currentTarget.checked}),children:(e,t)=>{z();var r=p();B(()=>n(r,a())),m(e,r)},$$slots:{default:!0}}),I(u);var f=A(u,2);mn(f,{children:(e,t)=>{z();var r=p();B(()=>n(r,s())),m(e,r)},$$slots:{default:!0}}),m(e,c)}),m(e,s),F()}var mc=g(`<!> <!>`,1),hc=g(`<p class="size svelte-102hxyn" role="status"> </p> <!> <!>`,1),gc=g(`<div class="visitors svelte-102hxyn"><!></div> <!>`,1),_c=g(`<div class="visitors svelte-102hxyn"><!> <!> <!> <!> <!></div> <!>`,1),vc=g(`<!> <!> <!> <!> <!>`,1);function yc(e,i){let a=u();U(i,!0);let o=R(()=>i.doc.visibleArea),s=R(()=>i.doc.frame??i.doc.getBounds());function c([e,t,n,r]){let i=111320,a=(n-e)*i*Math.cos((t+r)/2*Math.PI/180),o=(r-t)*i;return`${dt(a)} × ${dt(o)}`}let d=R(()=>i.doc.frame?c(i.doc.frame):l(s)?`The elements: ${c(l(s))}`:`The whole world`),f={get bearing(){return l(o).turn.bearing},set bearing(e){l(o).setTurn({bearing:e})},get pitch(){return l(o).turn.pitch},set pitch(e){l(o).setTurn({pitch:e})},get canPan(){return l(o).turn.canPan},set canPan(e){l(o).setTurn({canPan:e}),l(o).log()},get canZoom(){return l(o).turn.canZoom},set canZoom(e){l(o).setTurn({canZoom:e}),l(o).log()},get canRotate(){return l(o).turn.canRotate},set canRotate(e){l(o).setTurn({canRotate:e}),l(o).log()},get canTilt(){return l(o).turn.canTilt},set canTilt(e){l(o).setTurn({canTilt:e}),l(o).log()},get confine(){return l(o).turn.confine},set confine(e){l(o).setTurn({confine:e}),l(o).log()}},h=()=>Math.round(i.doc.view.map.getZoom()*2)/2,g={get min(){return l(o).turn.minZoom},get max(){return l(o).turn.maxZoom},setMin(e){let t=l(o).turn.maxZoom;l(o).setTurn({minZoom:e,...e!==void 0&&t!==void 0&&t<e?{maxZoom:e}:{}})},setMax(e){let t=l(o).turn.minZoom;l(o).setTurn({maxZoom:e,...e!==void 0&&t!==void 0&&t>e?{minZoom:e}:{}})}};function v(e){return!e.target?.matches?.(`input[type="checkbox"], input[type="radio"]`)&&jr(e)}function y(e){l(o).active&&e.key===`Escape`&&!v(e)&&(e.preventDefault(),l(o).close())}let b={ArrowUp:`n`,ArrowRight:`e`,ArrowDown:`s`,ArrowLeft:`w`};function x(e){let t=b[e.key];l(o).active&&t&&e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!jr(e)&&(e.preventDefault(),e.stopPropagation(),l(o).nudge(t,e.altKey?-10:10))}function S(e){(b[e.key]||e.key===`Shift`)&&l(o).commit()}var w=vc();r(`keydown`,C,x,!0),r(`keydown`,C,y),r(`keyup`,C,S);var E=_(w);bs(E,{title:`Visible area`,children:(e,r)=>{var a=hc(),s=_(a),c=t(s,!0),u=A(s,2);nt(u,{children:(e,t)=>{var n=mc(),r=_(n);X(r,{onclick:()=>l(o).useCurrentView(),children:(e,t)=>{z();var n=p(`Use current view`);m(e,n)},$$slots:{default:!0}});var a=A(r,2);{let e=R(()=>!i.doc.frame);X(a,{variant:`ghost`,get disabled(){return l(e)},onclick:()=>l(o).fitToElements(),children:(e,t)=>{z();var n=p(`Fit to elements`);m(e,n)},$$slots:{default:!0}})}m(e,n)},$$slots:{default:!0}});var f=A(u,2);mn(f,{children:(e,t)=>{z();var r=p();B(()=>n(r,i.doc.frame?`Shared maps show this area completely, on every screen. Drag its handles on the map.`:`Shared maps show all elements. Drag a handle on the map to set the area that they show.`)),m(e,r)},$$slots:{default:!0}}),B(()=>n(c,l(d))),m(e,a)},$$slots:{default:!0}});var D=A(E,2);bs(D,{title:`Rotation and tilt`,children:(e,t)=>{var n=mc(),r=_(n);Q(r,{get id(){return`${a}-bearing`},label:`Rotation`,children:(e,t)=>{Pt(e,{get id(){return`${a}-bearing`},min:-180,max:180,step:5,unit:`°`,onchange:()=>l(o).log(),get value(){return f.bearing},set value(e){f.bearing=e}})},$$slots:{default:!0}});var i=A(r,2);Q(i,{get id(){return`${a}-pitch`},label:`Tilt`,children:(e,t)=>{Pt(e,{get id(){return`${a}-pitch`},min:0,get max(){return 60},step:5,unit:`°`,onchange:()=>l(o).log(),get value(){return f.pitch},set value(e){f.pitch=e}})},$$slots:{default:!0}}),m(e,n)},$$slots:{default:!0}});var O=A(D,2);bs(O,{title:`Visitors`,children:(e,t)=>{var r=_c(),i=_(r),c=T(i);Z(c,{title:`Whether visitors of the shared map can move it`,get checked(){return f.canPan},set checked(e){f.canPan=e},children:(e,t)=>{z();var n=p(`Visitors can pan`);m(e,n)},$$slots:{default:!0}});var u=A(c,2);Z(u,{title:`Whether visitors of the shared map can zoom in and out`,get checked(){return f.canZoom},set checked(e){f.canZoom=e},children:(e,t)=>{z();var n=p(`Visitors can zoom`);m(e,n)},$$slots:{default:!0}});var d=A(u,2);Z(d,{title:`Whether visitors of the shared map can rotate it`,get checked(){return f.canRotate},set checked(e){f.canRotate=e},children:(e,t)=>{z();var n=p(`Visitors can rotate`);m(e,n)},$$slots:{default:!0}});var v=A(d,2);Z(v,{title:`Whether visitors of the shared map can tilt it`,get checked(){return f.canTilt},set checked(e){f.canTilt=e},children:(e,t)=>{z();var n=p(`Visitors can tilt`);m(e,n)},$$slots:{default:!0}});var y=A(v,2);{let e=R(()=>!l(s));Z(y,{get disabled(){return l(e)},title:`Visitors cannot zoom out further than the map opens, nor move it beyond what it shows then`,get checked(){return f.confine},set checked(e){f.confine=e},children:(e,t)=>{z();var n=p(`Visitors stay in the area`);m(e,n)},$$slots:{default:!0}})}I(i);var b=A(i,2);K(b,17,()=>[{key:`out`,label:`Limit zooming out`,value:g.min,set:g.setMin},{key:`in`,label:`Limit zooming in`,value:g.max,set:g.setMax}],e=>e.key,(e,t)=>{let r=R(()=>l(t).key===`out`&&f.confine);var i=gc(),s=_(i),c=T(s);{let e=R(()=>l(t).value!==void 0&&!l(r)),i=R(()=>l(r)?`Visitors who stay in the area cannot zoom out beyond it`:void 0);Z(c,{get checked(){return l(e)},get disabled(){return l(r)},get title(){return l(i)},onchange:e=>{l(t).set(e.currentTarget.checked?h():void 0),l(o).log()},children:(e,r)=>{z();var i=p();B(()=>n(i,l(t).label)),m(e,i)},$$slots:{default:!0}})}I(s);var u=A(s,2),d=e=>{var n=mc(),r=_(n);Q(r,{get id(){return`${a}-zoom-${l(t).key??``}`},label:`Zoom level`,children:(e,n)=>{var r=()=>l(t).value??0,i=e=>l(t).set(e);Pt(e,{get id(){return`${a}-zoom-${l(t).key??``}`},min:0,get max(){return 22},step:.5,get value(){return r()},set value(e){i(e)},onchange:()=>l(o).log()})},$$slots:{default:!0}});var i=A(r,2);nt(i,{children:(e,n)=>{X(e,{variant:`ghost`,onclick:()=>{l(t).set(h()),l(o).log()},children:(e,t)=>{z();var n=p(`Use current zoom`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}}),m(e,n)};G(u,e=>{l(t).value!==void 0&&!l(r)&&e(d)}),m(e,i)}),m(e,r)},$$slots:{default:!0}});var k=A(O,2);bs(k,{title:`Navigation buttons`,children:(e,t)=>{pc(e,{get doc(){return i.doc}})},$$slots:{default:!0}}),bs(A(k,2),{title:`Controls`,children:(e,t)=>{var n=mc(),r=_(n);mn(r,{children:(e,t)=>{z();var n=p(`The map shows them as visitors see them.`);m(e,n)},$$slots:{default:!0}}),uc(A(r,2),{get doc(){return i.doc}}),m(e,n)},$$slots:{default:!0}}),m(e,w),F()}var bc=g(`<span class="subtitle svelte-1dajf7z"> </span>`),xc=g(`<!> <!> <!> <!>`,1),Sc=g(`<!> <!>`,1),Cc=g(`<div class="inspector svelte-1dajf7z"><div class="header svelte-1dajf7z"><span class="icon svelte-1dajf7z"><!></span> <span class="title svelte-1dajf7z"><h2 class="svelte-1dajf7z"> </h2> <!></span> <!></div> <!></div>`);function wc(e,r){let i=u();U(r,!0);let a=H(r,`doc`,7),o=R(()=>a().selection),s=R(()=>l(o).selectedElements),c=R(()=>a().legend),f=R(()=>a().visibleArea.active),g=R(()=>{if(l(f))return{icon:`share`,title:`Shared map`,subtitle:`What visitors see`};if(l(o).legendSelected&&l(c))return{icon:`legend`,title:`Legend`,subtitle:`Part of the map`};if(l(s).length===0)return{icon:`map`,title:`Map`,subtitle:`Nothing selected`};let e=l(s).map(e=>e.getState().type);return l(s).length>1?{icon:new Set(e).size===1?e[0]:`layers`,title:`${l(s).length} elements`,subtitle:Rr(e)}:{icon:Ar(l(s)[0]).name,title:Lr(e[0]),subtitle:Fr(l(s)[0])}}),v=[{value:`show`,label:`Show all`},{value:`hide`,label:`Hide`}],y=V(0);d(()=>{let e=a().view.map,t=()=>L(y,e.getZoom(),!0);return t(),e.on(`zoom`,t),()=>{e.off(`zoom`,t)}});function b(e){a().labelOverlap=e,a().state.log()}function x(e){a().labelMinZoom=e,a().state.log()}function S(){x(Math.min(C,Math.max(.1,Math.floor(l(y)*10)/10)))}let C=22;function w(){li(a()),l(o).selectLegend()}var E=Cc(),D=T(E),O=T(D),k=T(O);gt(k,{get name(){return l(g).icon},size:16}),I(O);var j=A(O,2),M=T(j),N=t(M,!0),ee=A(M,2),P=e=>{var r=bc(),i=t(r,!0);B(()=>n(i,l(g).subtitle)),m(e,r)};G(ee,e=>{l(g).subtitle&&e(P)}),I(j);var te=A(j,2),ne=e=>{fn(e,{icon:`close`,label:`Back to the map`,title:`Back to the map (Escape)`,size:`sm`,onclick:()=>a().visibleArea.close()})},re=e=>{fn(e,{icon:`close`,label:`Back to the map`,title:`Back to the map (Escape)`,size:`sm`,onclick:()=>l(o).selectLegend(!1)})};G(te,e=>{l(f)?e(ne):l(o).legendSelected&&l(c)&&e(re,1)}),I(D);var W=A(D,2),K=e=>{yc(e,{get doc(){return a()}})},q=e=>{sc(e,{get doc(){return a()}})},J=e=>{Ps(e,{get elements(){return l(s)},get doc(){return a()}})},ie=e=>{var t=xc(),r=_(t);bs(r,{title:`Map`,children:(e,t)=>{var r=xc(),o=_(r);Q(o,{get id(){return`${i}-title`},label:`Title`,children:(e,t)=>{cn(e,{get id(){return`${i}-title`},get value(){return a().title},placeholder:`Untitled map`,oninput:e=>a().title=e.currentTarget.value,onchange:()=>a().state.log()})},$$slots:{default:!0}});var s=A(o,2);mn(s,{children:(e,t)=>{z();var r=p();B(()=>n(r,a().frame?`Shared maps show the visible area that you set, on every screen.`:`Shared maps show all elements. You can set the area that they show.`)),m(e,r)},$$slots:{default:!0}});var c=A(s,2);nt(c,{children:(e,t)=>{X(e,{onclick:()=>a().visibleArea.open(),children:(e,t)=>{z();var n=p(`Edit shared map…`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var l=A(c,2);mn(l,{children:(e,t)=>{z();var n=p(`Its visible area, its rotation and tilt, and what visitors see over it: the search, the zoom buttons, the
19
+ legend.`);m(e,n)},$$slots:{default:!0}}),m(e,r)},$$slots:{default:!0}});var s=A(r,2);Bs(s,{get doc(){return a()}});var u=A(s,2);bs(u,{title:`Marker labels`,children:(e,t)=>{var r=xc(),o=_(r);Q(o,{get id(){return`${i}-overlap`},label:`Overlapping`,group:!0,children:(e,t)=>{dn(e,{get labelledby(){return`${i}-overlap-label`},get value(){return a().labelOverlap},onchange:b,get options(){return v}})},$$slots:{default:!0}});var s=A(o,2);Q(s,{get id(){return`${i}-min-zoom`},label:`Shown from`,children:(e,t)=>{var n=()=>a().labelMinZoom,r=e=>a().labelMinZoom=e;Pt(e,{get id(){return`${i}-min-zoom`},min:0,get max(){return 22},step:.1,get value(){return n()},set value(e){r(e)},onchange:()=>a().state.log()})},$$slots:{default:!0}});var c=A(s,2);nt(c,{children:(e,t)=>{X(e,{onclick:S,children:(e,t)=>{z();var r=p();B(e=>n(r,`From this zoom (${e??``})`),[()=>l(y).toFixed(1)]),m(e,r)},$$slots:{default:!0}})},$$slots:{default:!0}});var u=A(c,2);mn(u,{children:(e,t)=>{z();var n=p(`The zoom level from which the labels are shown; 0 for every zoom level.`);m(e,n)},$$slots:{default:!0}}),m(e,r)},$$slots:{default:!0}}),bs(A(u,2),{title:`Legend`,children:(e,t)=>{var r=h(),i=_(r),a=e=>{var t=Sc(),r=_(t);mn(r,{children:(e,t)=>{z();var r=p();B(()=>n(r,`${l(c).entries.length??``}
20
+ ${l(c).entries.length===1?`entry`:`entries`}. Click the legend on the map to edit it.`)),m(e,r)},$$slots:{default:!0}});var i=A(r,2);nt(i,{children:(e,t)=>{X(e,{onclick:()=>l(o).selectLegend(),children:(e,t)=>{z();var n=p(`Edit legend`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}}),m(e,t)},s=e=>{var t=Sc(),n=_(t);mn(n,{children:(e,t)=>{z();var n=p(`A legend explains the colors and symbols of the map.`);m(e,n)},$$slots:{default:!0}});var r=A(n,2);nt(r,{children:(e,t)=>{X(e,{onclick:w,children:(e,t)=>{z();var n=p(`Add a legend`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}}),m(e,t)};G(i,e=>{l(c)?e(a):e(s,-1)}),m(e,r)},$$slots:{default:!0}}),m(e,t)};G(W,e=>{l(f)?e(K):l(o).legendSelected&&l(c)?e(q,1):l(s).length>0?e(J,2):e(ie,-1)}),I(E),B(()=>n(N,l(g).title)),m(e,E),F()}var Tc=g(`<aside class="sidebar svelte-1tpzg2h" aria-label="Sidebar"><div style="margin-bottom: 36px;"><!></div></aside>`);function Ec(e,t){U(t,!0);let n=R(()=>t.mapDocument.state),i=R(()=>t.mapDocument.selection),a=R(()=>l(i).selectedElements);function o(e){if(e.key===`Escape`&&t.mapDocument.stylePicker.active){e.preventDefault(),t.mapDocument.stylePicker.close();return}if(jr(e))return;let r=e.target,o=e.key.toLowerCase();if((e.metaKey||e.ctrlKey)&&!e.altKey&&(o===`z`||o===`y`&&!e.shiftKey))e.preventDefault(),o===`z`&&!e.shiftKey?l(n).undo():l(n).redo();else{if((e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`d`){if(l(a).length===0)return;e.preventDefault(),ri(t.mapDocument)}if((e.metaKey||e.ctrlKey)&&!e.altKey&&(e.key===`ArrowUp`||e.key===`ArrowDown`)){if(l(a).length===0)return;e.preventDefault();let n=e.key===`ArrowUp`;ii(t.mapDocument,e.shiftKey?n?`front`:`back`:n?`forward`:`backward`)}else{if((e.metaKey||e.ctrlKey)&&e.altKey&&!e.shiftKey&&(e.code===`KeyC`||e.code===`KeyV`)){if(l(a).length===0)return;e.preventDefault(),e.code===`KeyC`?si(t.mapDocument):mi(t.mapDocument)}if(e.key===`Escape`&&!t.mapDocument.drawing.active&&!r?.closest(`.sidebar`))l(i).selectedNode?l(i).selectNode():l(i).selectElement();else if((e.key===`Delete`||e.key===`Backspace`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(l(a).length===0)return;e.preventDefault(),l(i).selectedNode?l(i).deleteSelectedNode():ai(t.mapDocument)}}}}var s=Tc();r(`keydown`,C,o);var c=T(s);wc(T(c),{get doc(){return t.mapDocument}}),I(c),I(s),m(e,s),F()}var Dc=g(`<button class="sidebar-toggle svelte-18gvjbl" aria-controls="sidebar"><svg viewBox="-0.5 0 8 12" aria-hidden="true"><path d="M6,0L0,6L6,12L7,11,L2,6L7,1z"></path></svg></button>`);function Oc(e,t){U(t,!0);let n=H(t,`open`,15);var r=Dc();let i;var a=T(r);let o;I(r),B(()=>{k(r,`aria-expanded`,n()),k(r,`aria-label`,n()?`Hide sidebar`:`Show sidebar`),k(r,`title`,n()?`Hide sidebar`:`Show sidebar`),i=N(r,``,i,{top:`round(down, ${t.top??``} - 24px, 1px)`,height:`48px`,right:`${t.right??``}px`}),o=j(a,0,`svelte-18gvjbl`,null,o,{open:n()})}),J(`click`,r,()=>n(!n())),m(e,r),F()}v([`click`]);var kc=g(`<div class="statusbar svelte-1kodbcq"><span class="hint svelte-1kodbcq"> </span> <span> <!></span> <span class="position svelte-1kodbcq"> </span></div>`);function Ac(e,r){U(r,!0);let i=R(()=>({saved:`Saved in this browser`,memory:`Not saved: this browser keeps no maps`,failed:`Not saved: the browser storage is full`})[r.sync.status]),a=R(()=>r.doc.selection),o=R(()=>r.doc.drawing),s=R(()=>{if(r.doc.stylePicker.active)return`Click an element on the map to take its style. Escape cancels.`;if(r.doc.visibleArea.active)return`Drag the handles to set the area that shared maps show completely. Escape ends.`;switch(l(o).tool){case`marker`:return`Click the map to place the marker. Escape cancels.`;case`circle`:return`Drag from the center to the edge of the circle, or click for a small circle. Escape cancels.`;case`line`:case`polygon`:return`Click to add nodes. Double-click or Enter finishes${l(o).tool===`polygon`?`, as does a click on the first node`:``}. Backspace removes the last node. Escape cancels.`}if(l(a).legendSelected)return`The legend is part of the map. Escape goes back to the map settings.`;let e=l(a).selectedElements;if(e.length>1)return`${e.length} elements selected. ${Ai}-click adds or removes elements. Dragging one moves all.`;if(l(a).selectedNode)return`Drag the node to move it. Delete or × removes it.`;let t=e[0];if(!t)return`Click an element to select it, or choose a tool on the left to draw. Press ? for all shortcuts.`;switch(t.getState().type){case`marker`:return`Drag the marker to move it, Alt-drag to move a copy. ${Ai}-click adds elements to the selection.`;case`circle`:return`Drag the circle to move it. Drag the node on its edge to change the radius.`;default:return`Drag nodes to move them. Drag a midpoint to add a node. Click a node to select it.`}}),c=V(0),u=V(void 0);d(()=>{let e=r.doc.view.map,t=()=>L(c,e.getZoom(),!0);t();let n=e=>L(u,e.lngLat,!0),i=()=>L(u,void 0);return e.on(`zoom`,t),e.on(`mousemove`,n),e.on(`mouseout`,i),()=>{e.off(`zoom`,t),e.off(`mousemove`,n),e.off(`mouseout`,i)}});let f=(e,t,n)=>`${Math.abs(e).toFixed(4)}° ${e<0?n:t}`,h=R(()=>`Zoom ${l(c).toFixed(1)}`+(l(u)?` · ${f(l(u).lat,`N`,`S`)}, ${f(l(u).lng,`E`,`W`)}`:``));var g=kc(),_=T(g),v=t(_,!0),y=A(_,2);let b;var x=T(y),S=A(x);X(S,{variant:`link`,title:`Browsers can delete the maps they keep. A downloaded file keeps the map.`,onclick:()=>r.files.downloadFile(),children:(e,t)=>{z();var n=p(`Download`);m(e,n)},$$slots:{default:!0}}),I(y);var C=A(y,2),w=t(C,!0);I(g),B(()=>{n(v,l(s)),b=j(y,1,`saved svelte-1kodbcq`,null,b,{unsaved:r.sync.status!==`saved`}),n(x,`${l(i)??``} · `),n(w,l(h))}),m(e,g),F()}var jc=g(`<div class="rail svelte-1vrorzj" role="toolbar" aria-label="Tools" aria-orientation="vertical"><!> <hr class="svelte-1vrorzj"/> <!></div>`);function Mc(e,t){U(t,!0);let n=H(t,`drawerOpen`,15),i=R(()=>t.doc.drawing),a=[{id:`select`,name:`Select`,key:`V`},{id:`marker`,name:`Marker`,key:`M`},{id:`line`,name:`Line`,key:`L`},{id:`polygon`,name:`Polygon`,key:`P`},{id:`circle`,name:`Circle`,key:`C`}];function o(e){if(jr(e)||e.metaKey||e.ctrlKey||e.altKey||t.doc.visibleArea.active)return;if(l(i).active&&(e.key===`Escape`?l(i).setTool(`select`):e.key===`Enter`?l(i).finish():(e.key===`Backspace`||e.key===`Delete`)&&l(i).removeLastPoint(),[`Escape`,`Enter`,`Backspace`,`Delete`].includes(e.key))){e.preventDefault();return}if(e.shiftKey)return;if(e.key.toUpperCase()===`E`){e.preventDefault(),n(!n());return}let r=a.find(({key:t})=>t===e.key.toUpperCase());r&&(e.preventDefault(),t.doc.stylePicker.close(),l(i).setTool(r.id))}var s=jc();r(`keydown`,C,o);var c=T(s);K(c,17,()=>a,({id:e,name:t,key:n})=>e,(e,n)=>{let r=()=>l(n).id,a=()=>l(n).name,o=()=>l(n).key;{let n=R(()=>l(i).tool===r());fn(e,{get icon(){return r()},get label(){return a()},get title(){return`${a()??``} (${o()??``})`},size:`lg`,get"aria-pressed"(){return l(n)},get"aria-keyshortcuts"(){return o()},onclick:()=>{t.doc.visibleArea.close({returning:!1}),t.doc.stylePicker.close(),l(i).setTool(r())}})}});var u=A(c,4);fn(u,{icon:`layers`,label:`Elements`,title:`Elements (E)`,size:`lg`,get selected(){return n()},get"aria-expanded"(){return n()},"aria-controls":`elements-drawer`,"aria-keyshortcuts":`E`,onclick:()=>n(!n())}),I(s),m(e,s),F()}var Nc=g(`<p class="copy-error svelte-1j8cygg" role="alert"> </p>`),Pc=g(`<section class="svelte-1j8cygg"><h3><label>Link</label></h3> <!> <div class="row svelte-1j8cygg"><!> <!></div> <!> <!></section> <section class="svelte-1j8cygg"><h3><label>Embed code</label></h3> <!> <!> <div class="buttons svelte-1j8cygg"><!></div> <!></section> <span class="sr-only" role="status"> </span> <!>`,1);function Fc(e,r){let i=u();U(r,!0);let o=V(void 0),s=V(void 0);function c(){l(o)?.focus()}function d(e,t){let n=t===`link`?`the link`:`the embed code`;navigator.clipboard.writeText(e).then(()=>v(t),()=>L(h,`Copying failed. Please select ${n} and copy it yourself.`))}let f=V(``),h=V(``),g={};function v(e){let t=l(e===`link`?o:s);if(!t)return;clearTimeout(g[e]),t.classList.add(`success`);let n=e===`link`?`Link copied`:`Embed code copied`;L(f,n,!0),g[e]=setTimeout(()=>{t.classList.remove(`success`),l(f)===n&&L(f,``)},2e3)}var y={focus:c},b=Pc(),x=_(b),S=T(x),C=t(S),w=A(S,2);mn(w,{children:(e,t)=>{z();var n=p(`The map is not stored on a server: all of it is in the link itself. So a link shows the map as it is now, and anyone
21
+ who has it can view the map, but not change it.`);m(e,n)},$$slots:{default:!0}});var E=A(w,2),D=T(E);cn(D,{get id(){return`${i}-link`},class:`code`,readonly:!0,get value(){return r.link},onfocus:e=>e.currentTarget.select()});var O=A(D,2);X(O,{variant:`primary`,class:`copy`,onclick:()=>d(r.link,`link`),get element(){return l(o)},set element(e){L(o,e,!0)},children:(e,t)=>{z();var n=p(`Copy link`);m(e,n)},$$slots:{default:!0}}),I(E);var j=A(E,2);a(j,()=>r.linkNotice??M);var N=A(j,2);mn(N,{children:(e,t)=>{z();var n=p(`To pass the map on for editing, download it as a file (☰ → Download…).`);m(e,n)},$$slots:{default:!0}}),I(x);var ee=A(x,2),P=T(ee),te=t(P),R=A(P,2);mn(R,{children:(e,t)=>{z();var n=p(`Paste it into the HTML of a website.`);m(e,n)},$$slots:{default:!0}});var ne=A(R,2);jt(ne,{get id(){return`${i}-embed`},class:`code`,rows:2,readonly:!0,get value(){return r.embed},onfocus:e=>e.currentTarget.select()});var H=A(ne,2),re=T(H);X(re,{class:`copy`,onclick:()=>d(r.embed,`embed`),get element(){return l(s)},set element(e){L(s,e,!0)},children:(e,t)=>{z();var n=p(`Copy embed code`);m(e,n)},$$slots:{default:!0}}),I(H);var W=A(H,2);a(W,()=>r.embedOptions??M),I(ee);var K=A(ee,2),q=t(K,!0),J=A(K,2),ie=e=>{var r=Nc(),i=t(r,!0);B(()=>n(i,l(h))),m(e,r)};return G(J,e=>{l(h)&&e(ie)}),B(()=>{k(C,`for`,`${i}-link`),k(te,`for`,`${i}-embed`),n(q,l(f))}),m(e,b),F(y)}var Ic=g(`<div class="preview svelte-1flq3fx"><div class="toolbar svelte-1flq3fx"><h3 class="svelte-1flq3fx">Preview</h3> <span class="sr-only">Aspect ratio of the preview</span> <div class="ratios svelte-1flq3fx"><!></div> <!></div> <div class="stage svelte-1flq3fx"><iframe title="preview" allow="fullscreen; geolocation"></iframe></div></div>`);function Lc(e,t){let n=u();U(t,!0);let r,i=V(`wide`),a,o=[{value:`wide`,label:`Horizontal`},{value:`square`,label:`Square`},{value:`tall`,label:`Vertical`}];function s(e,t){c(),a=setTimeout(()=>{r&&(r.src===e?r.contentWindow?.location.reload():r.src=e)},t)}function c(){clearTimeout(a),a=void 0}function d(e){L(i,e,!0),setTimeout(()=>r?.contentWindow?.location.reload(),0)}var f={show:s,stop:c},h=Ic(),g=T(h),_=A(T(g),2),v=A(_,2),y=T(v);dn(y,{get labelledby(){return`${n}-ratio`},get value(){return l(i)},onchange:d,get options(){return o}}),I(v);var b=A(v,2);X(b,{get onclick(){return t.onreload},children:(e,t)=>{z();var n=p(`Reload`);m(e,n)},$$slots:{default:!0}}),I(g);var x=A(g,2),S=T(x);return P(S,e=>r=e,()=>r),I(x),I(h),B(()=>{k(_,`id`,`${n}-ratio`),j(S,1,`aspect-`+l(i),`svelte-1flq3fx`)}),m(e,h),F(f)}var Rc=g(`<p class="notice svelte-w7i6fd"> </p>`),zc=g(`<p class="notice svelte-w7i6fd"><!></p>`),Bc=g(`<!> Its visible area, its rotation and tilt, and its controls are set on the map.`,1),Vc=g(`<span></span>`),Hc=g(`<li class="svelte-w7i6fd"><span></span> </li>`),Uc=g(`<div class="bar svelte-w7i6fd" role="img"></div> <ul class="parts svelte-w7i6fd" aria-hidden="true"></ul>`,1),Wc=g(`<div class="layout svelte-w7i6fd"><!> <div class="panel svelte-w7i6fd"><!> <section><h3>What visitors see</h3> <!> <div class="buttons svelte-w7i6fd"><!> <!></div> <!></section> <section><h3>Link size</h3> <!> <!> <!> <p class="result svelte-w7i6fd"> </p> <!> <!></section></div></div>`);function Gc(e,r){let i=u();U(r,!0);let a=H(r,`state`,7),o,s=V(void 0),c=V(void 0),d=new URL(`view/`,window.location.href.replace(/#.*$/,``)).href,f=V(``),g=V(``);function v(){o?.open(),l(c)?.focus(),le(1),J()}let y=V(`auto`),b=V(0),x=V(0),S=R(()=>l(y)===`auto`?l(b):Math.min(l(y),l(x))),C=V(!0),w=V(!1);function D(e){return e===0?`Exact`:e<=l(b)?`High`:e<=l(b)+1?`Medium`:`Low`}let O=e=>pt(ke(e));function M(){let e=a().mapDocument,t=e.frame??e.getBounds();(!t||Ge(t)===0)&&(t=e.view.viewBounds()),L(b,Be(Ge(t)),!0),L(x,Math.max(l(b),Be(Ee(t))),!0)}let ee=V(void 0);function te(){let e=a().mapDocument,t=e.elements.map(e=>e.getState()),n=e.frame;if(!n){L(ee,t.length===0?{kind:`empty`}:void 0,!0);return}let r=t.filter(e=>{let[t,r,i,a]=We([e]);return t<n[0]||r<n[1]||i>n[2]||a>n[3]}).length;L(ee,r>0?{kind:`outside`,count:r}:void 0,!0)}function ne(){ue(),a().mapDocument.visibleArea.open({onDone:()=>v()})}function re(){a().mapDocument.frame=void 0,a().log(),le(0)}let W=V(void 0),q;function J(){L(W,void 0),clearTimeout(q),q=setTimeout(()=>{let e=l(f).split(`#`)[1];try{e&&L(W,In(e),!0)}catch{}},50)}let ie=[[`label`,`Labels`],[`popup`,`Popups`],[`legend`,`Legend`]],ae=R(()=>{let e=l(f).split(`#`)[1];if(!e)return;let t;try{({kinds:t}=Fn(e))}catch{return}let n=t.strings+t.stringRefs,r=t.coordinates+t.frame,i=Object.values(t).reduce((e,t)=>e+t,0),a=l(W)?ie.filter(([e])=>l(W)[e]>0).map(([e,t])=>({id:`text-${e}`,label:t,text:!0,bits:l(W)[e]})):[{id:`texts`,label:`Texts`,text:!0,bits:n}],o=[{id:`rest`,label:`Meta`,text:!1,bits:i-a.reduce((e,{bits:t})=>e+t,0)-r},...a,{id:`geometry`,label:`Geometry`,text:!1,bits:r}],s=o.map(({bits:e})=>100*e/i),c=s.map(Math.floor),u=s.map((e,t)=>({i:t,rest:e-c[t]})).sort((e,t)=>t.rest-e.rest),d=100-c.reduce((e,t)=>e+t,0);for(let e=0;e<d;e++)c[u[e].i]++;return{textBits:n,list:o.map((e,t)=>({...e,percent:c[t]}))}}),oe=R(()=>{if(!l(ae))return;let e=l(ae).list.find(({id:e})=>e===`geometry`).bits,t=l(ae).list.find(({id:e})=>e===`rest`).bits,n=Math.max(l(ae).textBits,e,t);switch(n===l(ae).textBits?`texts`:n===e?`geometry`:`rest`){case`texts`:switch(l(ae).list.filter(({text:e})=>e).reduce((e,t)=>t.bits>e.bits?t:e).id){case`text-label`:return`Shorter labels make it shorter.`;case`text-popup`:return l(C)?`Shorter popups make it shorter, or a link without them.`:`Shorter popups make it shorter.`;case`text-legend`:return`Shorter legend entries make it shorter.`;default:return`Shorter labels and popups make it shorter.`}case`geometry`:return l(S)<l(x)?`A lower accuracy makes it shorter, and so do fewer points of lines and polygons.`:`Fewer points of lines and polygons make it shorter.`;default:return`Fewer different styles make it shorter.`}});function se(e){let t=a().mapDocument;t.viewer={...t.viewer,scrollZoom:e?`protected`:`free`},a().log(),le(0)}function Y(){return`${d}#${a().getHash({resolution:ke(l(S)),popups:l(C)})}`}function ce(){let{fullscreen:e,locate:t}=a().mapDocument.controls,n=[e&&`fullscreen`,t&&`geolocation`].filter(e=>e!==!1),r=n.length>0?` allow="${n.join(`; `)}"`:``;return`<iframe src="${Y()}" style="width:100%; height:60vh; border:0"${r}></iframe>`}function le(e=500){o?.isOpen()&&(M(),te(),L(w,ti(a().mapDocument.getState()),!0),L(f,Y(),!0),L(g,ce(),!0),l(s)?.show(l(f),e))}function ue(){o?.close()}var de={open:v,close:ue};return P(Dt(e,{size:`fullscreen`,title:`Share or embed the map`,onclose:()=>{l(s)?.stop(),clearTimeout(q)},children:(e,r)=>{var o=Wc(),u=T(o);P(Lc(u,{onreload:()=>le(0)}),e=>L(s,e,!0),()=>l(s));var d=A(u,2),v=T(d);P(Fc(v,{get link(){return l(f)},get embed(){return l(g)},linkNotice:e=>{var r=h(),i=_(r),a=e=>{var r=Rc(),i=t(r);B(()=>n(i,`The link is longer than 2000 characters, so it may not work everywhere, e.g. in some chat and mail programs.
22
+ ${l(oe)??``} The embed code works at any length.`)),m(e,r)};G(i,e=>{l(f).length>2e3&&e(a)}),m(e,r)},embedOptions:e=>{{let t=R(()=>a().mapDocument.controls.scrollZoom!==`free`);Z(e,{get checked(){return l(t)},onchange:e=>se(e.currentTarget.checked),title:`The wheel scrolls the page, also over the map, which zooms with Ctrl (or ⌘) and the wheel, and moves on touch screens with two fingers`,children:(e,t)=>{z();var n=p(`Scrolling the page does not zoom the map`);m(e,n)},$$slots:{default:!0}})}},$$slots:{linkNotice:!0,embedOptions:!0}}),e=>L(c,e,!0),()=>l(c));var M=A(v,2),te=T(M),F=A(te,2),V=e=>{var t=zc(),r=T(t),i=e=>{var t=p();B(()=>n(t,`${l(ee).count??``}
23
+ ${l(ee).count===1?`element is`:`elements are`} outside the visible area.`)),m(e,t)},a=e=>{var t=p(`The map is empty and has no visible area, so it shows the whole world.`);m(e,t)};G(r,e=>{l(ee).kind===`outside`?e(i):e(a,-1)}),I(t),m(e,t)};G(F,e=>{l(ee)&&e(V)});var H=A(F,2),U=T(H);X(U,{onclick:ne,children:(e,t)=>{z();var n=p(`Edit shared map…`);m(e,n)},$$slots:{default:!0}});var W=A(U,2),q=e=>{X(e,{variant:`ghost`,onclick:re,children:(e,t)=>{z();var n=p(`Fit to elements`);m(e,n)},$$slots:{default:!0}})};G(W,e=>{l(ee)?.kind===`outside`&&e(q)}),I(H);var ie=A(H,2);mn(ie,{children:(e,t)=>{var r=Bc(),i=_(r),o=e=>{var t=p();B(()=>n(t,a().mapDocument.frame?`The map shows the visible area that you set, on every screen.`:`The map shows all elements, on every screen.`)),m(e,t)};G(i,e=>{l(ee)||e(o)}),z(),m(e,r)},$$slots:{default:!0}}),I(M);var Y=A(M,2),ce=T(Y),ue=A(ce,2);Q(ue,{get id(){return`${i}-precision`},label:`Accuracy`,children:(e,t)=>{var n=()=>l(x)-l(S),r=e=>{L(y,l(x)-e),le(0)};Pt(e,{get id(){return`${i}-precision`},min:0,get max(){return l(x)},step:1,get value(){return n()},set value(e){r(e)},format:e=>D(l(x)-e),describe:e=>`${D(l(x)-e)}, ${O(l(x)-e)}`})},$$slots:{default:!0}});var de=A(ue,2);{let e=R(()=>l(y)===`auto`);Z(de,{get checked(){return l(e)},onchange:e=>{L(y,e.currentTarget.checked?`auto`:l(b),!0),le(0)},children:(e,t)=>{z();var n=p(`Automatic, fine enough for the visible area`);m(e,n)},$$slots:{default:!0}})}var fe=A(de,2),pe=e=>{Z(e,{get checked(){return l(C)},onchange:e=>{L(C,e.currentTarget.checked,!0),le(0),J()},title:`Without them, a click on an element of the shared map opens nothing, and the link is shorter. The map keeps its popups.`,children:(e,t)=>{z();var n=p(`Include popups`);m(e,n)},$$slots:{default:!0}})};G(fe,e=>{l(w)&&e(pe)});var me=A(fe,2),he=t(me),ge=A(me,2),_e=e=>{var t=Uc(),r=_(t);K(r,21,()=>l(ae).list,({id:e,label:t,bits:n,percent:r})=>e,(e,t)=>{let n=()=>l(t).id,r=()=>l(t).label,i=()=>l(t).bits,a=()=>l(t).percent;var o=Vc();let s;B(()=>{j(o,1,E(n()),`svelte-w7i6fd`),k(o,`title`,`${r()??``} ${a()??``} %`),s=N(o,``,s,{"flex-grow":i()})}),m(e,o)}),I(r);var i=A(r,2);K(i,21,()=>l(ae).list,({id:e,label:t,percent:n})=>e,(e,t)=>{let r=()=>l(t).id,i=()=>l(t).label,a=()=>l(t).percent;var o=Hc(),s=T(o),c=A(s);I(o),B(()=>{j(s,1,`swatch ${r()??``}`,`svelte-w7i6fd`),n(c,`${i()??``} ${a()??``} %`)}),m(e,o)}),I(i),B(e=>k(r,`aria-label`,`The link holds: ${e??``}`),[()=>l(ae).list.map(({label:e,percent:t})=>`${e} ${t} %`).join(`, `)]),m(e,t)};G(ge,e=>{l(ae)&&e(_e)});var ve=A(ge,2);mn(ve,{children:(e,t)=>{z();var r=p();B(()=>n(r,`A lower accuracy makes a shorter link${l(w)?`, and so does leaving out the popups`:``}.`)),m(e,r)},$$slots:{default:!0}}),I(Y),I(d),I(o),B(e=>{k(M,`aria-labelledby`,`${i}-area`),k(te,`id`,`${i}-area`),k(Y,`aria-labelledby`,`${i}-size`),k(ce,`id`,`${i}-size`),n(he,`Round to ${e??``} · Link: ${l(f).length??``} characters`)},[()=>O(l(S))]),m(e,o)},$$slots:{default:!0}}),e=>o=e,()=>o),F(de)}function Kc(e){let t=!1,n=()=>{if(t)return;e.style.width=``;let n=e.getBoundingClientRect().width;n>0&&(e.style.width=`${Math.ceil(n)}px`)};return n(),document.fonts?.ready.then(n),()=>{t=!0,e.style.width=``}}var qc=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Created%20with%20Inkscape%20(http://www.inkscape.org/)%20--%3e%3csvg%20width='31.344mm'%20height='36.193mm'%20version='1.1'%20viewBox='0%200%2031.344%2036.193'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cdefs%3e%3clinearGradient%20id='linearGradient7481-1'%20x1='363.33'%20x2='415.07'%20y1='199.32'%20y2='126.38'%20gradientTransform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23810098'%20offset='0'/%3e%3cstop%20stop-color='%239d35ff'%20offset='1'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linearGradient11293-0'%20x1='363.33'%20x2='415.07'%20y1='215.98'%20y2='126.38'%20gradientTransform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2393a813'%20offset='0'/%3e%3cstop%20stop-color='%23003e28'%20offset='1'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linearGradient11269-4'%20x1='363.33'%20x2='311.6'%20y1='199.32'%20y2='126.38'%20gradientTransform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236b0075'%20offset='0'/%3e%3cstop%20stop-color='%239d35ff'%20offset='1'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linearGradient11285-5'%20x1='363.33'%20x2='311.6'%20y1='215.98'%20y2='126.38'%20gradientTransform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2393a813'%20offset='0'/%3e%3cstop%20stop-color='%23005034'%20offset='1'/%3e%3c/linearGradient%3e%3clinearGradient%20id='linearGradient12100'%20x1='363.33'%20x2='363.33'%20y1='126.38'%20y2='96.515'%20gradientTransform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23006636'%20offset='0'/%3e%3cstop%20stop-color='%230065bf'%20offset='1'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20transform='translate(-36.82%20-130.74)'%3e%3cg%20transform='matrix(.37509%200%200%20.37509%20-63.953%20101.53)'%20stroke-linecap='round'%3e%3cpath%20transform='matrix(.70538%200%200%20.70538%2054.155%2015.902)'%20d='m363.33%20224.65-59.232-34.198v-68.396l59.232-34.198%2059.232%2034.198v68.396z'%20fill='%231d1d1d'%20stroke-width='4.5354'/%3e%3cg%20stroke-width='3.1992'%3e%3cpath%20d='m326.57%20105.05-5.9466%203.4333c-10.181%205.8781-10.182%2011.756-10.182%2011.756l4.5e-4%2036.258%2010.181-5.8786c0-30.379-1.1e-4%20-30.379%2016.129-39.692%200.13997-0.0808%2010.04-5.7958%2010.181-5.8773-10.181-5.8787-10.181-5.8787-20.363%200z'%20fill='url(%23linearGradient7481-1)'/%3e%3cpath%20d='m346.94%20105.05c-3.3938%201.9594-6.7874%203.9179-10.181%205.8773%200%2030.38-2.4e-4%2030.38-26.31%2045.57v11.756c36.491-21.068%2036.491-21.067%2036.491-63.204z'%20fill='url(%23linearGradient11293-0)'/%3e%3cpath%20d='m294.32%20105.05c-10.182-5.8783-10.182-5.8783-20.363%200%200.40603%200.23442%209.7838%205.6486%2010.18%205.8773%2016.13%209.3123%2016.13%209.3127%2016.13%2039.692l10.181%205.8782-4.5e-4%20-36.258c0-5.8781-10.203-11.769-10.203-11.769z'%20fill='url(%23linearGradient11269-4)'/%3e%3cpath%20d='m273.95%20105.05c0%2042.136%201.8e-4%2042.135%2036.491%2063.204v-11.756c-26.31-15.19-26.31-15.19-26.31-45.57-3.3938-1.9594-6.7875-3.9179-10.181-5.8773z'%20fill='url(%23linearGradient11285-5)'/%3e%3c/g%3e%3cpath%20d='m310.45%2083.982-5.6e-4%202.88e-4%20-18.245%2010.534%2018.245%2010.534%202.9e-4%20-10.534v10.534l18.246-10.534-18.246-10.534z'%20fill='url(%23linearGradient12100)'%20stroke-width='2.2186'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e`,Jc=g(`<!>Editor`,1),Yc=g(`<!>Preview`,1),Xc=g(`<!>Share`,1),Zc=g(`<header class="topbar svelte-kbslt5"><!> <h1 class="svelte-kbslt5"><img alt="" width="19" height="22" class="svelte-kbslt5"/><span class="svelte-kbslt5">VersaTiles Map Editor</span></h1> <span class="separator svelte-kbslt5"></span> <!> <!> <span class="spacer svelte-kbslt5"></span> <!> <!> <!></header>`);function Qc(e,t){U(t,!0);let n=H(t,`previewing`,15,!1),r=R(()=>t.doc.state.history),i=V(void 0),a=V(void 0),o=V(void 0),s=V(void 0);d(()=>{n();let e=[l(a),l(o),l(s)].flatMap(e=>e?[Kc(e)]:[]);return()=>e.forEach(e=>e())});var c=Zc(),u=T(c);es(u,{get doc(){return t.doc},get sync(){return t.sync},get files(){return t.files}});var f=A(u,2),p=T(f);z(),I(f),P(f,e=>L(a,e),()=>l(a));var g=A(f,4);{let e=R(()=>!l(r).undoEnabled);fn(g,{icon:`undo`,label:`Undo`,title:`Undo (Cmd/Ctrl+Z)`,get disabled(){return l(e)},onclick:()=>t.doc.state.undo()})}var v=A(g,2);{let e=R(()=>!l(r).redoEnabled);fn(v,{icon:`redo`,label:`Redo`,title:`Redo (Shift+Cmd/Ctrl+Z)`,get disabled(){return l(e)},onclick:()=>t.doc.state.redo()})}var y=A(v,4);{let e=R(()=>n()?`Back to editing (Escape)`:`The map as visitors see it`);X(y,{class:`whole`,size:`md`,get title(){return l(e)},onclick:()=>n(!n()),get element(){return l(o)},set element(e){L(o,e,!0)},children:(e,t)=>{var r=h(),i=_(r),a=e=>{var t=Jc(),n=_(t);gt(n,{name:`edit`,size:16}),z(),m(e,t)},o=e=>{var t=Yc(),n=_(t);gt(n,{name:`preview`,size:16}),z(),m(e,t)};G(i,e=>{n()?e(a):e(o,-1)}),m(e,r)},$$slots:{default:!0}})}var b=A(y,2);X(b,{class:`whole`,variant:`primary`,size:`md`,onclick:()=>l(i)?.open(),get element(){return l(s)},set element(e){L(s,e,!0)},children:(e,t)=>{var n=Xc(),r=_(n);gt(r,{name:`share`,size:16}),z(),m(e,n)},$$slots:{default:!0}});var x=A(b,2);P(Gc(x,{get state(){return t.doc.state}}),e=>L(i,e,!0),()=>l(i)),I(c),B(()=>{k(f,`title`,pn),k(p,`src`,qc)}),m(e,c),F()}var $c=g(`<div class="drawbar svelte-1x1709y" role="group" aria-label="Drawing"><span class="hint svelte-1x1709y" role="status"> </span> <!> <!> <!></div>`);function el(e,r){U(r,!0);let i=H(r,`left`,3,0),a=H(r,`right`,3,0),o=R(()=>r.doc.drawing),s=R(()=>l(o).tool===`line`||l(o).tool===`polygon`),c=R(()=>l(o).points.length),u=R(()=>l(s)?`${Lr(l(o).tool)}: ${l(c)} ${l(c)===1?`node`:`nodes`}`:Lr(l(o).tool));var d=h(),f=_(d),g=e=>{var r=$c();let d;var f=T(r),h=t(f,!0),g=A(f,2),_=e=>{{let t=R(()=>l(c)===0);X(e,{get disabled(){return l(t)},onclick:()=>l(o).removeLastPoint(),children:(e,t)=>{z();var n=p(`Remove last node`);m(e,n)},$$slots:{default:!0}})}};G(g,e=>{l(s)&&e(_)});var v=A(g,2);X(v,{variant:`ghost`,onclick:()=>l(o).setTool(`select`),children:(e,t)=>{z();var n=p(`Cancel`);m(e,n)},$$slots:{default:!0}});var y=A(v,2),b=e=>{{let t=R(()=>!l(o).canFinish);X(e,{variant:`primary`,get disabled(){return l(t)},onclick:()=>l(o).finish(),children:(e,t)=>{z();var n=p(`Finish`);m(e,n)},$$slots:{default:!0}})}};G(y,e=>{l(s)&&e(b)}),I(r),B(()=>{d=N(r,``,d,{"--left":`${i()??``}px`,"--right":`${a()??``}px`}),n(h,l(u))}),m(e,r)};G(f,e=>{l(o).active&&e(g)}),m(e,d),F()}function tl(e,t){U(t,!0);let n=R(()=>t.mapDocument.selection.selectedNode),r=V(void 0);function i(){let e=l(n);L(r,e?t.mapDocument.view.map.project(e.coordinates):void 0,!0)}d(()=>(i(),t.mapDocument.view.map.on(`move`,i),()=>t.mapDocument.view.map.off(`move`,i)));function a(){t.mapDocument.selection.deleteSelectedNode()}var o=h(),s=_(o),c=e=>{{let t=R(()=>l(n).deletable?`Delete node (Delete/Backspace)`:`The shape needs this node`),i=R(()=>l(r).x+12),o=R(()=>l(r).y-36),s=R(()=>!l(n).deletable);fn(e,{class:`delete-node`,icon:`close`,label:`Delete node`,get title(){return l(t)},size:`xs`,floating:!0,get style(){return`left: ${l(i)??``}px; top: ${l(o)??``}px`},get disabled(){return l(s)},onclick:a})}};G(s,e=>{l(n)&&l(r)&&e(c)}),m(e,o),F()}var nl=g(`<div role="toolbar" aria-label="Selection"><!> <!> <!> <!> <!> <span class="separator svelte-7carbk"></span> <!></div>`);function rl(e,t){U(t,!0);let n=H(t,`top`,3,0),r=H(t,`left`,3,0),i=H(t,`right`,3,0),a=H(t,`bottom`,3,0),o=R(()=>t.doc.selection.selectedElements),s=V(void 0),c=V(void 0),u=V(!1);function f(){let e=t.doc.selection.selectedElements;if(e.length===0||!l(s))return L(c,void 0);let o=t.doc.view.map,u=1/0,d=1/0,f=-1/0,p=-1/0;for(let t of e)for(let[e,n]of ct(t.getFeature().geometry)){let{x:t,y:r}=o.project([e,n]);u=Math.min(u,t),d=Math.min(d,r),f=Math.max(f,t),p=Math.max(p,r)}let{clientWidth:m,clientHeight:h}=o.getContainer(),g=l(s).offsetWidth,_=l(s).offsetHeight,v=d-_-10-(e.some(e=>e.getStyleLayers().symbol)?24:0);v<n()+10&&(v=p+10);let y=(u+f)/2-g/2;L(c,{x:Math.round(Math.max(r()+10,Math.min(m-i()-g-10,y))),y:Math.round(Math.max(n()+10,Math.min(h-a()-_-10,v)))},!0)}d(()=>{l(o),f()}),d(()=>{let e=t.doc.view.map,n=()=>L(u,!0),r=()=>{L(u,!1),f()};e.on(`move`,f),e.on(`mousedown`,n),e.on(`touchstart`,n),e.on(`mouseup`,r),e.on(`touchend`,r);let i=t.doc.state.events.on(`change`,f);return()=>{e.off(`move`,f),e.off(`mousedown`,n),e.off(`touchstart`,n),e.off(`mouseup`,r),e.off(`touchend`,r),t.doc.state.events.off(`change`,i)}});var p=nl();let h,g;var _=T(p);fn(_,{icon:`duplicate`,label:`Duplicate`,title:`Duplicate (Cmd/Ctrl+D, or Alt/Option-drag)`,onclick:()=>ri(t.doc)});var v=A(_,2);fn(v,{icon:`front`,label:`Bring to front`,title:`Bring to front, over the other elements (Shift+Cmd/Ctrl+↑; one step: Cmd/Ctrl+↑)`,onclick:()=>ii(t.doc,`front`)});var y=A(v,2);fn(y,{icon:`back`,label:`Send to back`,title:`Send to back, under the other elements (Shift+Cmd/Ctrl+↓; one step: Cmd/Ctrl+↓)`,onclick:()=>ii(t.doc,`back`)});var b=A(y,2);{let e=R(()=>!oi(t.doc));fn(b,{icon:`pipette`,label:`Copy style`,title:`Copy the style of the element (Cmd/Ctrl+Alt+C)`,get disabled(){return l(e)},onclick:()=>si(t.doc)})}var x=A(b,2);{let e=R(()=>!ci(t.doc));fn(x,{icon:`brush`,label:`Paste style`,title:`Paste the style onto the selected elements (Cmd/Ctrl+Alt+V)`,get disabled(){return l(e)},onclick:()=>mi(t.doc)})}var S=A(x,4);fn(S,{icon:`trash`,label:`Delete`,title:`Delete (Delete/Backspace)`,danger:!0,onclick:()=>ai(t.doc)}),I(p),P(p,e=>L(s,e),()=>l(s)),B(()=>{h=j(p,1,`selection-bar svelte-7carbk`,null,h,{pressed:l(u)}),k(p,`hidden`,l(o).length===0||t.doc.selection.selectedNode!==void 0),g=N(p,``,g,{left:`${l(c)?.x??0??``}px`,top:`${l(c)?.y??0??``}px`})}),m(e,p),F()}var il=`versatiles-map-editor:session:`,al=class{#e=new Map;#t=new Set;#n=new Set;get#r(){return typeof navigator>`u`?void 0:navigator.locks}async acquire(e,t=0){if(this.#e.has(e))return!0;let n=this.#r;if(!n)return!0;let r=t>0?{signal:AbortSignal.timeout(t)}:{ifAvailable:!0};return this.#t.add(e),new Promise(t=>{n.request(il+e,r,n=>{this.#t.delete(e);let r=this.#n.delete(e);if(!n||r)t(!1);else return t(!0),new Promise(t=>this.#e.set(e,t))}).catch(()=>{this.#t.delete(e),this.#n.delete(e),t(!1)})})}release(e){this.#e.get(e)?.(),this.#e.delete(e),this.#t.has(e)&&this.#n.add(e)}releaseAll(){for(let e of[...this.#e.keys(),...this.#t])this.release(e)}async openElsewhere(){let e=this.#r;if(!e)return new Set;let{held:t=[]}=await e.query(),n=t.flatMap(({name:e})=>e?.startsWith(il)?[e.slice(30)]:[]);return new Set(n.filter(e=>!this.#e.has(e)))}},ol=`versatiles-map-editor`,sl=1,cl=`sessions`,ll=`steps`,ul=`versatiles-map-editor:sessions`;function dl(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function fl(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error??Error(`Transaction aborted`))})}var pl=(e,t,n)=>IDBKeyRange.bound([e,t],[e,n]),ml=class e{#e;#t=Promise.resolve();#n=new Map;#r=[];#i=[];#a=typeof BroadcastChannel>`u`?void 0:new BroadcastChannel(ul);constructor(e){this.#e=e,this.#a&&(this.#a.onmessage=({data:e})=>this.#o(String(e),!1))}static async open(t=ol){let n;try{let e=indexedDB.open(t,sl);e.onupgradeneeded=()=>{let t=e.result;t.createObjectStore(cl,{keyPath:`id`}),t.createObjectStore(ll,{keyPath:[`session`,`step`]})},n=await dl(e)}catch(e){console.warn(`The browser storage is not available`,e);return}let r=new e(n);return navigator.storage?.persist?.().catch(()=>{}),r}onError(e){this.#r.push(e)}onChange(e){return this.#i.push(e),()=>this.#i=this.#i.filter(t=>t!==e)}#o(e,t){t&&this.#a?.postMessage(e),this.#i.forEach(t=>t(e))}async close(){await this.flush(),this.#a?.close(),this.#e.close()}async flush(){let e;do e=this.#t,await e;while(e!==this.#t)}async list(){return await this.flush(),(await dl(this.#e.transaction(cl,`readonly`).objectStore(cl).getAll())).sort((e,t)=>t.changed-e.changed)}async loadCurrent(e){await this.flush();let t=this.#e.transaction([cl,ll],`readonly`),n=await dl(t.objectStore(cl).get(e));if(!n||n.position<n.first)return;let r=await dl(t.objectStore(ll).get([e,n.position]));return r?{session:n,state:r.state}:void 0}async load(e){await this.flush();let t=this.#e.transaction([cl,ll],`readonly`),n=await dl(t.objectStore(cl).get(e));if(!n)return;let r=n.first+n.sizes.length-1;return{session:n,states:(await dl(t.objectStore(ll).getAll(pl(e,n.first,r)))).map(e=>e.state),position:n.position-n.first}}create(e,{camera:t,title:n}={}){let r=crypto.randomUUID(),i={id:r,changed:Date.now(),first:0,position:0,sizes:[e.length]};return t&&(i.camera=t),n&&(i.title=n),this.#c(r,[cl,ll],t=>{t.objectStore(cl).put(i),t.objectStore(ll).put({session:r,step:0,state:e})}),r}push(e,t){this.#s(e,(n,r)=>{let i=r.objectStore(ll),a=n.first+n.sizes.length-1;n.position<a&&i.delete(pl(e,n.position+1,a)),n.sizes.length=n.position+1-n.first,n.position++,i.put({session:e,step:n.position,state:t}),n.sizes.push(t.length);let o=n.sizes.reduce((e,t)=>e+t,0);for(;n.sizes.length>1&&(n.sizes.length>100||o>10485760);)i.delete([e,n.first]),o-=n.sizes.shift(),n.first++;n.changed=Date.now()})}setUndone(e,t){this.#s(e,e=>{let n=e.first+e.sizes.length-1;e.position=Math.min(n,Math.max(e.first,n-t))})}setCamera(e,t){let n=this.#n.has(e);this.#n.set(e,t),!n&&this.#c(e,[cl],async t=>{let n=this.#n.get(e);this.#n.delete(e);let r=t.objectStore(cl),i=await dl(r.get(e));i&&(n?i.camera=n:delete i.camera,r.put(i))})}setTitle(e,t){this.#s(e,e=>{t?e.title=t:delete e.title})}async copy(e){let t=await this.load(e);if(!t)return;let n=crypto.randomUUID(),{session:r}=t;return this.#c(n,[cl,ll],e=>{e.objectStore(cl).put({...r,id:n,changed:Date.now()}),t.states.forEach((t,i)=>{e.objectStore(ll).put({session:n,step:r.first+i,state:t})})}),n}delete(e){this.#c(e,[cl,ll],t=>{t.objectStore(cl).delete(e),t.objectStore(ll).delete(pl(e,-1/0,1/0))})}#s(e,t){this.#c(e,[cl,ll],async n=>{let r=n.objectStore(cl),i=await dl(r.get(e));i&&(t(i,n),r.put(i))})}#c(e,t,n){this.#t=this.#t.then(async()=>{let r;try{r=this.#e.transaction(t,`readwrite`);let i=fl(r);i.catch(()=>{}),await n(r),await i,this.#o(e,!0)}catch(e){try{r?.abort()}catch{}console.error(`Failed to write to the browser storage`,e),this.#r.forEach(t=>t(e))}})}},hl=10,gl=`versatiles-map-editor:session`,_l=500;function vl(e){return Re(e)}async function yl(){await Vt();let e=nn.current.startBackground;return e?{elements:[],meta:{background:e}}:{elements:[]}}var bl=class e{#e;#t;#n=new al;#r;#i;#a;#o;#s=!1;openings=0;#c=V(`saved`);get status(){return l(this.#c)}set status(e){L(this.#c,e,!0)}constructor(e,t){this.#e=e,this.#t=t,e||(this.status=`memory`),e?.onError(()=>{this.status!==`failed`&&(this.status=`failed`,Ct(`The map could not be saved in this browser. Download it to keep it.`))})}static async open(t){return new e(await ml.open(),t)}async prepare(e){let t=e?await this.#l(e):void 0;if(t)return t;let n=this.#e;if(!n)return Ct(`This browser does not keep maps. Download the map to keep it.`,`info`),{kind:`new`};let r=e=>({kind:`session`,stored:e,camera:e.session.camera}),i=Cl(),a=i?await n.load(i):void 0;if(i&&a&&xl(a)){if(await this.#n.acquire(i,_l))return r(a);let e=await n.copy(i),t=e?await n.load(e):void 0;if(e&&t&&await this.#n.acquire(e))return r(t)}let o=await n.list(),s=!1;for(let{id:e}of o){if(!await this.#n.acquire(e)){s=!0;continue}let t=await n.load(e);if(t&&xl(t))return r(t);this.#n.release(e)}return s&&Ct(`Your last map is open in another tab.`,`info`),{kind:`new`}}async#l(e){this.#t();let t;try{t=Ke(e)}catch(e){console.error(`Invalid map state in URL hash`,e),e instanceof Ue?Ct(`The map in the link was made with a newer version of the editor. Please reload the page and try again.`):Ct(`The map in the link could not be read. The link may be incomplete.`);return}let n=vl(t),r;try{let e=await this.#y(async({session:e,state:t})=>t===n&&await this.#n.acquire(e.id));r=e&&await this.#e?.load(e.session.id),e&&!r&&this.#n.release(e.session.id)}catch(e){console.warn(`Failed to look for the map of the link in the storage`,e)}return r?{kind:`session`,stored:r}:{kind:`link`,state:t,encoded:n}}async last(){let e=await this.#y(async({state:e})=>Sl(e)!==void 0),t=e&&Sl(e.state);return e&&t?t:void 0}async recent(e=hl){let t=this.#e;if(!t)return[];let n=await this.#n.openElsewhere(),r=(await t.list()).slice(0,e);return Promise.all(r.map(async({id:e,title:r,changed:i})=>{let a=r;if(!a){let n=await t.loadCurrent(e),r=n&&Sl(n.state);a=r?Rr(r.elements.map(e=>e.type)):n?`Unreadable map`:``}return{id:e,name:a||`Untitled map`,changed:i,current:e===this.#i,openElsewhere:n.has(e)}}))}onChange(e){return this.#e?.onChange(e)??(()=>{})}async openRecent(e){if(e===this.#i)return!0;let t=this.#e;if(!t||!await this.#n.acquire(e))return Ct(`This map is open in another tab.`,`info`),!1;let n=await t.load(e);return!n||n.states.length===0?(this.#n.release(e),!1):(await this.#u({kind:`session`,stored:n,camera:n.session.camera}),!0)}async newMap(){this.#r&&await this.#u({kind:`new`})}async openMap(e){await this.#u({kind:`link`,state:e,encoded:vl(e)})}async deleteRecent(e){e===this.#i||(await this.#n.openElsewhere()).has(e)||this.#e?.delete(e)}async attach(e,t){this.#r=e,e.state.events.on(`log`,e=>this.#f(e)),e.state.events.on(`move`,e=>{this.#i&&this.#e?.setUndone(this.#i,e),this.#p(this.#r?.title)}),e.view.map.on(`moveend`,this.#g),addEventListener(`hashchange`,this.#v),await this.#u(t)}destroy(){this.#r?.view.map.off(`moveend`,this.#g),removeEventListener(`hashchange`,this.#v),this.#r=void 0,this.#n.releaseAll(),this.#e?.close()}async#u(e){let t=this.#r;if(t){this.openings++,this.#a=void 0;try{switch(e.kind){case`session`:{let{stored:n,camera:r}=e,i=Ke(n.states[n.position]);await this.#d(t,i,{camera:r}),t.state.history.restore(n.states,n.position),this.#m(n.session.id),this.#o=n.session.title;break}case`link`:this.#o=e.state.meta?.title,this.#m(this.#e?.create(e.encoded,{title:this.#o})),await this.#d(t,e.state);break;case`new`:this.#m(void 0),this.#o=void 0,await this.#d(t,await yl(),{keepView:!0}),this.#a=vl(t.getState())}}catch(e){console.error(`Failed to load map state`,e),Ct(`The map could not be loaded completely.`)}}}async#d(e,t,n){this.#s=!0;try{await e.loadState(t,n)}finally{this.#s=!1}}#f(e){let t=this.#e,n=this.#r;if(!t||!n)return;let r=vl(e);if(!this.#i){let i=t.create(this.#a??r,{camera:n.getCamera()});if(this.#m(i),this.#a===void 0)return this.#p(e.meta?.title)}t.push(this.#i,r),this.#p(e.meta?.title)}#p(e){e=e?.trim()||void 0,this.#i&&e!==this.#o&&(this.#o=e,this.#e?.setTitle(this.#i,e))}#m(e){if(this.#i&&this.#i!==e&&this.#n.release(this.#i),this.#i=e,e){this.#n.acquire(e);try{sessionStorage.setItem(gl,e)}catch{}this.#h()}}async#h(){let e=this.#e;if(e)try{let t=await this.#n.openElsewhere(),n=await e.list();for(let{id:r}of n.slice(hl))r!==this.#i&&!t.has(r)&&e.delete(r)}catch(e){console.warn(`Failed to delete old maps`,e)}}#g=()=>{let e=this.#r;this.#i&&e&&!this.#s&&this.#e?.setCamera(this.#i,e.getCamera())};#_=Promise.resolve();#v=()=>{let e=location.hash.slice(1);e&&(this.#_=this.#_.then(async()=>{let t=await this.#l(e);t&&await this.#u(t)}).catch(e=>{console.error(`Failed to open the map of the link`,e),Ct(`The map in the link could not be opened.`)}))};async#y(e){if(!this.#e)return;let t=await this.#e.list();for(let n of t.slice(0,hl)){let t=await this.#e.loadCurrent(n.id);if(t&&await e(t))return t}}};function xl(e){return Sl(e.states[e.position])}function Sl(e){if(e!==void 0)try{return Ke(e)}catch{return}}function Cl(){try{return sessionStorage.getItem(gl)??void 0}catch{return}}var wl=g(`<!> <!>`,1),Tl=g(`<label class="svelte-spn8k0">File name <!></label> <!>`,1);function El(e,t){U(t,!0);let n=V(null),r=null,i=V(void 0),a=new tt;async function o(e){r&&(L(n,e,!0),r.eventHandler.clear(),a.clear(),r.open(),await S())}async function s(){return r?.close(),r?.eventHandler.clear(),a.clear(),L(n,null),S()}async function c(e){if(!r)return null;await o(`download`),l(i)&&(l(i).value=e,l(i).focus(),l(i).select());let{confirmed:t,value:n}=await u();return t&&n?.trim()||null}async function u(){let e=await new Promise(e=>{if(!r)return e(!1);r.eventHandler.on(`close`,()=>e(!1)),a.on(`confirm`,()=>e(!0)),a.on(`cancel`,()=>e(!1))}),t=l(i)?.value??null;return await s(),{confirmed:e,value:t}}let d=()=>a.emit(`confirm`),f=()=>a.emit(`cancel`);function g(e){e.key===`Enter`&&(e.preventDefault(),d())}var v={askDownloadFilename:c};return P(Dt(e,{size:`small`,title:`Download File`,children:(e,t)=>{var r=h(),a=_(r),o=e=>{var t=Tl(),n=_(t),r=A(T(n));cn(r,{spellcheck:`false`,onkeydown:g,get element(){return l(i)},set element(e){L(i,e,!0)}}),I(n);var a=A(n,2);nt(a,{columns:2,spaced:!1,children:(e,t)=>{var n=wl(),r=_(n);X(r,{variant:`ghost`,size:`md`,onclick:f,children:(e,t)=>{z();var n=p(`Cancel`);m(e,n)},$$slots:{default:!0}});var i=A(r,2);X(i,{variant:`primary`,size:`md`,onclick:d,children:(e,t)=>{z();var n=p(`Download`);m(e,n)},$$slots:{default:!0}}),m(e,n)},$$slots:{default:!0}}),m(e,t)};G(a,e=>{l(n)==`download`&&e(o)}),m(e,r)},$$slots:{default:!0}}),e=>r=e,()=>r),F(v)}var Dl=6e4;function Ol(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),Dl)}function kl(e,t,n=`application/json`){Ol(new Blob([JSON.stringify(e)],{type:n}),t)}var Al=class extends Error{};function jl(e){return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.accept=e,n.onchange=()=>t(n.files?.[0]),n.oncancel=()=>t(void 0),n.click()})}async function Ml(e){let t=await jl(e);if(t)try{return{name:t.name,text:await t.text()}}catch(e){throw new Al(`Failed to read the file`,{cause:e})}}var Nl=/\.mapjson$/i;function Pl(e){return e.replace(/[\\/:*?"<>|\u0000-\u001f]+/g,` `).replace(/\s+/g,` `).trim().replace(/^\.+/,``).slice(0,100).trim()||`map`}var Fl=class{#e;#t;#n;#r;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n}get#i(){return this.#r?.opening===this.#t.openings?this.#r.name:void 0}set#i(e){this.#r={name:e,opening:this.#t.openings}}get filename(){return this.#i??`${Pl(this.#e.title)}.mapjson`}get#a(){return this.#i?this.#i.replace(Nl,``):Pl(this.#e.title)}async newFile(){await this.#t.newMap()}async openFile(){try{let e=await Ml(`.mapjson`);if(!e)return;let t=JSON.parse(e.text),n=Bn(t),r=n.meta?.title||e.name.replace(Nl,``);await this.#t.openMap({...n,meta:{...n.meta,title:r}}),this.#i=e.name,Ll(Gn(t)),Il(Jn(t))}catch(e){console.error(e),e instanceof Al?Ct(`Failed to read the file. Please try again.`):e instanceof Rn?Ct(`The map was saved by a newer version of the editor. Please reload the page and try again.`):Ct(`Failed to open the map. Please check the file format.`)}}async openExample(e){try{await this.#t.openMap(Ke(e.hash)),this.#i=`${e.id}.mapjson`}catch(e){console.error(e),Ct(`Failed to open the example.`)}}async downloadFile(){let e=await this.#n.askDownloadFilename(this.filename);e&&(this.#i=e,kl(zn(this.#e.getState()),e))}importGeoJSON(){return this.#o(`.geojson,.json,application/geo+json,application/json`,e=>this.#e.addGeoJSON(JSON.parse(e)),`GeoJSON`)}importKML(){return this.#o(`.kml,application/vnd.google-earth.kml+xml`,e=>this.#e.addState(xr(e)),`KML`)}exportGeoJSON(){kl(this.#e.getGeoJSON(),`${this.#a}.geojson`,`application/geo+json`)}exportKML(){let e=fr(this.#e.getState());Ol(new Blob([e],{type:`application/vnd.google-earth.kml+xml`}),`${this.#a}.kml`)}async#o(e,t,n){try{let n=await Ml(e);if(!n)return;t(n.text),this.#e.state.log()}catch(e){console.error(e),e instanceof Al?Ct(`Failed to read the file. Please try again.`):Ct(`Failed to import ${n}. Please check the file format.`)}}};function Il(e){if(e.length===0)return;let t=e.slice(0,3).join(`, `),n=e.length>3?` and ${e.length-3} more`:``;Ct(`The file contains values that are not valid, which were left out or corrected: ${t}${n}.`,`warning`)}function Ll(e){if(e.length===0)return;let t=e.slice(0,3).join(`, `),n=e.length>3?` and ${e.length-3} more`:``;Ct(`The file contains fields that this version of the editor does not know, which are not kept: ${t}${n}.`,`warning`)}var Rl=g(`<!> <!> <!> <div class="drawer-slot svelte-1fl557q"><!></div> <div id="sidebar" class="svelte-1fl557q"><!></div> <!> <!>`,1),zl=g(`<div class="topbar-slot svelte-1fl557q"><!></div> <div class="rail-slot svelte-1fl557q"><!></div> <div class="statusbar-slot svelte-1fl557q"><!></div> <!> <!> <style>.page .container {
24
+ width: 100%;
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ }</style>`,1);function Bl(e,t){U(t,!0);let n=V(void 0),r=V(void 0),i=V(void 0);o(()=>{L(n,matchMedia(`(min-width: 600px) and (min-height: 400px)`).matches?`editor`:`viewer`,!0),L(r,bl.open(a),!0),l(r).then(e=>L(i,e,!0))});function a(){S().then(()=>{let e=location.pathname+location.search;location.hash&&_n(e,{})})}let s=V(void 0),c=V(!0),u=R(()=>l(s)?.isInteractive()===!0&&l(s).visibleArea.active),d=R(()=>l(c)||l(u)),f=R(()=>l(d)?250:0),p=V(!1),g=V(!1),v=R(()=>48+(l(p)?250:0)),y=R(()=>({top:44,right:l(f),bottom:26,left:48})),b=R(()=>({...l(y),left:l(v)})),x=V(void 0),C=R(()=>l(s)?.isInteractive()&&l(i)?new Fl(l(s),l(i),{askDownloadFilename:async e=>await l(x)?.askDownloadFilename(e)??null}):void 0);function w(e){return Et(),new Zi(e)}function E(e){l(s)?.isInteractive()&&(l(s).addElement(Tt(e)),l(s).state.log())}function D(e){l(s)?.isInteractive()&&l(s).selection.selectLegend(!0,e)}var O=h(),j=_(O),M=e=>{on(e,{hint:`Open this page on a larger screen to edit the map.`,get sessions(){return l(r)},get onMapLoad(){return t.onMapLoad}})},ee=e=>{Wt(e,{createDocument:w,get insets(){return l(y)},get covered(){return l(b)},search:!0,navigation:!0,onmark:E,onselectlegend:D,editor:!0,get asShared(){return l(u)},get sessions(){return l(r)},get onMapLoad(){return t.onMapLoad},get mapDocument(){return l(s)},set mapDocument(e){L(s,e,!0)},children:(e,t)=>{var n=zl(),r=_(n);N(r,``,{},{height:`44px`});var a=T(r),o=e=>{Qc(e,{get doc(){return l(s)},get sync(){return l(i)},get files(){return l(C)},get previewing(){return l(g)},set previewing(e){L(g,e,!0)}})},h=R(()=>l(s)?.isInteractive()&&l(i)&&l(C));G(a,e=>{l(h)&&e(o)}),I(r);var y=A(r,2);N(y,``,{},{top:`44px`,bottom:`26px`,width:`48px`});var b=T(y),S=e=>{Mc(e,{get doc(){return l(s)},get drawerOpen(){return l(p)},set drawerOpen(e){L(p,e,!0)}})},w=R(()=>l(s)?.isInteractive());G(b,e=>{l(w)&&e(S)}),I(y);var E=A(y,2);N(E,``,{},{height:`26px`});var D=T(E),O=e=>{Ac(e,{get doc(){return l(s)},get sync(){return l(i)},get files(){return l(C)}})},j=R(()=>l(s)?.isInteractive()&&l(i)&&l(C));G(D,e=>{l(j)&&e(O)}),I(E);var M=A(E,2),ee=e=>{var t=Rl(),n=_(t);tl(n,{get mapDocument(){return l(s)}});var r=A(n,2);el(r,{get doc(){return l(s)},get left(){return l(v)},get right(){return l(f)}});var i=A(r,2);rl(i,{get doc(){return l(s)},top:44,get left(){return l(v)},get right(){return l(f)},bottom:26});var a=A(i,2);N(a,``,{},{top:`44px`,bottom:`26px`,left:`48px`,width:`250px`}),sa(T(a),{get doc(){return l(s)},onclose:()=>L(p,!1)}),I(a);var o=A(a,2);N(o,``,{},{top:`44px`,bottom:`26px`}),Ec(T(o),{get mapDocument(){return l(s)}}),I(o);var h=A(o,2),y=e=>{Oc(e,{top:`calc(50% + 9px)`,get right(){return l(f)},get open(){return l(c)},set open(e){L(c,e,!0)}})};G(h,e=>{l(u)||e(y)}),ns(A(h,2),{get doc(){return l(s)},top:44,get open(){return l(g)},set open(e){L(g,e,!0)}}),B(()=>{k(a,`hidden`,!l(p)),k(o,`hidden`,!l(d))}),m(e,t)},te=R(()=>l(s)?.isInteractive());G(M,e=>{l(te)&&e(ee)});var F=A(M,2);P(El(F,{}),e=>L(x,e,!0),()=>l(x)),z(2),m(e,n)},$$slots:{default:!0}})};G(j,e=>{l(n)===`viewer`?e(M):l(n)===`editor`&&e(ee,1)}),m(e,O),F()}var Vl=g(`<meta name="generator"/> <meta name="description" content="Draw markers, lines and areas on a map, style them and share the result as a link or embed it in a website."/>`,1),Hl=g(`<div class="wrapper"><!></div>`);function Ul(e){var t=Hl();q(`1uha8ag`,e=>{var t=Vl(),n=_(t);z(2),B(()=>k(n,`content`,pn)),f(()=>{w.title=`VersaTiles Map Editor`}),m(e,t)}),Bl(T(t),{onMapLoad:e=>{Object.assign(window,{map:e,mapReady:!0})}}),I(t),m(e,t)}export{Ul as component};
@@ -1 +1 @@
1
- import{$ as e,M as t,P as n,Z as r,d as i,et as a,lt as o,mt as s,pt as c,q as l,r as u,ut as d}from"../chunks/C1qWpZZK.js";import{n as f}from"../chunks/DU0zVETU.js";var p=n(`<table class="svelte-18kp4dw"><tbody><tr><td class="svelte-18kp4dw"><iframe title="square" style="width:600px;height:600px;" class="svelte-18kp4dw"></iframe></td><td class="svelte-18kp4dw"><iframe title="vertical" style="width:300px;height:600px;" class="svelte-18kp4dw"></iframe></td></tr><tr><td class="svelte-18kp4dw"><iframe title="horizontal" style="width:600px;height:300px;" class="svelte-18kp4dw"></iframe></td><td class="svelte-18kp4dw"></td></tr></tbody></table>`);function m(n,m){d(m,!1);let h=`../view/#`+f({elements:[{type:`line`,points:[[13.37106,52.51842],[13.36966,52.51575],[13.3513,52.51459],[13.35097,52.51489],[13.3504,52.51512],[13.34966,52.51511],[13.34917,52.51483],[13.34904,52.5145],[13.34926,52.51413],[13.34967,52.51395],[13.35027,52.51382],[13.35127,52.50957],[13.3519,52.50677]],style:{width:5,color:`#aa0000`}},{type:`marker`,point:[13.35139,52.50655],label:`End`,style:{color:`#aa0000`,labelPosition:`left`}},{type:`marker`,point:[13.37097,52.51871],label:`Start`,style:{color:`#aa0000`,labelPosition:`left`}},{type:`polygon`,points:[[13.37383,52.51794],[13.37379,52.51926],[13.3718,52.51926],[13.37115,52.51794]],style:{color:`#aa0000`,pattern:`diagonal-up`,patternCoverage:.25},outlineStyle:{width:1,color:`#aa0000`}},{type:`circle`,point:[13.36106,52.51089],radius:302,style:{color:`#aa000038`,pattern:`diagonal-up`},outlineStyle:{color:`#aa0000`}}]});u();var g=p(),_=r(g),v=r(_),y=r(v),b=e(y),x=a(y),S=e(x);s(v);var C=a(v),w=r(C),T=e(w);c(),s(C),s(_),s(g),l(()=>{i(b,`src`,h),i(S,`src`,h),i(T,`src`,h)}),t(n,g),o()}export{m as component};
1
+ import{$ as e,M as t,P as n,Z as r,d as i,et as a,lt as o,mt as s,pt as c,q as l,r as u,ut as d}from"../chunks/C1qWpZZK.js";import{n as f}from"../chunks/R7VNWRco.js";var p=n(`<table class="svelte-18kp4dw"><tbody><tr><td class="svelte-18kp4dw"><iframe title="square" style="width:600px;height:600px;" class="svelte-18kp4dw"></iframe></td><td class="svelte-18kp4dw"><iframe title="vertical" style="width:300px;height:600px;" class="svelte-18kp4dw"></iframe></td></tr><tr><td class="svelte-18kp4dw"><iframe title="horizontal" style="width:600px;height:300px;" class="svelte-18kp4dw"></iframe></td><td class="svelte-18kp4dw"></td></tr></tbody></table>`);function m(n,m){d(m,!1);let h=`../view/#`+f({elements:[{type:`line`,points:[[13.37106,52.51842],[13.36966,52.51575],[13.3513,52.51459],[13.35097,52.51489],[13.3504,52.51512],[13.34966,52.51511],[13.34917,52.51483],[13.34904,52.5145],[13.34926,52.51413],[13.34967,52.51395],[13.35027,52.51382],[13.35127,52.50957],[13.3519,52.50677]],style:{width:5,color:`#aa0000`}},{type:`marker`,point:[13.35139,52.50655],label:`End`,style:{color:`#aa0000`,labelPosition:`left`}},{type:`marker`,point:[13.37097,52.51871],label:`Start`,style:{color:`#aa0000`,labelPosition:`left`}},{type:`polygon`,points:[[13.37383,52.51794],[13.37379,52.51926],[13.3718,52.51926],[13.37115,52.51794]],style:{color:`#aa0000`,pattern:`diagonal-up`,patternCoverage:.25},outlineStyle:{width:1,color:`#aa0000`}},{type:`circle`,point:[13.36106,52.51089],radius:302,style:{color:`#aa000038`,pattern:`diagonal-up`},outlineStyle:{color:`#aa0000`}}]});u();var g=p(),_=r(g),v=r(_),y=r(v),b=e(y),x=a(y),S=e(x);s(v);var C=a(v),w=r(C),T=e(w);c(),s(C),s(_),s(g),l(()=>{i(b,`src`,h),i(S,`src`,h),i(T,`src`,h)}),t(n,g),o()}export{m as component};
@@ -1 +1 @@
1
- import{K as e,M as t,P as n,Q as r,Y as i,Z as a,d as o,mt as s,pt as c,q as l,y as u}from"../chunks/C1qWpZZK.js";import"../chunks/DU0zVETU.js";import{t as d,xt as f}from"../chunks/cIvd-dgs.js";var p=n(`<meta name="generator"/> <meta name="description" content="A map made with the VersaTiles Map Editor."/>`,1),m=n(`<div class="wrapper"><!></div>`);function h(n){var h=m();u(`108px9u`,n=>{var a=p(),s=r(a);c(2),l(()=>o(s,`content`,f)),e(()=>{i.title=`VersaTiles Map`}),t(n,a)});var g=a(h);d(g,{onMapLoad:e=>{Object.assign(window,{map:e,mapReady:!0})}}),s(h),t(n,h)}export{h as component};
1
+ import{K as e,M as t,P as n,Q as r,Y as i,Z as a,d as o,mt as s,pt as c,q as l,y as u}from"../chunks/C1qWpZZK.js";import"../chunks/R7VNWRco.js";import{t as d,xt as f}from"../chunks/D4hdjuw5.js";var p=n(`<meta name="generator"/> <meta name="description" content="A map made with the VersaTiles Map Editor."/>`,1),m=n(`<div class="wrapper"><!></div>`);function h(n){var h=m();u(`108px9u`,n=>{var a=p(),s=r(a);c(2),l(()=>o(s,`content`,f)),e(()=>{i.title=`VersaTiles Map`}),t(n,a)});var g=a(h);d(g,{onMapLoad:e=>{Object.assign(window,{map:e,mapReady:!0})}}),s(h),t(n,h)}export{h as component};
@@ -1 +1 @@
1
- {"version":"1791558559197"}
1
+ {"version":"1792110250189"}
Binary file
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg width="31.344mm" height="36.193mm" version="1.1" viewBox="0 0 31.344 36.193" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
4
+ <defs>
5
+ <linearGradient id="linearGradient7481-1" x1="363.33" x2="415.07" y1="199.32" y2="126.38" gradientTransform="matrix(.70538 0 0 .70538 54.155 15.902)" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#810098" offset="0"/>
7
+ <stop stop-color="#9d35ff" offset="1"/>
8
+ </linearGradient>
9
+ <linearGradient id="linearGradient11293-0" x1="363.33" x2="415.07" y1="215.98" y2="126.38" gradientTransform="matrix(.70538 0 0 .70538 54.155 15.902)" gradientUnits="userSpaceOnUse">
10
+ <stop stop-color="#93a813" offset="0"/>
11
+ <stop stop-color="#003e28" offset="1"/>
12
+ </linearGradient>
13
+ <linearGradient id="linearGradient11269-4" x1="363.33" x2="311.6" y1="199.32" y2="126.38" gradientTransform="matrix(.70538 0 0 .70538 54.155 15.902)" gradientUnits="userSpaceOnUse">
14
+ <stop stop-color="#6b0075" offset="0"/>
15
+ <stop stop-color="#9d35ff" offset="1"/>
16
+ </linearGradient>
17
+ <linearGradient id="linearGradient11285-5" x1="363.33" x2="311.6" y1="215.98" y2="126.38" gradientTransform="matrix(.70538 0 0 .70538 54.155 15.902)" gradientUnits="userSpaceOnUse">
18
+ <stop stop-color="#93a813" offset="0"/>
19
+ <stop stop-color="#005034" offset="1"/>
20
+ </linearGradient>
21
+ <linearGradient id="linearGradient12100" x1="363.33" x2="363.33" y1="126.38" y2="96.515" gradientTransform="matrix(.70538 0 0 .70538 54.155 15.902)" gradientUnits="userSpaceOnUse">
22
+ <stop stop-color="#006636" offset="0"/>
23
+ <stop stop-color="#0065bf" offset="1"/>
24
+ </linearGradient>
25
+ </defs>
26
+ <g transform="translate(-36.82 -130.74)">
27
+ <g transform="matrix(.37509 0 0 .37509 -63.953 101.53)" stroke-linecap="round">
28
+ <path transform="matrix(.70538 0 0 .70538 54.155 15.902)" d="m363.33 224.65-59.232-34.198v-68.396l59.232-34.198 59.232 34.198v68.396z" fill="#1d1d1d" stroke-width="4.5354"/>
29
+ <g stroke-width="3.1992">
30
+ <path d="m326.57 105.05-5.9466 3.4333c-10.181 5.8781-10.182 11.756-10.182 11.756l4.5e-4 36.258 10.181-5.8786c0-30.379-1.1e-4 -30.379 16.129-39.692 0.13997-0.0808 10.04-5.7958 10.181-5.8773-10.181-5.8787-10.181-5.8787-20.363 0z" fill="url(#linearGradient7481-1)"/>
31
+ <path d="m346.94 105.05c-3.3938 1.9594-6.7874 3.9179-10.181 5.8773 0 30.38-2.4e-4 30.38-26.31 45.57v11.756c36.491-21.068 36.491-21.067 36.491-63.204z" fill="url(#linearGradient11293-0)"/>
32
+ <path d="m294.32 105.05c-10.182-5.8783-10.182-5.8783-20.363 0 0.40603 0.23442 9.7838 5.6486 10.18 5.8773 16.13 9.3123 16.13 9.3127 16.13 39.692l10.181 5.8782-4.5e-4 -36.258c0-5.8781-10.203-11.769-10.203-11.769z" fill="url(#linearGradient11269-4)"/>
33
+ <path d="m273.95 105.05c0 42.136 1.8e-4 42.135 36.491 63.204v-11.756c-26.31-15.19-26.31-15.19-26.31-45.57-3.3938-1.9594-6.7875-3.9179-10.181-5.8773z" fill="url(#linearGradient11285-5)"/>
34
+ </g>
35
+ <path d="m310.45 83.982-5.6e-4 2.88e-4 -18.245 10.534 18.245 10.534 2.9e-4 -10.534v10.534l18.246-10.534-18.246-10.534z" fill="url(#linearGradient12100)" stroke-width="2.2186"/>
36
+ </g>
37
+ </g>
38
+ </svg>