@versatiles/map-editor 4.0.0 → 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.
@@ -1,28 +0,0 @@
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 ie,w as W,x as G,y as K,z as q}from"../chunks/C1qWpZZK.js";import{$ as ae,B as oe,D as se,E as ce,F as J,G as le,H as ue,I as de,J as fe,K as pe,M as me,O as he,P as ge,Q as _e,R as ve,S as ye,T as be,U as xe,V as Se,Y as Ce,Z as we,_ as Te,a as Ee,b as De,c as Oe,d as ke,et as Ae,f as je,i as Me,it as Ne,j as Pe,k as Fe,n as Ie,nt as Le,o as Re,p as ze,q as Be,r as Ve,rt as He,s as Ue,t as We,tt as Ge,u as Ke,v as qe,w as Je,x as Ye,y as Xe,z as Ze}from"../chunks/DU0zVETU.js";import{$ as Qe,A as $e,B as et,C as tt,D as Y,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 X,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 Z,vt as un,w as dn,x as fn,xt as pn,y as mn,yt as hn,z as gn}from"../chunks/nsn6-zdH.js";import{t as _n}from"../chunks/CDI9yWJf.js";function vn(e){return me(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({...pe(e.style),"symbol-label":e.label,description:e.popup?.text}),geometry:{type:`Point`,coordinates:e.point}}}function xn(e){return{type:`Feature`,properties:yn({...be(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),...se(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),...se(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=J(e.frame);n&&(t.frame=n);let r={},i=Pe(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=le(e.meta?.viewer);a&&(r.viewer=a);let o=de(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=Fe(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=oe(n.coordinates);if(!e)return;if(t.subType===`Circle`){let n=Ze(t.radius);return n===void 0||n<=0?void 0:{type:`circle`,point:e,radius:n,style:ye(t),outlineStyle:he(t)}}return{type:`marker`,point:e,...Je(xe(t?.[`symbol-label`])),style:Be(t)}}case`LineString`:{let e=Se(n.coordinates);return!e||e.length<2?void 0:{type:`line`,points:e,style:ce(t),...vn(t)}}case`Polygon`:{let e=Se(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:ye(t),outlineStyle:he(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=J(e.frame);t&&(n.frame=t)}if(e.type===`FeatureCollection`&&`meta`in e){let t=ve(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`};function Mn(e){let t=Me.fromBase64(e),n=t.bits.length,r=Object.fromEntries(An.map(e=>[e,0])),i=`structure`,a=0,o=()=>{r[i]+=t.offset-a,a=t.offset},s=t;for(let[e,t]of Object.entries(jn)){let n=s[e];s[e]=function(...e){o();let r=i;i=t;try{return n.apply(this,e)}finally{o(),i=r}}}return t.readRoot(),o(),r.structure+=n-t.offset,{characters:e.length,bits:n,kinds:r}}var Nn=`https://versatiles.org/versatiles-map-editor/schema/mapjson-1.schema.json`,Pn=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 Fn(e){let{frame:t,meta:n,elements:r}=ue(e);return{$schema:Nn,version:1,...t?{frame:t}:{},...n?{meta:n}:{},elements:r}}function In(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 Pn(t);if(!Array.isArray(i))throw Error(`The file contains no map elements`);return ue({elements:i,frame:n,meta:r})}var Ln={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:fe.marker,LineStyle:fe.line,AreaStyle:fe.area,OutlineStyle:fe.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`]},Rn={marker:Ln.StateElementMarker,line:Ln.StateElementLine,polygon:Ln.StateElementPolygon,circle:Ln.StateElementCircle},zn={marker:Ln.StateLegendMarker,line:Ln.StateLegendLine,area:Ln.StateLegendArea},Bn=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Vn(e){let t=[],n=(e,n,r)=>{if(Bn(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,fe[r],`${t}.style`),r===`area`&&n(e.outlineStyle,fe.outline,`${t}.outlineStyle`)},i=n(e,Ln.MapJSON,``);if(!i)return t;n(i.frame,Ln.StateFrame,`frame`);let a=n(i.meta,Ln.StateMetadata,`meta`);if(a){let e=n(a.background,Ln.StateBackground,`meta.background`);e&&n(e.colors,Ln.StateBackgroundColors,`meta.background.colors`),n(a.viewer,Ln.StateViewer,`meta.viewer`),n(a.labels,Ln.StateLabels,`meta.labels`);let i=n(a.legend,Ln.StateLegend,`meta.legend`);i&&Array.isArray(i.entries)&&i.entries.forEach((e,i)=>{let a=`meta.legend.entries[${i}]`,o=Bn(e)?zn[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=Bn(e)?Rn[e.type]:void 0;if(!o)return void t.push(a);let s=n(e,o,a);r(s,a),n(s.popup,Ln.StatePopup,`${a}.popup`)}),t}var Hn={meta:{title:``,colorScheme:``},frame:{bearing:0,pitch:0},"meta.viewer":De,"meta.legend":ze,"meta.labels":{overlap:`show`,minZoom:0},"meta.background":{...ke,labelsOnTop:!1},"meta.background.colors":Ke,element:{smooth:!1,label:``}},Un=[`arrowSize`,`patternScale`,`patternCoverage`];function Wn(e){if(!Bn(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]=[Ne(e),Ne(t)];return e.startsWith(`#`)&&!!r&&!!i&&He(r)===He(i)},i=(e,t,n,i)=>{if(e.startsWith(`style:`)){let i=Xe[e.slice(6)];return Un.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===je[i.base===`satellite`?`satellite`:`vector`]:t in(Hn[e]??{})&&Hn[e][t]===n},a=(e,n,o,s)=>{if(!Bn(e))return void t.push(o);let c=Bn(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`)Bn(l)||t.push(u);else if(Bn(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]))>Ge.longitude))&&t.push(u)):d===void 0?i(s,n,l,e)||t.push(u):r(l,d)||t.push(u)}}},o=ue({elements:[],frame:e.frame,meta:e.meta}),{$schema:s,version:c,elements:l,...u}=e;a(u,o,``,``);let d=Bn(e.meta)&&Bn(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}]`;Bn(n)&&Ae.includes(n.type)?a(n,e.shift(),i,`entry`):t.push(i)})}l.forEach((e,n)=>{let r=`elements[${n}]`,i=ge(e);i?a(e,i,r,`element`):t.push(r)});let f=Vn(e);return t.filter(e=>!f.some(t=>e===t||e.startsWith(`${t}.`)))}var Gn={lt:`<`,gt:`>`,amp:`&`,quot:`"`,apos:`'`};function Kn(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 Gn[t]??e})}function qn(e){return e.slice(e.indexOf(`:`)+1)}function Jn(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(Kn(i)),r=n<0?e.length:n}else if(e.startsWith(`<!--`,r))r=Yn(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=Yn(e,`?>`,r);else if(e.startsWith(`<!`,r))r=Yn(e,`>`,r);else if(e[r+1]===`/`){let i=Yn(e,`>`,r),a=qn(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:qn(i[1]),attributes:{},children:[]};for(let[,e,,t,n]of i[2].matchAll(/([\w:.-]+)\s*=\s*("([^"]*)"|'([^']*)')/g))a.attributes[qn(e)]=Kn(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 Yn(e,t,n){let r=e.indexOf(t,n);if(r<0)throw Error(`Missing "${t}"`);return r+t.length}function Xn(e,t){return(e?.children??[]).filter(e=>typeof e!=`string`&&e.name===t)}function Q(e,t){return Xn(e,t)[0]}function*Zn(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 Qn(e){if(!e)return;let t=``;for(let n of Zn(e))typeof n==`string`&&(t+=n);return t}function $n(e,t){let n=[];for(let r of Zn(e))typeof r!=`string`&&r.name===t&&n.push(r);return n}function er(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}="${er(t)}"`).join(``);return t===void 0?`<${e}${r}/>`:`<${e}${r}>${Array.isArray(t)?t.filter(e=>e!==void 0).join(``):er(t)}</${e}>`}var tr=`versatiles:frame`,nr=`versatiles:meta`,rr=`center`,ir=[`symbol-pattern`,`stroke-style`,`fill-pattern`],ar=500;function or([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,ar)}}function sr(e){let t=wn(e),n={};t.frame&&(n[tr]=JSON.stringify(t.frame)),t.meta&&(n[nr]=JSON.stringify(t.meta));let r=t.frame?.bounds??Le(e.elements),i=r&&or(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)))]),pr(n),...t.features.map(cr)].filter(Boolean).map(e=>e+`
5
- `)),`
6
- `],{xmlns:`http://www.opengis.net/kml/2.2`})+`
7
- `}function cr(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[rr]=JSON.stringify(a.coordinates),r=dr(mr(a.coordinates,Number(t.radius))),i=[lr(t),ur(t)];else if(a.type===`Point`)r=$(`Point`,[$(`coordinates`,fr([a.coordinates]))]),i=[$(`IconStyle`,[$(`color`,hr(t[`symbol-color`])),$(`scale`,String(t[`symbol-size`]??1)),$(`heading`,String(t[`symbol-rotation`]??0))]),$(`LabelStyle`,[$(`color`,hr(t[`symbol-label-color`])),$(`scale`,String(t[`symbol-label-size`]??1))])];else if(a.type===`LineString`)r=$(`LineString`,[$(`coordinates`,fr(a.coordinates))]),i=[lr(t)];else if(a.type===`Polygon`)r=dr(a.coordinates[0]),i=[lr(t),ur(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),pr(n),r])}function lr(e){return $(`LineStyle`,[$(`color`,hr(e[`stroke-color`])),$(`width`,String(e[`stroke-width`]??2))])}function ur(e){return $(`PolyStyle`,[$(`color`,hr(e[`fill-color`],Number(e[`fill-opacity`]??1))),$(`outline`,e[`stroke-visibility`]===!1?`0`:`1`)])}function dr(e){return $(`Polygon`,[$(`outerBoundaryIs`,[$(`LinearRing`,[$(`coordinates`,fr(e))])])])}function fr(e){return e.map(([e,t])=>`${e},${t}`).join(` `)}function pr(e){let t=Object.entries(e);if(t.length!==0)return $(`ExtendedData`,t.map(([e,t])=>$(`Data`,[$(`value`,t)],{name:e})))}function mr([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 hr(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 gr(e){let t=Q(Jn(e),`kml`);if(!t)throw Error(`Not a KML document`);let n=new Map;for(let e of[...$n(t,`Style`),...$n(t,`StyleMap`)])e.attributes.id&&n.set(e.attributes.id,e);let r={type:`FeatureCollection`,features:[]},i=xr(Q(Q(t,`Document`)??t,`ExtendedData`)),a=wr(i[tr]);a&&(r.frame=a);let o=wr(i[nr]);o&&(r.meta=o);for(let e of $n(t,`Placemark`)){let t=_r(e,n);t&&r.features.push(t)}return kn(r)}function _r(e,t){let n=yr(e);if(!n)return;let r=xr(Q(e,`ExtendedData`)),i=Qn(Q(e,`description`));if(ir.some(e=>e in r)){let e={...r};i!==void 0&&(e.description=i);let t=wr(r[rr]);return delete e[rr],r.subType===`Circle`&&Array.isArray(t)?{type:`Feature`,properties:e,geometry:{type:`Point`,coordinates:t}}:{type:`Feature`,properties:e,geometry:n}}let a=vr(e,t),o={},s=Qn(Q(e,`name`))?.trim(),c=Sr(Q(Q(a,`IconStyle`),`color`)),l=Sr(Q(Q(a,`LabelStyle`),`color`)),u=Q(a,`LineStyle`),d=Sr(Q(u,`color`)),f=Q(a,`PolyStyle`),p=Sr(Q(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=Qn(Q(u,`width`));return m&&(o[`stroke-width`]=m),p&&(o[`fill-color`]=p.color,o[`fill-opacity`]=p.opacity),Qn(Q(f,`fill`))?.trim()===`0`&&(o[`fill-opacity`]=0),Qn(Q(f,`outline`))?.trim()===`0`&&(o[`stroke-visibility`]=!1),i?.trim()&&(o.description=Cr(i)),{type:`Feature`,properties:o,geometry:n}}function vr(e,t){let n=Q(e,`Style`);if(n)return n;let r=t.get(Qn(Q(e,`styleUrl`))?.trim().replace(/^.*#/,``)??``);for(let e=0;r?.name===`StyleMap`&&e<3;e++){let e=Xn(r,`Pair`).find(e=>Qn(Q(e,`key`))?.trim()===`normal`);r=Q(e,`Style`)??t.get(Qn(Q(e,`styleUrl`))?.trim().replace(/^.*#/,``)??``)}return r?.name===`Style`?r:void 0}function yr(e){for(let t of e.children)if(typeof t!=`string`)switch(t.name){case`Point`:{let[e]=br(t);if(e)return{type:`Point`,coordinates:e};break}case`LineString`:return{type:`LineString`,coordinates:br(t)};case`Polygon`:return{type:`Polygon`,coordinates:[br(Q(Q(t,`outerBoundaryIs`),`LinearRing`))]};case`MultiGeometry`:return{type:`GeometryCollection`,geometries:t.children.filter(e=>typeof e!=`string`).map(e=>yr({name:``,attributes:{},children:[e]})).filter(e=>e!==void 0)}}}function br(e){return(Qn(Q(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 xr(e){let t={};for(let n of Xn(e,`Data`)){let e=n.attributes.name,r=Qn(Q(n,`value`));e&&r!==void 0&&(t[e]=r)}return t}function Sr(e){let t=Qn(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 Cr(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 wr(e){if(e!==void 0)try{return JSON.parse(e)}catch{return}}function Tr(e){let t=e.getStyleLayers().symbol;return t&&t.symbol===``?{name:`label`,color:t.labelColor}:{name:e.getState().type,color:e.getColors()[0]}}function Er(e){return e.target?.closest?.(`input, textarea, select, [role="combobox"], [contenteditable], [role="slider"], dialog[open], [role="menu"]`)!=null}var Dr={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 Or(e){let t=De[e];return t===`none`?Dr[e][0].value:t}function kr(e){return e.split(`
12
- `).map(e=>e.trim()).filter(e=>e!==``).join(` `)}function Ar(e){return kr(e.getStyleLayers().symbol?.label??``)||rn(e.popup).trim().split(`
13
- `)[0]}var jr={marker:`Marker`,line:`Line`,polygon:`Polygon`,circle:`Circle`};function Mr(e){return jr[e]??e}function Nr(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return[...t].map(([e,t])=>`${t} ${Mr(e).toLowerCase()}${t===1?``:`s`}`).join(`, `)}var Pr=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 Fr(e){return e.json??=JSON.stringify(We(e.encoded)),e.json}var Ir=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(Fr(this.history[this.index]))}get undone(){return this.index}push(e){let t=JSON.stringify(e),n=this.history[this.index];return n&&t===Fr(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(Fr(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}},Lr=[`color`,`symbol`,`rotation`,`size`];function Rr(e){let t={};for(let n of Lr)e?.[n]!==void 0&&Object.assign(t,{[n]:e[n]});return Object.keys(t).length>0?t:void 0}function zr(e){return Br(e.type===`marker`?{type:`marker`,style:Rr(e.style),label:``}:e.type===`line`?{type:`line`,style:e.style,label:``}:{type:`area`,style:e.style,outlineStyle:e.outlineStyle,label:``})}function Br(e){let t={...e};return t.style||delete t.style,t.outlineStyle||delete t.outlineStyle,t}function Vr(e,t){if(e)return t===`style`?e.style:`outlineStyle`in e?e.outlineStyle:void 0}var Hr=e=>e&&Object.fromEntries(Object.entries(e).sort(([e],[t])=>e<t?-1:1));function Ur(e){return JSON.stringify([e.type,Hr(e.style),Hr(Vr(e,`outlineStyle`))])}var Wr=e=>Ur(zr(e));function Gr(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=Wr(e[n]),a=zr(t[n]);Ur(a)!==i&&(r.has(i)||r.set(i,new Map),r.get(i).set(Ur(a),a))}if(r.size===0)return;let i=new Set(t.map(Wr)),a=new Set(n.map(Ur)),o=[],s=n.map(e=>{let t=r.get(Ur(e));if(!t||t.size!==1||i.has(Ur(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 Kr(e,t){let n=new Set(e.map(Wr));return new Set(t.flatMap((e,t)=>n.has(Ur(e))?[]:[t]))}function qr(e,t,n){let r=Wr(e);if(n.some(e=>Ur(e)===r))return`shown`;let i=t.trim();if(i&&n.some(e=>e.label?.trim()===i))return`different`}function Jr(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 Yr(e){if(!e.meta)return e;let{title:t,colorScheme:n,...r}=e.meta;if(r.viewer?.legend===`none`){delete r.legend;let{legend:e,...t}=r.viewer;Object.keys(t).length>0?r.viewer=t:delete r.viewer}let{meta:i,...a}=e;return Object.keys(r).length>0?{...a,meta:r}:a}var Xr=class{mapDocument;history;events=new tt;constructor(e){this.mapDocument=e,this.history=new Ir(e.getState())}getHash({resolution:e}={}){return Ie(Yr(this.mapDocument.getState()),{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=Gr(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 Zr(e){let t=e.selection.selectedElements;t.length!==0&&(e.duplicateElements(t,[20,20]),e.state.log())}function Qr(e,t){let n=e.selection.selectedElements;n.length!==0&&(e.moveElements(n,t),e.state.log())}function $r(e){let t=e.selection.selectedElements;t.length!==0&&(e.deleteElements(t),e.state.log())}function ei(e){return e.selection.selectedElements.length===1}function ti(e){ei(e)&&e.styleClipboard.copy(e.selection.selectedElements[0])}function ni(e){return e.selection.selectedElements.length>0&&e.styleClipboard.style!==void 0}function ri(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 ii(e){let t=e.legend?.entries??[],n=new Set(t.map(Ur)),r=new Map;for(let t of e.selection.selectedElements){let e=zr(t.getState()),i=Ur(e);n.has(i)||(r.has(i)||r.set(i,{entry:e,texts:new Set}),r.get(i).texts.add(Ar(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 ai(e){return e.styleClipboard.style!==void 0}function oi(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=Br(n.symbol?{type:`marker`,style:Rr(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 si(e,t,n){let r=e.legend?.entries;if(!r?.[t])return;let i={...zr(n.getState()),label:r[t].label};e.legend={...e.legend,entries:r.map((e,n)=>n===t?i:e)},e.state.log()}function ci(e){let t=e.styleClipboard.style;ni(e)&&t&&(e.styleClipboard.paste(e.selection.selectedElements,t),e.state.log())}function li(e){return e.selection.selectedElements.filter(e=>e instanceof Xt)}function ui(e){let t=li(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 di=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 fi(e){return e.type.startsWith(`touch`)}function pi(e){return fi(e)&&e.points.length>1}var mi=new WeakSet;function hi(e){mi.add(e.originalEvent),e.preventDefault()}function gi(e){return mi.has(e.originalEvent)}function _i(e,t,n,r){let i=fi(t),a=e.getContainer().ownerDocument,o=a.defaultView,s=!1,c=e=>{if(pi(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 vi=400,yi=8,bi=10,xi=50,Si=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()},vi),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`||pi(e))return;hi(e);let t=this.doc.view.map,n=[e.lngLat.lng,e.lngLat.lat];L(this.#t,[n]),this.#n=0,_i(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+xi,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,hi(e);return}if(!this.active)return;hi(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<vi&&Math.hypot(t.x-r.x,t.y-r.y)<yi){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)<bi){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})}},Ci=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform),wi=Ci?`Cmd`:`Ctrl`;function Ti(e){return Ci?e.metaKey:e.ctrlKey}var Ei=3,Di=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,Ei))})}),n.on(`mouseout`,()=>{this.pointer=void 0,this.hover(void 0)}),n.on(`click`,e=>{if(gi(e)||this.doc.drawing.active||this.findNode(e))return;e.preventDefault();let t=this.doc.elementAt(e.point,Ei);Ti(e.originalEvent)?t&&this.selection.toggleElement(t):(this.selection.selectElement(t),this.selection.selectNode())})}handleDown(e){pi(e)||gi(e)||this.doc.drawing.active||this.handleNodeDown(e)||this.handleElementDown(e)}handleElementDown(e){if(Ti(e.originalEvent)||e.originalEvent.shiftKey)return;let t=this.selection.selectedElements,n=this.doc.elementAt(e.point,fi(e)?16:Ei,t);if(!n)return;hi(e);let r=e.lngLat.lng,i=st(e.lngLat.lat),a=e.originalEvent.altKey?void 0:t,o=!1;_i(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(!fi(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;hi(e);let i=e.originalEvent.altKey&&t.isMoveNode(n),a=r;return this.selection.selectNode(r.vertex),_i(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)}},Oi=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 Di(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}}))})}},ki=4,Ai=`<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>`,ji=`url("data:image/svg+xml,${encodeURIComponent(Ai)}") 4 20, crosshair`,Mi=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;hi(t);let n=t.originalEvent.pointerType===`touch`,r=e.elementAt(t.point,n?16:ki);if(!r)return;let i=this.#n;this.close(),i?.(r)}),t.on(`mousemove`,t=>{this.active&&this.#i(e.elementAt(t.point,ki))}),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(ji)}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()]:[]})}},Ni=8,Pi=20,Fi=40,Ii=[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`],Li=[`ns-resize`,`nesw-resize`,`ew-resize`,`nwse-resize`];function Ri(e,t=0){return Li[((Ii.indexOf(e)-Math.round(t/45))%4+4)%4]}var zi=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&&hi(e)}),t.on(`mousemove`,t=>{if(!this.active)return;let n=this.#d(t.point,Ni);e.cursor.setResize(n&&Ri(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,Fi-t)/2,Math.max(0,Fi-n)/2)}let n=t.project([e[0],e[1]]),r=t.project([e[2],e[3]]),i=Math.max(0,Fi-(r.x-n.x))/2,a=Math.max(0,Fi-(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),Bi([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 Bi([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=J({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=J({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<Pi||l<Pi)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||pi(e)||gi(e))return;let t=this.#d(e.point,fi(e)?16:Ni),n=this.#o;if(!t||!n)return;hi(e);let r=this.#t,i=!1;_i(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=Pi*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,Pi))),t.includes(`s`)&&(u=Math.min(a,c(f,-20))),Bi([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-Pi),i.y]).lng),t.includes(`e`)&&(c=r.unproject([Math.max(n.x,i.x+Pi),i.y]).lng),t.includes(`n`)&&(l=r.unproject([i.x,Math.min(n.y,a.y-Pi)]).lat),t.includes(`s`)&&(s=r.unproject([i.x,Math.max(n.y,i.y+Pi)]).lat),Bi([o,s,c,l])}};function Bi([e,t,n,r]){return[Math.max(-180,e),Math.max(-_t,t),Math.min(180,n),Math.min(_t,r)]}var Vi=[`symbol`,`fill`,`stroke`];function Hi(e){return e.getStyleLayers()}function Ui(e){return Vi.find(t=>e[t]!==void 0)}var Wi=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(Hi(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=Hi(n),r=Vi.filter(n=>e[n]&&t[n]);if(r.length===0){let n=Ui(t),r=Ui(e),i=n&&t[n]?.color;r&&i&&e[r].patch({color:i})}else for(let n of r)e[n].patch({...t[n]})}}},Gi=class extends Jt{selection;drawing;cursor;state;visibleArea;stylePicker;styleClipboard=new Wi;colors=new Pr(()=>[...Jr(this.legend),...this.elements.flatMap(e=>e.getColors())]);constructor(e){super(e),this.cursor=new di(e.getCanvasContainer()),this.visibleArea=new zi(this),this.stylePicker=new Mi(this),this.drawing=new Si(this),this.selection=new Oi(this),this.state=new Xr(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?Ki(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 Ki(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 qi=g(`: <span class="text"> </span>`,1),Ji=g(` <!>`,1);function Yi(e,r){U(r,!0);let i=R(()=>Ar(r.element));z();var a=Ji(),o=_(a,!0),s=A(o),c=e=>{var r=qi(),a=A(_(r)),o=t(a,!0);B(()=>n(o,l(i))),m(e,r)};W(s,e=>{l(i)&&e(c)}),B(()=>n(o,r.name)),m(e,a),F()}var Xi=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>`),Zi=g(`<ul role="listbox" tabindex="0" aria-label="Elements" aria-multiselectable="true"></ul> <!>`,1);function Qi(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),Ti(e)?`toggle`:e.shiftKey?`range`:`select`)}var ie=Zi(),W=_(ie);let K;G(W,22,()=>l(s),e=>e,(e,t,n)=>{let r=R(()=>Tr(t));var a=Xi();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(()=>Mr(t.getState().type));Yi(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(W),P(W,e=>L(h,e),()=>l(h));var ae=A(W,2);mn(ae,{children:(e,t)=>{z();var r=p();B(()=>n(r,`Shift-click or Shift and arrow keys select a range, ${wi??``}-click adds or removes one element. Drag them to
14
- change the drawing order.`)),m(e,r)},$$slots:{default:!0}}),B(()=>{K=j(W,1,`elements svelte-duvspt`,null,K,{dragging:l(w)!==void 0}),k(W,`aria-activedescendant`,l(f)>=0?`${i}-${l(f)}`:void 0)}),q(`keydown`,W,x),q(`click`,W,re),q(`pointerdown`,W,O),q(`pointermove`,W,ee),q(`pointerup`,W,te),r(`pointercancel`,W,ne),r(`lostpointercapture`,W,ne),m(e,ie),F()}v([`keydown`,`click`,`pointerdown`,`pointermove`,`pointerup`]);var $i=g(`<button class="row svelte-zadp4x"><!>Legend</button>`),ea=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 ta(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=ea(),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=$i(),n=T(t);gt(n,{name:`legend`,size:16}),z(),I(t),B(()=>k(t,`aria-pressed`,l(i).legendSelected)),q(`click`,t,()=>l(i).selectLegend()),m(e,t)};W(y,e=>{r.doc.legend&&e(b)});var x=A(y,4),S=e=>{Qi(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}})};W(x,e=>{l(a)>0?e(S):e(C,-1)}),I(g),I(s),B(()=>{n(f,l(a)),k(_,`aria-pressed`,l(o))}),q(`click`,_,()=>l(i).selectElement()),m(e,s),F()}v([`click`]);var na=100,ra=class{#e=[];add(e,t){this.#e=this.#e.filter(e=>t-e.time<na),this.#e.push({...e,time:t})}aimsAt(e,t,n){let[r]=this.#e.filter(e=>n-e.time<na).slice(-3);if(!r)return!1;let i=t.left>=r.x?t.left:t.right;return ia(e,r,{x:i,y:t.top},{x:i,y:t.bottom})}};function ia(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 aa=[` `,`;`,`,`,`|`];function oa(e,t){e=e.replace(/^\uFEFF/,``);let n=ca(e),r=sa(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??=la(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 sa(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 ca(e){let t=aa[0],n=-1,r=e.slice(0,65536);for(let e of aa){let i=sa(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 la(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=>ua(t[e])!==void 0).length<Math.min(n.length,20)/2)&&(r++,ua(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 ua(e){if(e==null)return;let t=e.trim().replace(/^\+/,``);if(/^-?(\d+([.,]\d*)?|[.,]\d+)$/.test(t))return Number(t.replace(`,`,`.`))}var da=[`address`,`street`,`housenumber`,`postcode`,`city`,`country`],fa={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 pa(e){let t={};for(let n of Object.keys(fa)){let r=e.findIndex(e=>fa[n].test(e.trim()));r>=0&&(t[n]=r)}return t}var ma=5;function ha(e,t,n){return e===`none`?{}:{near:t,zoom:e===`region`?Math.min(n,ma):n}}function ga(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 _a=new Set([`city`,`district`,`locality`,`county`,`state`,`country`]);function va(e){return e.toLowerCase().replace(/ß/g,`ss`).replace(/[^\p{L}\p{N}]/gu,``).replace(/(strasse|str|street|st)$/,`str`)}function ya(e){return e.match(/\d+/)?.[0]??e.trim().toLowerCase()}function ba(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&&_a.has(n.type)||i&&(!s.street||va(s.street)!==va(i))||a&&(!s.housenumber||ya(s.housenumber)!==ya(a))||o&&s.postcode&&s.postcode.replace(/\s/g,``)!==o.replace(/\s/g,``))}var xa=2;function Sa(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 Ca(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch{return new TextDecoder(`windows-1252`).decode(e)}}function wa(e,t,n,r){let i=Sa(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 Ta(e,t){return{color:e,symbol:t}}function Ea(e,t){let n=t.map(e=>({type:`marker`,style:Ta(e.color,e.symbol),label:e.value||`(empty)`}));return{...e??{entries:[]},entries:[...e?.entries??[],...n]}}async function Da(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=ua(t[d.latitude]),i=ua(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:xa},async()=>{for(;t<e.rows.length;){r?.throwIfAborted();let f=t++,p=e.rows[f],m=ga(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?ba(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 Oa(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 ka(){return Object.fromEntries(da.map(e=>[e,-1]))}function Aa(e,t){return{positionType:`coordinates`,latitude:0,longitude:1,address:ka(),bias:`region`,importUncertain:!0,label:-1,popup:-1,color:e,symbol:t,category:-1,categories:[],tooManyCategories:0,addLegend:!0}}function ja(e){let t=pa(e),n=da.some(e=>t[e]!=null),r=ka();for(let e of da)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 Ma(e,t,n,r){if(e.category=n,e.categories=[],e.tooManyCategories=0,n<0||!t)return;let{categories:i,tooMany:a}=wa(t,n,r,e.symbol);e.categories=i,e.tooManyCategories=a}function Na(e){return e.positionType===`coordinates`||da.some(t=>e.address[t]>=0)}function Pa(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(da.filter(e=>i[e]>=0).map(e=>[e,i[e]]))},label:a>=0?a:void 0,popup:o>=0?o:void 0,style:Ta(e.color,e.symbol),category:c.length>0?{column:s,styles:Object.fromEntries(c.map(e=>[e.value,Ta(e.color,e.symbol)]))}:void 0}}function Fa({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 Ia(e,t){let n=Fa(e);return n.v===0&&(n.s=t.s),(n.s===0||n.v===0)&&(n.h=t.h),n}function La({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 Ra(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(La({...n,h:e})));break;case`s`:case`v`:i=[0,1].map(t=>r(La({...n,[e]:t})))}return`linear-gradient(to right, ${i.join(`, `)})`}var za=`rgb`,Ba=g(`<label class="svelte-1xbrtr9"><span aria-hidden="true"> </span><span class="sr-only"> </span></label> <!>`,1),Va=g(`<span class="sr-only">Color channels</span> <!> <div class="sliders svelte-1xbrtr9"></div>`,1);function Ha(e,r){U(r,!0);let i=H(r,`value`,15),a=V(re(za));function o(e){return Ne(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(Fa(o(i())))),f=i();d(()=>{i()!==f&&(f=i(),L(u,Ia(o(i()),l(u)),!0))});function p(e){f=He(e),i(f)}function h(e){L(u,e,!0),p({...La(e),alpha:l(s).alpha})}function g(e){L(u,Ia(e,l(u)),!0),p({...e,alpha:l(s).alpha})}function v(e){p({...l(c),alpha:e})}function y(e){L(a,za=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=Va(),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);G(E,21,()=>l(x),e=>e.key,(e,i)=>{var a=Ba(),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(()=>Ra(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 Ua=g(`<button></button>`),Wa=g(`<div class="palette svelte-1yqgqof" role="group"></div>`);function Ga(e,t){U(t,!0);var n=Wa();G(n,20,()=>t.colors,e=>e,(e,n)=>{var r=Ua();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()]),q(`click`,r,()=>t.onpick(n)),m(e,r)}),I(n),B(()=>k(n,`aria-label`,t.label)),m(e,n),F()}v([`click`]);var Ka,qa=g(`<option> </option>`),Ja=g(`<!> <!>`,1),Ya=g(`<div class="group-label svelte-1en0rpt">Used colors</div> <!>`,1),Xa=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>`),Za=g(`<button class="color-button picker svelte-1en0rpt"><span class="swatch svelte-1en0rpt"></span> </button> <!>`,1);function Qa(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 Ne(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(()=>He(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(Ka)L(p,It(Ka,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),Ka=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 K(e){l(s)&&e.key===`Escape`&&e.target===document.body&&ne()}function ae(e){let t=e.currentTarget.value.trim(),n=Ne(/^[0-9a-f]+$/i.test(t)?`#`+t:t);n&&oe(He(n)),e.currentTarget.value=l(S)}function oe(e){let t=Ne(e);t&&(a(He(t)),w())}function se(e){let t=Ne(e);t&&oe(He({...t,alpha:l(y).alpha}))}var ce=Za();r(`click`,C,D),r(`keydown`,C,K),r(`resize`,C,()=>l(s)&&O());var J=_(ce),le=T(J);let ue;var de=A(le);I(J),P(J,e=>L(d,e),()=>l(d));var fe=A(J,2),pe=e=>{var s=Xa();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);Ha(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:ae}),I(R);var re=A(R,2),U=e=>{var r=Ja(),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);G(a,17,()=>l(b),({id:e,name:t})=>e,(e,r,i,a)=>{let o=()=>l(r).id,s=()=>l(r).name;var c=qa(),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}}),Ga(A(s,2),{get colors(){return l(x).colors},get label(){return l(x).name},get active(){return a()},onpick:se}),m(e,r)};W(re,e=>{o()&&e(U)});var K=A(re,2),ce=e=>{var t=Ya();Ga(A(_(t),2),{get colors(){return l(u)},label:`Used colors`,get active(){return a()},onpick:oe}),m(e,t)};W(K,e=>{l(u).length>0&&e(ce)}),I(s),P(s,e=>L(f,e),()=>l(f)),ie(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`)}),q(`keydown`,s,z),q(`pointerdown`,g,M),q(`pointermove`,g,ee),q(`pointerup`,g,te),r(`pointercancel`,g,te),r(`lostpointercapture`,g,te),q(`click`,C,()=>oe(l(c))),m(e,s)};W(fe,e=>{l(s)&&e(pe)}),B(()=>{k(J,`id`,i.id),k(J,`aria-labelledby`,`${i.id??``}-label ${i.id??``}`),k(J,`aria-expanded`,l(s)),k(J,`aria-controls`,`${i.id??``}-panel`),ue=N(le,``,ue,{"--swatch-color":l(S)}),n(de,` ${l(S)??``}`)}),q(`click`,J,E),q(`keydown`,J,z),m(e,ce),F()}v([`click`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var $a=g(`<option> </option>`),eo=g(`<!> <!>`,1);function to(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=eo(),g=_(p);Z(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=eo(),o=_(a),s=e=>{var i=$a(),a=t(i,!0);i.value=i.__value=``,B(()=>n(a,r.inherit)),m(e,i)};W(o,e=>{r.inherit&&e(s)});var c=A(o,2);G(c,16,()=>l(u),e=>e,(e,r)=>{var i=$a(),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=>{Z(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);G(a,17,()=>l(d),({id:e,face:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).face;var o=$a(),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}})};W(v,e=>{l(s)&&e(y)}),m(e,p),F()}var no=g(`<canvas></canvas>`),ro=g(`<button class="item svelte-11koyaz"> </button>`),io=g(`<button class="item svelte-11koyaz"><canvas class="svelte-11koyaz"></canvas><br/><span class="title svelte-11koyaz"> </span></button>`),ao=g(`<p class="empty svelte-11koyaz" role="status"> </p>`),oo=g(`<!> <div class="list svelte-11koyaz"><!> <!></div> <!>`,1),so=g(`<button class="picker"><!> <!></button> <!>`,1);function co(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=so(),j=_(O),M=T(j);i(M,()=>`${d()} ${l(v)}`,e=>{var t=h(),n=_(t),r=e=>{var t=no();N(t,`width:20px;height:20px;vertical-align:middle`),ie(t,(e,t)=>x?.(e,t),()=>l(C).name),B(()=>{k(t,`width`,20*u),k(t,`height`,20*u)}),m(e,t)};W(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)};W(ee,e=>{l(C)?e(ne):d()===``?e(z,1):e(re,-1)}),I(j);var K=A(j,2);P(Dt(K,{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=oo(),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=ro(),i=t(r,!0);B(()=>n(i,f())),q(`click`,r,()=>w(``)),m(e,r)};W(g,e=>{l(a)&&e(y)});var b=A(g,2);i(b,()=>l(v),e=>{var i=h(),a=_(i);G(a,17,()=>l(r),e=>e.name,(e,r)=>{var i=io(),a=T(i);ie(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)}),q(`click`,i,()=>w(l(r).name)),m(e,i)}),m(e,i)}),I(p);var x=A(p,2),C=e=>{var r=ao(),i=t(r);B(e=>n(i,`No symbol matches “${e??``}”.`),[()=>l(c).trim()]),m(e,r)};W(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)}),q(`click`,j,()=>a?.open()),m(e,O),F()}v([`click`]);var lo=g(`<option>(none)</option>`),uo=g(`<option> </option>`),fo=g(`<!> <!>`,1),po=g(`<th class="svelte-17p4q42"> </th>`),mo=g(`<td class="svelte-17p4q42"> </td>`),ho=g(`<tr></tr>`),go=g(`<p> </p>`),_o=g(`<option>near the map view</option> <option>in the region of the map view</option> <option>anywhere</option>`,1),vo=g(`<!> <!> <!>`,1),yo=g(`<p class="warning svelte-17p4q42"> </p>`),bo=g(`<div class="category svelte-17p4q42"><span> </span> <div class="picker svelte-17p4q42"><!></div> <span hidden=""> </span> <!></div>`),xo=g(`<fieldset class="categories svelte-17p4q42"><legend>Style per category</legend> <!> <!></fieldset>`),So=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 Co(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));Z(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=fo(),o=_(a),s=e=>{var t=lo();t.value=t.__value=-1,m(e,t)};W(o,e=>{l(d)&&e(s)});var c=A(o,2);G(c,17,()=>r.table.columns,y,(e,r,i)=>{var a=uo(),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){Ma(o(),r.table,e,r.colors)}let f=[{value:`coordinates`,label:`Latitude and longitude`},{value:`address`,label:`Address (searched)`}];var h=So(),g=_(h);X(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);G(S,21,()=>r.table.columns,y,(e,r)=>{var i=po(),a=t(i,!0);B(()=>n(a,l(r))),m(e,i)}),I(S),I(x);var C=A(x);G(C,21,()=>r.table.rows.slice(0,5),y,(e,r)=>{var i=ho();G(i,21,()=>l(r),y,(e,r)=>{var i=mo(),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=go(),a=t(i);B(e=>n(a,`… and ${e??``}`),[()=>ut(r.table.rows.length-5,`more row`)]),m(e,i)};W(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=fo(),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=vo(),n=_(t);G(n,16,()=>da,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);Z(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=_o(),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);X(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)};W(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 ie=A(V,2),K=A(T(ie),2);Z(K,{get id(){return`${i}-color`},label:`Color`,children:(e,t)=>{Qa(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 q=A(K,2);Z(q,{get id(){return`${i}-symbol`},label:`Symbol`,children:(e,t)=>{var n=()=>o().symbol,r=e=>o(o().symbol=e??``,!0);co(e,{get id(){return`${i}-symbol`},get symbol(){return n()},set symbol(e){r(e)}})},$$slots:{default:!0}}),a(A(q,2),()=>`category`,()=>`Category`,()=>()=>o().category,()=>d,()=>!0),I(ie),I(D);var ae=A(D,2),oe=e=>{var r=yo(),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)},se=e=>{var a=xo(),s=A(T(a),2);G(s,19,()=>o().categories,e=>e.value,(e,a,o)=>{var s=bo(),c=T(s),u=t(c),d=A(c,2);Qa(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??``;co(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);X(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)};W(ae,e=>{o().tooManyCategories>0?e(oe):o().categories.length>0&&e(se,1)});var ce=A(ae,2),J=T(ce);Y(J,{variant:`ghost`,size:`md`,get onclick(){return r.onback},children:(e,t)=>{z();var n=p(`Back`);m(e,n)},$$slots:{default:!0}});var le=A(J,2);{let e=R(()=>r.table.rows.length===0||!Na(o()));Y(le,{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(ce),B(()=>k(N,`id`,`${i}-position`)),m(e,h),F()}var wo=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),To=g(`<p> </p> <progress></progress> <!>`,1),Eo=g(`<p class="error svelte-k3lpz9" role="alert"> </p>`),Do=g(`<p> </p>`),Oo=g(`<li> </li>`),ko=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),Ao=g(`<p>These rows could not be imported:</p> <ul class="failed svelte-k3lpz9" aria-label="Rows not imported"></ul>`,1),jo=g(`<!> <!> <!> <!>`,1),Mo=g(`<div class="import svelte-k3lpz9"><!></div>`);function No(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()?oa(l(d),l(f)):void 0),g=V(re(Aa(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,Ca(await t.arrayBuffer()),!0),O(void 0))}function O(e){let t=oa(l(d),e);L(f,t.hasHeader,!0);let{category:n,...r}=ja(t.columns);Object.assign(l(g),r),Ma(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 Da(l(h),Pa(l(g)),{signal:b.signal,language:navigator.language,...ha(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=Ea(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=Oa(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=Mo(),E=T(u),M=e=>{var t=wo(),n=A(_(t),2);Y(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());Y(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`)),q(`change`,r,D),m(e,t)},N=e=>{Co(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=To(),i=_(r),a=t(i),o=A(i,2),s=A(o,2);Y(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=jo(),i=_(r),a=e=>{var r=Eo(),i=t(r);B(()=>n(i,`The import failed: ${l(w)??``}`)),m(e,r)},s=e=>{var r=Do(),i=t(r);B(e=>n(i,`Imported ${e??``}.`),[()=>ut(l(x),`marker`)]),m(e,r)};W(i,e=>{l(w)?e(a):e(s,-1)});var c=A(i,2),u=e=>{var r=ko(),i=A(_(r),2);G(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=Oo(),c=t(s);B(()=>n(c,`Row ${i()??``}: ${a()??``} — found ${o()??``}`)),m(e,s)}),I(i),m(e,r)};W(c,e=>{l(C).length>0&&e(u)});var d=A(c,2),f=e=>{var r=Ao(),i=A(_(r),2);G(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=Oo(),c=t(s);B(()=>n(c,`Row ${i()??``}: ${a()?`${a()} — `:``}${o()??``}`)),m(e,s)}),I(i),m(e,r)};W(d,e=>{l(S).length>0&&e(f)});var h=A(d,2);Y(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)};W(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 Po=g(`<tr><th scope="row" class="svelte-1nxbjyd"> </th><td class="svelte-1nxbjyd"><kbd class="svelte-1nxbjyd"> </kbd></td></tr>`),Fo=g(`<table class="svelte-1nxbjyd"><caption class="svelte-1nxbjyd"> </caption><tbody></tbody></table>`),Io=g(`<div class="groups svelte-1nxbjyd"></div>`);function Lo(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!==`?`||Er(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=Io();G(i,21,()=>p,({title:e,keys:t})=>e,(e,r)=>{let i=()=>l(r).title,a=()=>l(r).keys;var o=Fo(),s=T(o),c=t(s,!0),u=A(s);G(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=Po(),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 Ro=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=>{Er(e)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toUpperCase()===`F`&&this.available&&(e.preventDefault(),this.toggle())}},zo=g(`<kbd aria-hidden="true" class="svelte-v4f4cr"> </kbd>`),Bo=g(`<button class="item svelte-v4f4cr" role="menuitem"><span class="name svelte-v4f4cr"> </span> <!></button>`),Vo=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),Ho=g(`<button role="menuitem"><!></button>`),Uo=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>`),Wo=g(`<p class="empty svelte-v4f4cr">No maps yet</p>`),Go=g(`<!> <!> <!>`,1),Ko=g(`<!> <!>`,1),qo=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 Jo(i,o){let s=u();U(o,!0);let c=(e,i=M,a=M,o)=>{let s=O(()=>ee(o?.(),()=>({}),!0));var c=Bo(),u=T(c),d=t(u,!0),f=A(u,2),p=e=>{var r=zo(),i=t(r,!0);B(()=>n(i,te?l(s).keys[0]:l(s).keys[1])),m(e,r)};W(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())}),q(`click`,c,()=>ie(a())),r(`pointerenter`,c,e=>{e.pointerType===`mouse`&&l(v)&&!e.currentTarget.closest(`.submenu`)&&(pe(e)?me(()=>ye()):ye())}),m(e,c)},f=(e,i=M,o=M,c=M,u)=>{let d=O(()=>ee(u?.(),o()));var f=Vo(),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=>J[i()]=e,()=>J?.[i()]);var S=A(p,2);let C;var w=T(S);a(w,c),I(S),P(S,e=>ce[i()]=e,()=>ce?.[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(le)&&`${l(le).left}px`,top:l(le)&&`${l(le).top}px`,"max-height":l(le)&&`${l(le).maxHeight}px`})}),q(`click`,p,e=>ve(i(),e.detail===0)),r(`pointerenter`,p,e=>{e.pointerType===`mouse`&&(l(v)&&l(v)!==i()&&pe(e)?me(()=>ve(i())):ve(i()))}),r(`pointerenter`,S,ge),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(),K()[0]?.focus()}function H(e=!0){L(g,!1),L(v,void 0),ge(),e&&l(y)?.focus()}function ie(e){H(),e()}function K(e){let t=e?ce[e]:l(b),n=e?`[role^="menuitem"]`:`:scope > [role^="menuitem"]`;return[...t?.querySelectorAll(n)??[]].filter(e=>!e.disabled&&e.checkVisibility())}function ae(e){let t=Object.keys(ce).find(t=>ce[t]?.contains(e.target));if(t&&(e.key===`ArrowLeft`||e.key===`Escape`)){e.preventDefault(),e.stopPropagation(),ye(!0);return}let n=Object.keys(J).find(t=>J[t]===e.target);if(n&&e.key===`ArrowRight`){e.preventDefault(),ve(n,!0);return}let r=K(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 oe(e){Ro.onKeydown(e),!(e.defaultPrevented||Er(e)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)&&e.key===`0`&&(e.preventDefault(),o.doc.showAllElements())}function se(e){let t=e.target;l(g)&&!l(b)?.contains(t)&&!l(y)?.contains(t)&&H(!1)}let ce=re({}),J=re({}),le=V(void 0),ue=new ra,de,fe;function pe(e){let t=l(v)&&ce[l(v)];return!!t&&ue.aimsAt({x:e.clientX,y:e.clientY},t.getBoundingClientRect(),performance.now())}function me(e){de=e,clearTimeout(fe),fe=setTimeout(he,300)}function he(){let e=de;ge(),e?.()}function ge(){clearTimeout(fe),de=void 0}function _e(e){ue.add({x:e.clientX,y:e.clientY},performance.now()),de&&(pe(e)?me(de):he())}async function ve(e,t=!1){ge(),L(v,e,!0),e===`examples`&&Se(),await S(),be(),t&&K(e)[0]?.focus()}function ye(e=!1){ge();let t=l(v);L(v,void 0),e&&t&&J[t]?.focus()}function be(){let e=l(v),t=e&&J[e],n=e&&ce[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(le,{left:c,top:u,maxHeight:o},!0)}d(()=>{l(xe),l(Ce),l(v),S().then(be)});let xe=V(void 0);async function Se(){L(xe,l(xe)??(await e(async()=>{let{examples:e}=await import(`../chunks/taIKLBN-.js`);return{examples:e}},[],import.meta.url)).examples,!0)}let Ce=V(re([]));d(()=>{if(!l(g))return;let e=async()=>L(Ce,await o.sync.recent(),!0);return e(),o.sync.onChange(()=>void e())});let we=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}),Te=V(void 0);async function Ee(e){if(l(Te)!==e.id){L(Te,e.id,!0);return}L(Te,void 0);let t=l(Ce).findIndex(({id:t})=>t===e.id);await o.sync.deleteRecent(e.id),L(Ce,await o.sync.recent(),!0),await S();let n=[...ce.recent?.querySelectorAll(`.recent`)??[]];([...n[Math.min(t,n.length-1)]?.querySelectorAll(`[role="menuitem"]`)??[]].find(e=>!e.disabled)??K(`recent`)[0]??J.recent)?.focus()}d(()=>{l(g)||L(Te,void 0)});var De=qo();r(`pointerdown`,C,se),r(`keydown`,C,oe),r(`resize`,C,be);var Oe=_(De),ke=T(Oe);fn(ke,{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 Ae=A(ke,2);{let e=e=>{var t=h(),n=_(t);G(n,17,()=>l(xe)??[],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);G(i,17,()=>l(Ce),e=>e.id,(e,r)=>{var i=Uo(),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=Ho();let n;var i=T(t),a=e=>{var t=p(`Delete`);m(e,t)},o=e=>{gt(e,{name:`trash`,size:14})};W(i,e=>{l(Te)===l(r).id?e(a):e(o,-1)}),I(t),B(()=>{n=j(t,1,`item delete svelte-v4f4cr`,null,n,{confirming:l(Te)===l(r).id}),k(t,`aria-label`,l(Te)===l(r).id?`Really delete ${l(r).name}`:`Delete ${l(r).name}`),k(t,`title`,l(Te)===l(r).id?`Click again to delete`:`Delete`)}),q(`click`,t,()=>Ee(l(r))),m(e,t)};W(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`:we.format(l(r).changed)]),q(`click`,a,()=>ie(()=>o.sync.openRecent(l(r).id))),m(e,i)},e=>{var t=Wo();m(e,t)}),m(e,r)},i=e=>{var t=Go(),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=Ko(),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 je=T(Ae);c(je,()=>`New map`,()=>()=>o.files.newFile());var Me=A(je,2);c(Me,()=>`Open…`,()=>()=>o.files.openFile());var Ne=A(Me,2);f(Ne,()=>`examples`,()=>`Open example`,()=>e,()=>`Examples`);var Pe=A(Ne,2);f(Pe,()=>`recent`,()=>`Recent maps`,()=>r);var Fe=A(Pe,2);c(Fe,()=>`Download…`,()=>()=>o.files.downloadFile());var Ie=A(Fe,2);f(Ie,()=>`import`,()=>`Import`,()=>i);var Le=A(Ie,2);f(Le,()=>`export`,()=>`Export`,()=>a);var Re=A(Le,2);c(Re,()=>`Shared map…`,()=>()=>o.doc.visibleArea.open());var ze=A(Re,2),Be=e=>{c(e,()=>Ro.active?`Exit fullscreen`:`Fullscreen`,()=>()=>Ro.toggle(),()=>({keys:[`F`,`F`,`F`]}))};W(ze,e=>{Ro.available&&e(Be)});var Ve=A(ze,4);c(Ve,()=>`Undo`,()=>()=>o.doc.state.undo(),()=>({disabled:!l(E).undoEnabled,keys:[`⌘Z`,`Ctrl+Z`,`Meta+Z Control+Z`]}));var He=A(Ve,2);c(He,()=>`Redo`,()=>()=>o.doc.state.redo(),()=>({disabled:!l(E).redoEnabled,keys:[`⇧⌘Z`,`Ctrl+Shift+Z`,`Meta+Shift+Z Control+Shift+Z`]}));var Ue=A(He,2);c(Ue,()=>`Duplicate`,()=>()=>Zr(o.doc),()=>({disabled:!l(D),keys:[`⌘D`,`Ctrl+D`,`Meta+D Control+D`]}));var We=A(Ue,2);c(We,()=>`Bring to front`,()=>()=>Qr(o.doc,`front`),()=>({disabled:!l(D),keys:[`⇧⌘↑`,`Ctrl+Shift+↑`,`Meta+Shift+ArrowUp Control+Shift+ArrowUp`]}));var Ge=A(We,2);c(Ge,()=>`Bring forward`,()=>()=>Qr(o.doc,`forward`),()=>({disabled:!l(D),keys:[`⌘↑`,`Ctrl+↑`,`Meta+ArrowUp Control+ArrowUp`]}));var Ke=A(Ge,2);c(Ke,()=>`Send backward`,()=>()=>Qr(o.doc,`backward`),()=>({disabled:!l(D),keys:[`⌘↓`,`Ctrl+↓`,`Meta+ArrowDown Control+ArrowDown`]}));var qe=A(Ke,2);c(qe,()=>`Send to back`,()=>()=>Qr(o.doc,`back`),()=>({disabled:!l(D),keys:[`⇧⌘↓`,`Ctrl+Shift+↓`,`Meta+Shift+ArrowDown Control+Shift+ArrowDown`]}));var Je=A(qe,2);{let e=R(()=>({disabled:!ei(o.doc),keys:[`⌥⌘C`,`Ctrl+Alt+C`,`Meta+Alt+C Control+Alt+C`]}));c(Je,()=>`Copy style`,()=>()=>ti(o.doc),()=>l(e))}var Ye=A(Je,2);{let e=R(()=>({disabled:!ni(o.doc),keys:[`⌥⌘V`,`Ctrl+Alt+V`,`Meta+Alt+V Control+Alt+V`]}));c(Ye,()=>`Paste style`,()=>()=>ci(o.doc),()=>l(e))}var Xe=A(Ye,2);c(Xe,()=>`Delete`,()=>()=>$r(o.doc),()=>({disabled:!l(D),keys:[`⌫`,`Del`,`Delete`]}));var Ze=A(Xe,4);c(Ze,()=>`Keyboard shortcuts`,()=>()=>l(w)?.open(),()=>({keys:[`?`,`?`,`?`]}));var Qe=A(Ze,2),$e=A(T(Qe),2);gt($e,{name:`external`,size:14}),z(2),I(Qe),I(Ae),P(Ae,e=>L(b,e),()=>l(b)),q(`click`,Qe,()=>H())}I(Oe);var et=A(Oe,2);P(No(et,{get doc(){return o.doc}}),e=>L(x,e,!0),()=>l(x));var tt=A(et,2);P(Lo(tt,{}),e=>L(w,e,!0),()=>l(w)),B(()=>{k(Ae,`id`,`${s}-menu`),k(Ae,`hidden`,!l(g))}),q(`keydown`,Ae,ae),q(`pointermove`,Ae,_e),r(`scroll`,Ae,be),m(i,De),F()}v([`click`,`keydown`,`pointermove`]);var Yo=g(`<div class="preview svelte-1cx698p"><iframe title="Preview of the shared map" class="svelte-1cx698p"></iframe></div>`);function Xo(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=>{Er(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=Yo();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)};W(u,e=>{n()&&e(f)}),m(e,c),F()}function Zo(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 Qo=g(`<span class="picture svelte-yosfe2"></span>`),$o=g(`<!> <!>`,1),es=g(`<!> <!> <!>`,1);function ts(e,t){let n=u();U(t,!0);let r=H(t,`colorLabel`,3,`Color`),i=()=>t.doc.state.log(),a=R(()=>Zo(t.layers,`color`)),o=R(()=>Zo(t.layers,`pattern`)),s=R(()=>Zo(t.layers,`patternScale`)),c=R(()=>Zo(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=_e.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=es(),y=_(v);Z(y,{get label(){return r()},get id(){return`${n}-color`},get mixed(){return l(a).mixed},children:(e,r)=>{Qa(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);Z(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=Qo();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=$o(),r=_(t);Z(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 qe[0]},get max(){return qe[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);Z(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 Te[0]},get max(){return Te[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)};W(x,e=>{l(d)&&e(S)}),m(e,v),F()}var ns=(e,t=M,n=M)=>{var r=os(),i=T(r),a=T(i),o=A(a),s=e=>{var t=rs();m(e,t)},c=e=>{var t=is();m(e,t)},l=e=>{var t=as();m(e,t)};W(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)},rs=s(`<path d="M24 6L16 1.5V10.5z" fill="currentColor"></path>`),is=s(`<path d="M18 2.5L21.5 6L18 9.5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>`),as=s(`<circle cx="21" cy="6" r="3.5" fill="currentColor"></circle>`),os=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>`),ss=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>`),cs=g(`<!> <!>`,1);function ls(e,t){let n=u();U(t,!0);let r=()=>t.doc.state.log(),i=R(()=>Zo(t.layers,`arrowStart`)),a=R(()=>Zo(t.layers,`arrowEnd`)),o=R(()=>Zo(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=Ce.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=cs(),h=_(p);{let e=R(()=>l(i).mixed||l(a).mixed);Z(h,{get id(){return`${n}-arrows`},label:`Arrowheads`,get mixed(){return l(e)},group:!0,children:(e,t)=>{var o=ss(),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)=>{ns(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)=>{ns(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=>{Z(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}})};W(g,e=>{l(s)&&e(v)}),m(e,p),F()}var us=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>`),ds=g(`<!> <!> <!>`,1);function fs(e,n){let r=u();U(n,!0);let i=H(n,`colorLabel`,3,`Color`),a=()=>n.doc.state.log(),o=R(()=>Zo(n.layers,`color`)),s=R(()=>Zo(n.layers,`width`)),c=R(()=>Zo(n.layers,`dash`)),d={solid:`Solid`,dashed:`Dashed`,dotted:`Dotted`,"long-dash":`Long dash`,"dash-dot":`Dash-dot`},f=we.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=ds(),g=_(h);Z(g,{get id(){return`${r}-color`},get label(){return i()},get mixed(){return l(o).mixed},children:(e,t)=>{Qa(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);Z(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=us(),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);Z(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 ps=g(`<section class="inspector-section svelte-ewoxxi"><div class="heading svelte-ewoxxi"><h3 class="svelte-ewoxxi"> </h3> <!></div> <!></section>`);function ms(e,r){let i=u();var o=ps(),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 hs=g(`<!> <!> <!>`,1),gs=g(`<!> <!> <!> <!> <!>`,1),_s=g(`<!> <!>`,1);function vs(e,t){let n=u();U(t,!0);let r=()=>t.doc.state.log(),i=R(()=>Zo(t.layers,`symbol`)),a=R(()=>Zo(t.layers,`color`)),o=R(()=>Zo(t.layers,`rotation`)),s=R(()=>Zo(t.layers,`flat`)),c=R(()=>Zo(t.layers,`haloWidth`)),d=R(()=>Zo(t.layers,`label`)),f=R(()=>Zo(t.layers,`labelPosition`)),p=R(()=>Zo(t.layers,`labelColor`)),h=R(()=>Zo(t.layers,`haloColor`)),g=R(()=>Zo(t.layers,`size`)),v=R(()=>Zo(t.layers,`labelSize`)),y=R(()=>Zo(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(()=>ae.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=hs(),D=_(E);ms(D,{title:`Symbol`,children:(e,c)=>{var u=hs(),d=_(u);Z(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()};co(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=hs(),s=_(i);Z(s,{get id(){return`${n}-color`},label:`Color`,get mixed(){return l(a).mixed},children:(e,i)=>{Qa(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);Z(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);Z(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)};W(f,e=>{l(b)&&e(p)});var h=A(f,2);Z(h,{get id(){return`${n}-flat`},label:`Flat on the map`,get mixed(){return l(s).mixed},children:(e,t)=>{X(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);ms(O,{title:`Label`,children:(e,i)=>{var a=gs(),o=_(a);Z(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);Z(s,{get id(){return`${n}-labelColor`},label:`Text color`,get mixed(){return l(p).mixed},children:(e,i)=>{Qa(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);to(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);Z(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);Z(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}}),ms(A(O,2),{title:`Halo`,children:(e,i)=>{var a=_s(),o=_(a);Z(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);Z(s,{get id(){return`${n}-haloColor`},label:`Halo color`,get mixed(){return l(h).mixed},children:(e,i)=>{Qa(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 ys=g(`<div role="alert"><!></div>`),bs=g(`<!> <!> <!>`,1);function xs(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))}}ms(e,{title:`Size`,children:(e,t)=>{var r=bs(),u=_(r);Z(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);Z(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=ys(),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)};W(f,e=>{l(s)&&e(h)}),m(e,r)},$$slots:{default:!0}}),F()}var Ss=g(`<span class="mixed svelte-1oy73by">(mixed)</span>`),Cs=g(`<label class="switch svelte-1oy73by" title="Draw an outline"><!> <!></label>`),ws=g(`<!> <!>`,1),Ts=g(`<!> <div role="status"><!></div> <!>`,1),Es=g(`<output> </output>`),Ds=g(`<!> <!> <!> <!> <!> <!> <!> <!>`,1);function Os(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?Zo(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?Zo(l(S),`smooth`):void 0),w=R(()=>{if(!l(o))return;let e=Ar(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=Ds(),c=_(i),u=e=>{vs(e,{get layers(){return l(g)},get doc(){return r.doc}})};W(c,e=>{l(g).length>0&&e(u)});var d=A(c,2),S=e=>{var t=ws(),n=_(t);ms(n,{title:`Fill`,children:(e,t)=>{ts(e,{get layers(){return l(v)},get doc(){return r.doc}})},$$slots:{default:!0}}),ms(A(n,2),{title:`Outline`,heading:e=>{var t=Cs(),n=T(t),r=e=>{var t=Ss();m(e,t)};W(n,e=>{l(b).mixed&&e(r)});var i=A(n,2);X(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=>{fs(e,{get layers(){return l(y)},get doc(){return r.doc}})};W(i,e=>{l(b).value&&e(a)}),m(e,n)},$$slots:{heading:!0,default:!0}}),m(e,t)},D=e=>{ms(e,{title:`Line`,children:(e,t)=>{var n=ws(),i=_(n);fs(i,{get layers(){return l(y)},get doc(){return r.doc}});var a=A(i,2),o=e=>{ls(e,{get layers(){return l(x)},get doc(){return r.doc}})};W(a,e=>{l(x).length>0&&e(o)}),m(e,n)},$$slots:{default:!0}})};W(d,e=>{l(v).length>0&&l(b)?e(S):l(y).length>0&&e(D,1)});var O=A(d,2),j=e=>{ms(e,{title:`Shape`,children:(e,t)=>{var i=ws(),o=_(i);Z(o,{get id(){return`${a}-smooth`},label:`Smooth`,get mixed(){return l(C).mixed},children:(e,t)=>{X(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)=>{Y(e,{onclick:()=>ui(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}})};W(c,e=>{l(x).length>0&&e(u)}),m(e,i)},$$slots:{default:!0}})};W(O,e=>{l(C)&&e(j)});var M=A(O,2),N=e=>{xs(e,{get circles(){return l(f)},get doc(){return r.doc}})};W(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}})};W(ee,e=>{r.elements.length>1&&l(g).length===0&&l(y).length===0&&e(P)});var te=A(ee,2),F=e=>{ms(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}})};W(te,e=>{l(o)&&e(F)});var ne=A(te,2);ms(ne,{title:`Legend`,children:(e,t)=>{var i=Ts(),a=_(i);nt(a,{children:(e,t)=>{Y(e,{onclick:()=>L(E,ii(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)};W(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}})};W(c,e=>{l(w)&&l(E)===void 0&&e(u)}),m(e,i)},$$slots:{default:!0}});var V=A(ne,2),H=e=>{ms(e,{title:`Info`,children:(e,r)=>{var i=h(),s=_(i);G(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;Z(e,{get id(){return`${a}-measurement-${l(i)??``}`},get label(){return o()},children:(e,r)=>{var o=Es(),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);W(V,e=>{l(re)&&e(H)}),m(e,i)}),m(e,D),F()}var ks=g(`<option> </option>`),As=g(`<!> <!>`,1),js=g(`<!> <!> <!> <!> <!>`,1),Ms=g(`<option>Browser language</option> <option>Local names</option> <!> <!>`,1),Ns=g(`<!> <!> <!>`,1);function Ps(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=Ns(),O=_(D);ms(O,{title:`Background map`,children:(e,r)=>{var a=js(),s=_(a);Z(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=>{Z(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=As(),a=_(i),s=e=>{var r=ks(),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));W(a,e=>{l(c)&&e(s)});var u=A(a,2);G(u,17,()=>$t,({id:e,name:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).name;var o=ks(),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}})};W(c,e=>{l(o).base===`vector`&&e(u)});var f=A(c,2),p=e=>{Z(e,{get id(){return`${i}-buildings3d`},label:`3D buildings`,children:(e,t)=>{{let t=R(()=>l(o).buildings===`extruded`);X(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}})};W(f,e=>{l(o).base===`vector`&&e(p)});var h=A(f,2),g=e=>{var t=As(),n=_(t);Z(n,{get id(){return`${i}-streets`},label:`Streets`,children:(e,t)=>{X(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);Z(r,{get id(){return`${i}-borders`},label:`Borders`,children:(e,t)=>{X(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)};W(h,e=>{l(o).base===`satellite`&&e(g)});var v=A(h,2),y=e=>{var t=As(),n=_(t);Z(n,{get id(){return`${i}-hillshade`},label:`Hillshade`,children:(e,t)=>{X(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);Z(r,{get id(){return`${i}-terrain`},label:`Terrain`,children:(e,t)=>{X(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)};W(v,e=>{nn.current.elevation&&e(y)}),m(e,a)},$$slots:{default:!0}});var k=A(O,2);ms(k,{title:`Background colors`,children:(e,t)=>{var n=js(),r=_(n);Z(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);Z(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);Z(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}})};W(s,e=>{l(w)&&e(c)});var u=A(s,2);nt(u,{children:(e,t)=>{{let t=R(()=>!l(S));Y(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}}),ms(A(k,2),{title:`Background labels`,children:(e,r)=>{var s=As(),u=_(s);Z(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=js(),s=_(r);to(s,{get id(){return i},get value(){return l(o).font},onchange:e=>e&&T(`font`,e)});var u=A(s,2);Z(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=Ms(),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=ks(),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));W(u,e=>{l(f)&&e(d)});var p=A(u,2);G(p,17,()=>c,({id:e,name:t})=>e,(e,r)=>{let i=()=>l(r).id,a=()=>l(r).name;var o=ks(),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);Z(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);Z(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);Z(p,{get id(){return`${i}-labels-on-top`},label:`Over areas and lines`,children:(e,t)=>{X(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)};W(d,e=>{l(o).labels!==`none`&&e(p)}),m(e,s)},$$slots:{default:!0}}),m(e,D),F()}function Fs(e){return e.legend??{entries:[]}}function Is(e,t){let n={...Fs(e),...t};e.legend=n.entries.length>0?n:void 0}function Ls(e,t,n){Rs(e,t,e=>({...e,...n}))}function Rs(e,t,n){let{entries:r}=Fs(e);Is(e,{entries:r.map((e,r)=>r===t?n(e):e)})}var zs=e=>hn(`symbol`,e.style).color;function Bs(e,t,n){let r=Fs(e).entries[t];if(!r||n===r.type)return;let i={color:zs(r)};Rs(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 Vs(e,t,n){let r=Fs(e).entries[t];if(!r)return;let i=Us(e,t,`outlineStyle`,`outline`);if(n&&!Vr(r,`outlineStyle`)?.color){let e=Ne(zs(r));e&&(i.color=He({...e,alpha:1}))}i.visible=n,e.state.log()}function Hs(e,t,n){let r={...e};return n?r[t]=n:delete r[t],r}function Us(e,t,n,r){let i=()=>hn(r,Vr(Fs(e).entries[t],n)),a=(a,o)=>{let s=Ot(r,{...i(),[a]:o});Rs(e,t,e=>Hs(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 Ws=g(`<!>Take style from…`,1),Gs=g(`<!> <!>`,1),Ks=g(`<div role="status"><!></div>`),qs=g(`<!> <!> <!>`,1),Js=g(`<div class="details svelte-4icea3"><div class="head svelte-4icea3"><!> <!></div> <!> <!> <!> <!> <!></div>`);function Ys(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=Js(),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);Z(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=>Bs(t.doc,t.index,e),get options(){return i}})},$$slots:{default:!0}});var d=A(u,2);nt(d,{children:(e,n)=>{var r=Gs(),i=_(r);{let e=R(()=>!ai(t.doc));Y(i,{get disabled(){return l(e)},title:`The style of an element, copied with “Copy style”`,onclick:()=>oi(t.doc,t.index),children:(e,t)=>{z();var n=p(`Paste style`);m(e,n)},$$slots:{default:!0}})}var a=A(i,2);Y(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=Ws(),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=Ks(),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)};W(f,e=>{t.picking&&e(h)});var g=A(f,2),v=e=>{var n=Gs(),i=_(n);Z(i,{get id(){return`${t.id??``}-symbol`},label:`Symbol`,children:(e,n)=>{var i=()=>hn(`symbol`,t.entry.style).symbol,a=e=>{Ls(t.doc,t.index,{style:{...t.entry.style,symbol:e??``}}),r()};co(e,{get id(){return`${t.id??``}-symbol`},get symbol(){return i()},set symbol(e){a(e)}})},$$slots:{default:!0}});var a=A(i,2);Z(a,{get id(){return`${t.id??``}-color`},label:`Color`,children:(e,n)=>{var i=()=>zs(t.entry),a=e=>Ls(t.doc,t.index,{style:{...t.entry.style,color:e}});Qa(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(()=>Us(t.doc,t.index,`style`,`line`));var r=Gs(),i=_(r);{let e=R(()=>[l(n)]);fs(i,{get layers(){return l(e)},get doc(){return t.doc}})}var a=A(i,2);{let e=R(()=>[l(n)]);ls(a,{get layers(){return l(e)},get doc(){return t.doc}})}m(e,r)},b=e=>{let n=R(()=>Us(t.doc,t.index,`outlineStyle`,`outline`));var r=qs(),i=_(r);{let e=R(()=>[Us(t.doc,t.index,`style`,`fill`)]);ts(i,{get layers(){return l(e)},get doc(){return t.doc},colorLabel:`Fill color`})}var a=A(i,2);Z(a,{get id(){return`${t.id??``}-outline`},label:`Outline`,children:(e,r)=>{X(e,{get id(){return`${t.id??``}-outline`},get checked(){return l(n).visible},onchange:e=>Vs(t.doc,t.index,e.currentTarget.checked)})},$$slots:{default:!0}});var o=A(a,2),s=e=>{{let r=R(()=>[l(n)]);fs(e,{get layers(){return l(r)},get doc(){return t.doc},colorLabel:`Outline color`})}};W(o,e=>{l(n).visible&&e(s)}),m(e,r)};W(g,e=>{t.entry.type===`marker`?e(v):t.entry.type===`line`?e(y,1):e(b,-1)});var x=A(g,2);Y(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 Xs=g(`<!> <!> <!> <!>`,1),Zs=g(`<!> <!> <!> <!> <!>`,1),Qs=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>`),$s=g(`<div role="group" aria-label="Legend entries"></div> <!>`,1),ec=g(`<!> <!> <!>`,1);function tc(e,t){let n=u();U(t,!0);let i=H(t,`doc`,7),a=R(()=>Fs(i())),o=()=>i().state.log(),s=R(()=>i().elements.length===0?new Set:Kr(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){Is(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=>si(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,Is(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),Is(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 ie=V(void 0),K=V(void 0),ae=V(void 0);function oe(e,t){e.button===0&&l(ie)&&(L(K,{index:t,pointerId:e.pointerId},!0),l(ie).setPointerCapture(e.pointerId),e.preventDefault(),window.getSelection()?.removeAllRanges())}function se(e){if(!l(K)||e.pointerId!==l(K).pointerId||!l(ie))return;let t=[...l(ie).querySelectorAll(`:scope > .slot`)],n=t.findIndex(t=>{let n=t.getBoundingClientRect();return e.clientY<n.top+n.height/2});L(ae,n<0?t.length:n,!0);let r=l(ie).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 ce(e){l(K)&&e.pointerId===l(K).pointerId&&(l(ae)!==void 0&&te(l(K).index,l(ae)),J())}function J(){l(K)&&l(ie)?.hasPointerCapture(l(K).pointerId)&&l(ie).releasePointerCapture(l(K).pointerId),L(K,void 0),L(ae,void 0)}var le=h(),ue=_(le),de=e=>{var t=ec(),c=_(t);ms(c,{title:`In shared maps`,children:(e,t)=>{var r=Xs(),i=_(r);Z(i,{get id(){return`${n}-shown`},label:`Shown`,children:(e,t)=>{{let t=R(()=>l(x)!==`none`);X(e,{get id(){return`${n}-shown`},get checked(){return l(t)},onchange:e=>C(e.currentTarget.checked?Or(`legend`):`none`)})}},$$slots:{default:!0}});var a=A(i,2),o=e=>{Z(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 Dr.legend}})},$$slots:{default:!0}})};W(a,e=>{l(x)!==`none`&&e(o)});var s=A(a,2);nt(s,{children:(e,t)=>{Y(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);ms(u,{title:`Legend style`,children:(e,t)=>{var r=Zs(),i=_(r);Z(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);Z(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);Z(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);Z(c,{get id(){return`${n}-bold`},label:`Bold`,children:(e,t)=>{{let t=R(()=>l(a).bold===!0);X(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);Z(u,{get id(){return`${n}-italic`},label:`Italic`,children:(e,t)=>{{let t=R(()=>l(a).italic===!0);X(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}}),ms(A(u,2),{title:`Entries`,children:(e,t)=>{var c=$s(),u=_(c);let d;G(u,21,()=>l(a).entries,y,(e,t,r)=>{var c=Qs();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=>Ls(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));W(x,e=>{l(C)&&e(S)});var w=A(x,2),M=e=>{{let o=R(()=>l(E)===r);Ys(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)})}};W(w,e=>{l(O)[r]&&e(M)}),I(d),I(c),B(()=>{u=j(c,1,`slot svelte-akqerx`,null,u,{"drop-before":l(ae)===r&&l(K)?.index!==r&&l(K)?.index!==r-1,"drop-after":l(ae)===l(a).entries.length&&r===l(a).entries.length-1&&l(K)?.index!==r}),k(d,`id`,`${n}-${r}-entry`)}),q(`pointerdown`,g,e=>oe(e,r)),m(e,c)}),I(u),P(u,e=>L(ie,e),()=>l(ie));var f=A(u,2);nt(f,{children:(e,t)=>{Y(e,{onclick:()=>ri(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(K)!==void 0})),q(`pointermove`,u,se),q(`pointerup`,u,ce),r(`pointercancel`,u,J),r(`lostpointercapture`,u,J),m(e,c)},$$slots:{default:!0}}),m(e,t)},fe=e=>{nt(e,{children:(e,t)=>{Y(e,{onclick:()=>ri(i()),children:(e,t)=>{z();var n=p(`Add legend entry`);m(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}})};W(ue,e=>{l(a).entries.length>0?e(de):e(fe,-1)}),m(e,le),F()}v([`pointermove`,`pointerup`,`pointerdown`]);var nc=g(`<span class="sr-only"> </span> <!>`,1),rc=g(`<div><!> <!></div> <!>`,1);function ic(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);G(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=rc(),h=_(f);let g;var v=T(h);{let e=R(()=>l(r)!==`none`);X(v,{get checked(){return l(e)},onchange:e=>s(o(),e.currentTarget.checked?Or(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=nc(),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 Dr[o()]}}),B(e=>{k(u,`id`,`${i}-${o()??``}-place`),n(f,`Place of the ${e??``}`)},[()=>c().toLowerCase()]),m(e,a)};W(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)};W(g,e=>{(o()!==`legend`||a().legend?.entries.length)&&e(v)}),m(e,f)}),m(e,c),F()}var ac=g(`<div class="button svelte-19s5udl"><!></div> <!>`,1),oc=g(`<!> <!>`,1);function sc(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=oc(),c=_(s);Z(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 Dr.navigation}})},$$slots:{default:!0}});var d=A(c,2);G(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=ac(),u=_(c),d=T(u);X(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 cc=g(`<!> <!>`,1),lc=g(`<p class="size svelte-102hxyn" role="status"> </p> <!> <!>`,1),uc=g(`<div class="visitors svelte-102hxyn"><!></div> <!>`,1),dc=g(`<div class="visitors svelte-102hxyn"><!> <!> <!> <!> <!></div> <!>`,1),fc=g(`<!> <!> <!> <!> <!>`,1);function pc(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"]`)&&Er(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&&!Er(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=fc();r(`keydown`,C,x,!0),r(`keydown`,C,y),r(`keyup`,C,S);var E=_(w);ms(E,{title:`Visible area`,children:(e,r)=>{var a=lc(),s=_(a),c=t(s,!0),u=A(s,2);nt(u,{children:(e,t)=>{var n=cc(),r=_(n);Y(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);Y(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);ms(D,{title:`Rotation and tilt`,children:(e,t)=>{var n=cc(),r=_(n);Z(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);Z(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);ms(O,{title:`Visitors`,children:(e,t)=>{var r=dc(),i=_(r),c=T(i);X(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);X(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);X(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);X(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));X(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);G(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=uc(),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);X(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=cc(),r=_(n);Z(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)=>{Y(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)};W(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);ms(k,{title:`Navigation buttons`,children:(e,t)=>{sc(e,{get doc(){return i.doc}})},$$slots:{default:!0}}),ms(A(k,2),{title:`Controls`,children:(e,t)=>{var n=cc(),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}}),ic(A(r,2),{get doc(){return i.doc}}),m(e,n)},$$slots:{default:!0}}),m(e,w),F()}var mc=g(`<span class="subtitle svelte-1dajf7z"> </span>`),hc=g(`<!> <!> <!> <!>`,1),gc=g(`<!> <!>`,1),_c=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 vc(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:Nr(e)}:{icon:Tr(l(s)[0]).name,title:Mr(e[0]),subtitle:Ar(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(){ri(a()),l(o).selectLegend()}var E=_c(),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=mc(),i=t(r,!0);B(()=>n(i,l(g).subtitle)),m(e,r)};W(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)})};W(te,e=>{l(f)?e(ne):l(o).legendSelected&&l(c)&&e(re,1)}),I(D);var ie=A(D,2),G=e=>{pc(e,{get doc(){return a()}})},K=e=>{tc(e,{get doc(){return a()}})},q=e=>{Os(e,{get elements(){return l(s)},get doc(){return a()}})},ae=e=>{var t=hc(),r=_(t);ms(r,{title:`Map`,children:(e,t)=>{var r=hc(),o=_(r);Z(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)=>{Y(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);Ps(s,{get doc(){return a()}});var u=A(s,2);ms(u,{title:`Marker labels`,children:(e,t)=>{var r=hc(),o=_(r);Z(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);Z(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)=>{Y(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}}),ms(A(u,2),{title:`Legend`,children:(e,t)=>{var r=h(),i=_(r),a=e=>{var t=gc(),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)=>{Y(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=gc(),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)=>{Y(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)};W(i,e=>{l(c)?e(a):e(s,-1)}),m(e,r)},$$slots:{default:!0}}),m(e,t)};W(ie,e=>{l(f)?e(G):l(o).legendSelected&&l(c)?e(K,1):l(s).length>0?e(q,2):e(ae,-1)}),I(E),B(()=>n(N,l(g).title)),m(e,E),F()}var yc=g(`<aside class="sidebar svelte-1tpzg2h" aria-label="Sidebar"><div style="margin-bottom: 36px;"><!></div></aside>`);function bc(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(Er(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(),Zr(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`;Qr(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`?ti(t.mapDocument):ci(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():$r(t.mapDocument)}}}}var s=yc();r(`keydown`,C,o);var c=T(s);vc(T(c),{get doc(){return t.mapDocument}}),I(c),I(s),m(e,s),F()}var xc=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 Sc(e,t){U(t,!0);let n=H(t,`open`,15);var r=xc();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()})}),q(`click`,r,()=>n(!n())),m(e,r),F()}v([`click`]);var Cc=g(`<div class="statusbar svelte-1kodbcq"><span class="hint svelte-1kodbcq"> </span> <span> <!></span> <span class="position svelte-1kodbcq"> </span></div>`);function wc(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. ${wi}-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. ${wi}-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=Cc(),_=T(g),v=t(_,!0),y=A(_,2);let b;var x=T(y),S=A(x);Y(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 Tc=g(`<div class="rail svelte-1vrorzj" role="toolbar" aria-label="Tools" aria-orientation="vertical"><!> <hr class="svelte-1vrorzj"/> <!></div>`);function Ec(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(Er(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=Tc();r(`keydown`,C,o);var c=T(s);G(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 Dc=g(`<p class="copy-error svelte-1j8cygg" role="alert"> </p>`),Oc=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 kc(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=Oc(),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);Y(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);Y(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 ie=A(H,2);a(ie,()=>r.embedOptions??M),I(ee);var G=A(ee,2),K=t(G,!0),q=A(G,2),ae=e=>{var r=Dc(),i=t(r,!0);B(()=>n(i,l(h))),m(e,r)};return W(q,e=>{l(h)&&e(ae)}),B(()=>{k(C,`for`,`${i}-link`),k(te,`for`,`${i}-embed`),n(K,l(f))}),m(e,b),F(y)}var Ac=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 jc(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=Ac(),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);Y(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 Mc=g(`<p class="notice svelte-w7i6fd"> </p>`),Nc=g(`<p class="notice svelte-w7i6fd"><!></p>`),Pc=g(`<!> Its visible area, its rotation and tilt, and its controls are set on the map.`,1),Fc=g(`<span></span>`),Ic=g(`<li class="svelte-w7i6fd"><span></span> </li>`),Lc=g(`<div class="bar svelte-w7i6fd" role="img"></div> <ul class="parts svelte-w7i6fd" aria-hidden="true"></ul>`,1),Rc=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 zc(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(),ae(1)}let y=V(`auto`),b=V(0),x=V(0),S=R(()=>l(y)===`auto`?l(b):Math.min(l(y),l(x)));function C(e){return e===0?`Exact`:e<=l(b)?`High`:e<=l(b)+1?`Medium`:`Low`}let w=e=>pt(Oe(e));function D(){let e=a().mapDocument,t=e.frame??e.getBounds();(!t||Ue(t)===0)&&(t=e.view.viewBounds()),L(b,Re(Ue(t)),!0),L(x,Math.max(l(b),Re(Ee(t))),!0)}let O=V(void 0);function M(){let e=a().mapDocument,t=e.elements.map(e=>e.getState()),n=e.frame;if(!n){L(O,t.length===0?{kind:`empty`}:void 0,!0);return}let r=t.filter(e=>{let[t,r,i,a]=Le([e]);return t<n[0]||r<n[1]||i>n[2]||a>n[3]}).length;L(O,r>0?{kind:`outside`,count:r}:void 0,!0)}function ee(){oe(),a().mapDocument.visibleArea.open({onDone:()=>v()})}function te(){a().mapDocument.frame=void 0,a().log(),ae(0)}let ne=R(()=>{let e=l(f).split(`#`)[1];if(!e)return;let t;try{({kinds:t}=Mn(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=[{id:`rest`,label:`Meta`,bits:i-n-r},{id:`texts`,label:`Texts`,bits:n},{id:`geometry`,label:`Geometry`,bits:r}],o=a.map(({bits:e})=>100*e/i),s=o.map(Math.floor),c=o.map((e,t)=>({i:t,rest:e-s[t]})).sort((e,t)=>t.rest-e.rest),u=100-s.reduce((e,t)=>e+t,0);for(let e=0;e<u;e++)s[c[e].i]++;return a.map((e,t)=>({...e,percent:s[t]}))}),re=R(()=>{switch(l(ne)?.reduce((e,t)=>t.bits>e.bits?t:e)?.id){case`texts`: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 ie(e){let t=a().mapDocument;t.viewer={...t.viewer,scrollZoom:e?`protected`:`free`},a().log(),ae(0)}function K(){return`${d}#${a().getHash({resolution:Oe(l(S))})}`}function q(){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="${K()}" style="width:100%; height:60vh; border:0"${r}></iframe>`}function ae(e=500){o?.isOpen()&&(D(),M(),L(f,K(),!0),L(g,q(),!0),l(s)?.show(l(f),e))}function oe(){o?.close()}var se={open:v,close:oe};return P(Dt(e,{size:`fullscreen`,title:`Share or embed the map`,onclose:()=>l(s)?.stop(),children:(e,r)=>{var o=Rc(),u=T(o);P(jc(u,{onreload:()=>ae(0)}),e=>L(s,e,!0),()=>l(s));var d=A(u,2),v=T(d);P(kc(v,{get link(){return l(f)},get embed(){return l(g)},linkNotice:e=>{var r=h(),i=_(r),a=e=>{var r=Mc(),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(re)??``} The embed code works at any length.`)),m(e,r)};W(i,e=>{l(f).length>2e3&&e(a)}),m(e,r)},embedOptions:e=>{{let t=R(()=>a().mapDocument.controls.scrollZoom!==`free`);X(e,{get checked(){return l(t)},onchange:e=>ie(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 D=A(v,2),M=T(D),F=A(M,2),V=e=>{var t=Nc(),r=T(t),i=e=>{var t=p();B(()=>n(t,`${l(O).count??``}
23
- ${l(O).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)};W(r,e=>{l(O).kind===`outside`?e(i):e(a,-1)}),I(t),m(e,t)};W(F,e=>{l(O)&&e(V)});var H=A(F,2),U=T(H);Y(U,{onclick:ee,children:(e,t)=>{z();var n=p(`Edit shared map…`);m(e,n)},$$slots:{default:!0}});var K=A(U,2),q=e=>{Y(e,{variant:`ghost`,onclick:te,children:(e,t)=>{z();var n=p(`Fit to elements`);m(e,n)},$$slots:{default:!0}})};W(K,e=>{l(O)?.kind===`outside`&&e(q)}),I(H);var oe=A(H,2);mn(oe,{children:(e,t)=>{var r=Pc(),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)};W(i,e=>{l(O)||e(o)}),z(),m(e,r)},$$slots:{default:!0}}),I(D);var se=A(D,2),ce=T(se),J=A(ce,2);Z(J,{get id(){return`${i}-precision`},label:`Accuracy`,children:(e,t)=>{var n=()=>l(x)-l(S),r=e=>{L(y,l(x)-e),ae(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=>C(l(x)-e),describe:e=>`${C(l(x)-e)}, ${w(l(x)-e)}`})},$$slots:{default:!0}});var le=A(J,2);{let e=R(()=>l(y)===`auto`);X(le,{get checked(){return l(e)},onchange:e=>{L(y,e.currentTarget.checked?`auto`:l(b),!0),ae(0)},children:(e,t)=>{z();var n=p(`Automatic, fine enough for the visible area`);m(e,n)},$$slots:{default:!0}})}var ue=A(le,2),de=t(ue),fe=A(ue,2),pe=e=>{var t=Lc(),r=_(t);G(r,21,()=>l(ne),({id:e,bits:t})=>e,(e,t)=>{let n=()=>l(t).id,r=()=>l(t).bits;var i=Fc();let a;B(()=>{j(i,1,E(n()),`svelte-w7i6fd`),a=N(i,``,a,{"flex-grow":r()})}),m(e,i)}),I(r);var i=A(r,2);G(i,21,()=>l(ne),({id:e,label:t,percent:n})=>e,(e,t)=>{let r=()=>l(t).id,i=()=>l(t).label,a=()=>l(t).percent;var o=Ic(),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(ne).map(({label:e,percent:t})=>`${e} ${t} %`).join(`, `)]),m(e,t)};W(fe,e=>{l(ne)&&e(pe)});var me=A(fe,2);mn(me,{children:(e,t)=>{z();var n=p(`A lower accuracy makes a shorter link.`);m(e,n)},$$slots:{default:!0}}),I(se),I(d),I(o),B(e=>{k(D,`aria-labelledby`,`${i}-area`),k(M,`id`,`${i}-area`),k(se,`aria-labelledby`,`${i}-size`),k(ce,`id`,`${i}-size`),n(de,`Round to ${e??``} · Link: ${l(f).length??``} characters`)},[()=>w(l(S))]),m(e,o)},$$slots:{default:!0}}),e=>o=e,()=>o),F(se)}function Bc(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 Vc=`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`,Hc=g(`<!>Editor`,1),Uc=g(`<!>Preview`,1),Wc=g(`<!>Share`,1),Gc=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 Kc(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?[Bc(e)]:[]);return()=>e.forEach(e=>e())});var c=Gc(),u=T(c);Jo(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`);Y(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=Hc(),n=_(t);gt(n,{name:`edit`,size:16}),z(),m(e,t)},o=e=>{var t=Uc(),n=_(t);gt(n,{name:`preview`,size:16}),z(),m(e,t)};W(i,e=>{n()?e(a):e(o,-1)}),m(e,r)},$$slots:{default:!0}})}var b=A(y,2);Y(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=Wc(),r=_(n);gt(r,{name:`share`,size:16}),z(),m(e,n)},$$slots:{default:!0}});var x=A(b,2);P(zc(x,{get state(){return t.doc.state}}),e=>L(i,e,!0),()=>l(i)),I(c),B(()=>{k(f,`title`,pn),k(p,`src`,Vc)}),m(e,c),F()}var qc=g(`<div class="drawbar svelte-1x1709y" role="group" aria-label="Drawing"><span class="hint svelte-1x1709y" role="status"> </span> <!> <!> <!></div>`);function Jc(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)?`${Mr(l(o).tool)}: ${l(c)} ${l(c)===1?`node`:`nodes`}`:Mr(l(o).tool));var d=h(),f=_(d),g=e=>{var r=qc();let d;var f=T(r),h=t(f,!0),g=A(f,2),_=e=>{{let t=R(()=>l(c)===0);Y(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}})}};W(g,e=>{l(s)&&e(_)});var v=A(g,2);Y(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);Y(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}})}};W(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)};W(f,e=>{l(o).active&&e(g)}),m(e,d),F()}function Yc(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})}};W(s,e=>{l(n)&&l(r)&&e(c)}),m(e,o),F()}var Xc=g(`<div role="toolbar" aria-label="Selection"><!> <!> <!> <!> <!> <span class="separator svelte-7carbk"></span> <!></div>`);function Zc(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=Xc();let h,g;var _=T(p);fn(_,{icon:`duplicate`,label:`Duplicate`,title:`Duplicate (Cmd/Ctrl+D, or Alt/Option-drag)`,onclick:()=>Zr(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:()=>Qr(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:()=>Qr(t.doc,`back`)});var b=A(y,2);{let e=R(()=>!ei(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:()=>ti(t.doc)})}var x=A(b,2);{let e=R(()=>!ni(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:()=>ci(t.doc)})}var S=A(x,4);fn(S,{icon:`trash`,label:`Delete`,title:`Delete (Delete/Backspace)`,danger:!0,onclick:()=>$r(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 Qc=`versatiles-map-editor:session:`,$c=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(Qc+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(Qc)?[e.slice(30)]:[]);return new Set(n.filter(e=>!this.#e.has(e)))}},el=`versatiles-map-editor`,tl=1,nl=`sessions`,rl=`steps`,il=`versatiles-map-editor:sessions`;function al(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function ol(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error??Error(`Transaction aborted`))})}var sl=(e,t,n)=>IDBKeyRange.bound([e,t],[e,n]),cl=class e{#e;#t=Promise.resolve();#n=new Map;#r=[];#i=[];#a=typeof BroadcastChannel>`u`?void 0:new BroadcastChannel(il);constructor(e){this.#e=e,this.#a&&(this.#a.onmessage=({data:e})=>this.#o(String(e),!1))}static async open(t=el){let n;try{let e=indexedDB.open(t,tl);e.onupgradeneeded=()=>{let t=e.result;t.createObjectStore(nl,{keyPath:`id`}),t.createObjectStore(rl,{keyPath:[`session`,`step`]})},n=await al(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 al(this.#e.transaction(nl,`readonly`).objectStore(nl).getAll())).sort((e,t)=>t.changed-e.changed)}async loadCurrent(e){await this.flush();let t=this.#e.transaction([nl,rl],`readonly`),n=await al(t.objectStore(nl).get(e));if(!n||n.position<n.first)return;let r=await al(t.objectStore(rl).get([e,n.position]));return r?{session:n,state:r.state}:void 0}async load(e){await this.flush();let t=this.#e.transaction([nl,rl],`readonly`),n=await al(t.objectStore(nl).get(e));if(!n)return;let r=n.first+n.sizes.length-1;return{session:n,states:(await al(t.objectStore(rl).getAll(sl(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,[nl,rl],t=>{t.objectStore(nl).put(i),t.objectStore(rl).put({session:r,step:0,state:e})}),r}push(e,t){this.#s(e,(n,r)=>{let i=r.objectStore(rl),a=n.first+n.sizes.length-1;n.position<a&&i.delete(sl(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,[nl],async t=>{let n=this.#n.get(e);this.#n.delete(e);let r=t.objectStore(nl),i=await al(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,[nl,rl],e=>{e.objectStore(nl).put({...r,id:n,changed:Date.now()}),t.states.forEach((t,i)=>{e.objectStore(rl).put({session:n,step:r.first+i,state:t})})}),n}delete(e){this.#c(e,[nl,rl],t=>{t.objectStore(nl).delete(e),t.objectStore(rl).delete(sl(e,-1/0,1/0))})}#s(e,t){this.#c(e,[nl,rl],async n=>{let r=n.objectStore(nl),i=await al(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=ol(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))}})}},ll=10,ul=`versatiles-map-editor:session`,dl=500;function fl(e){return Ie(e)}async function pl(){await Vt();let e=nn.current.startBackground;return e?{elements:[],meta:{background:e}}:{elements:[]}}var ml=class e{#e;#t;#n=new $c;#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 cl.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=_l(),a=i?await n.load(i):void 0;if(i&&a&&hl(a)){if(await this.#n.acquire(i,dl))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&&hl(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=We(e)}catch(e){console.error(`Invalid map state in URL hash`,e),e instanceof Ve?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=fl(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})=>gl(e)!==void 0),t=e&&gl(e.state);return e&&t?t:void 0}async recent(e=ll){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&&gl(n.state);a=r?Nr(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:fl(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=We(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 pl(),{keepView:!0}),this.#a=fl(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=fl(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(ul,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(ll))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,ll)){let t=await this.#e.loadCurrent(n.id);if(t&&await e(t))return t}}};function hl(e){return gl(e.states[e.position])}function gl(e){if(e!==void 0)try{return We(e)}catch{return}}function _l(){try{return sessionStorage.getItem(ul)??void 0}catch{return}}var vl=g(`<!> <!>`,1),yl=g(`<label class="svelte-spn8k0">File name <!></label> <!>`,1);function bl(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=yl(),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=vl(),r=_(n);Y(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);Y(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)};W(a,e=>{l(n)==`download`&&e(o)}),m(e,r)},$$slots:{default:!0}}),e=>r=e,()=>r),F(v)}var xl=6e4;function Sl(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),xl)}function Cl(e,t,n=`application/json`){Sl(new Blob([JSON.stringify(e)],{type:n}),t)}var wl=class extends Error{};function Tl(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 El(e){let t=await Tl(e);if(t)try{return{name:t.name,text:await t.text()}}catch(e){throw new wl(`Failed to read the file`,{cause:e})}}var Dl=/\.mapjson$/i;function Ol(e){return e.replace(/[\\/:*?"<>|\u0000-\u001f]+/g,` `).replace(/\s+/g,` `).trim().replace(/^\.+/,``).slice(0,100).trim()||`map`}var kl=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??`${Ol(this.#e.title)}.mapjson`}get#a(){return this.#i?this.#i.replace(Dl,``):Ol(this.#e.title)}async newFile(){await this.#t.newMap()}async openFile(){try{let e=await El(`.mapjson`);if(!e)return;let t=JSON.parse(e.text),n=In(t),r=n.meta?.title||e.name.replace(Dl,``);await this.#t.openMap({...n,meta:{...n.meta,title:r}}),this.#i=e.name,jl(Vn(t)),Al(Wn(t))}catch(e){console.error(e),e instanceof wl?Ct(`Failed to read the file. Please try again.`):e instanceof Pn?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(We(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,Cl(Fn(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(gr(e)),`KML`)}exportGeoJSON(){Cl(this.#e.getGeoJSON(),`${this.#a}.geojson`,`application/geo+json`)}exportKML(){let e=sr(this.#e.getState());Sl(new Blob([e],{type:`application/vnd.google-earth.kml+xml`}),`${this.#a}.kml`)}async#o(e,t,n){try{let n=await El(e);if(!n)return;t(n.text),this.#e.state.log()}catch(e){console.error(e),e instanceof wl?Ct(`Failed to read the file. Please try again.`):Ct(`Failed to import ${n}. Please check the file format.`)}}};function Al(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 jl(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 Ml=g(`<!> <!> <!> <div class="drawer-slot svelte-1fl557q"><!></div> <div id="sidebar" class="svelte-1fl557q"><!></div> <!> <!>`,1),Nl=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 Pl(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,ml.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 kl(l(s),l(i),{askDownloadFilename:async e=>await l(x)?.askDownloadFilename(e)??null}):void 0);function w(e){return Et(),new Gi(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=Nl(),r=_(n);N(r,``,{},{height:`44px`});var a=T(r),o=e=>{Kc(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));W(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=>{Ec(e,{get doc(){return l(s)},get drawerOpen(){return l(p)},set drawerOpen(e){L(p,e,!0)}})},w=R(()=>l(s)?.isInteractive());W(b,e=>{l(w)&&e(S)}),I(y);var E=A(y,2);N(E,``,{},{height:`26px`});var D=T(E),O=e=>{wc(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));W(D,e=>{l(j)&&e(O)}),I(E);var M=A(E,2),ee=e=>{var t=Ml(),n=_(t);Yc(n,{get mapDocument(){return l(s)}});var r=A(n,2);Jc(r,{get doc(){return l(s)},get left(){return l(v)},get right(){return l(f)}});var i=A(r,2);Zc(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`}),ta(T(a),{get doc(){return l(s)},onclose:()=>L(p,!1)}),I(a);var o=A(a,2);N(o,``,{},{top:`44px`,bottom:`26px`}),bc(T(o),{get mapDocument(){return l(s)}}),I(o);var h=A(o,2),y=e=>{Sc(e,{top:`calc(50% + 9px)`,get right(){return l(f)},get open(){return l(c)},set open(e){L(c,e,!0)}})};W(h,e=>{l(u)||e(y)}),Xo(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());W(M,e=>{l(te)&&e(ee)});var F=A(M,2);P(bl(F,{}),e=>L(x,e,!0),()=>l(x)),z(2),m(e,n)},$$slots:{default:!0}})};W(j,e=>{l(n)===`viewer`?e(M):l(n)===`editor`&&e(ee,1)}),m(e,O),F()}var Fl=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),Il=g(`<div class="wrapper"><!></div>`);function Ll(e){var t=Il();K(`1uha8ag`,e=>{var t=Fl(),n=_(t);z(2),B(()=>k(n,`content`,pn)),f(()=>{w.title=`VersaTiles Map Editor`}),m(e,t)}),Pl(T(t),{onMapLoad:e=>{Object.assign(window,{map:e,mapReady:!0})}}),I(t),m(e,t)}export{Ll as component};