@annotorious/annotorious 3.8.3 → 3.8.5
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.
- package/dist/annotorious.es.js +2676 -2662
- package/dist/annotorious.es.js.map +1 -1
- package/dist/annotorious.js +1 -1
- package/dist/annotorious.js.map +1 -1
- package/package.json +3 -3
- package/src/model/w3c/W3CImageFormatAdapter.ts +25 -2
- package/src/model/w3c/svg/SVG.ts +7 -1
- package/src/model/w3c/svg/pathParser.ts +26 -6
package/dist/annotorious.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(D,q){typeof exports=="object"&&typeof module<"u"?q(exports):typeof define=="function"&&define.amd?define(["exports"],q):(D=typeof globalThis<"u"?globalThis:D||self,q(D.Annotorious={}))})(this,function(D){"use strict";var tl=Object.defineProperty;var nl=(D,q,Ce)=>q in D?tl(D,q,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):D[q]=Ce;var gn=(D,q,Ce)=>nl(D,typeof q!="symbol"?q+"":q,Ce);function q(){}function Ce(e,t){for(const n in t)e[n]=t[n];return e}function hn(e){return e()}function mn(){return Object.create(null)}function Se(e){e.forEach(hn)}function se(e){return typeof e=="function"}function re(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}function ii(e){return Object.keys(e).length===0}function pn(e,...t){if(e==null){for(const o of t)o(void 0);return q}const n=e.subscribe(...t);return n.unsubscribe?()=>n.unsubscribe():n}function Ot(e,t,n){e.$$.on_destroy.push(pn(t,n))}function si(e,t,n,o){if(e){const i=_n(e,t,n,o);return e[0](i)}}function _n(e,t,n,o){return e[1]&&o?Ce(n.ctx.slice(),e[1](o(t))):n.ctx}function ri(e,t,n,o){if(e[2]&&o){const i=e[2](o(n));if(t.dirty===void 0)return i;if(typeof i=="object"){const s=[],l=Math.max(t.dirty.length,i.length);for(let r=0;r<l;r+=1)s[r]=t.dirty[r]|i[r];return s}return t.dirty|i}return t.dirty}function li(e,t,n,o,i,s){if(i){const l=_n(t,n,o,s);e.p(l,i)}}function ai(e){if(e.ctx.length>32){const t=[],n=e.ctx.length/32;for(let o=0;o<n;o++)t[o]=-1;return t}return-1}function yn(e){const t={};for(const n in e)n[0]!=="$"&&(t[n]=e[n]);return t}function Ke(e){return e??""}function j(e,t){e.appendChild(t)}function B(e,t,n){e.insertBefore(t,n||null)}function Y(e){e.parentNode&&e.parentNode.removeChild(e)}function Ge(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}function P(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function wn(e){return document.createTextNode(e)}function be(){return wn(" ")}function Me(){return wn("")}function ee(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function c(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function ci(e){return Array.from(e.childNodes)}function Pe(e,t,n){e.classList.toggle(t,!!n)}function fi(e,t,{bubbles:n=!1,cancelable:o=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:o})}let et;function tt(e){et=e}function bn(){if(!et)throw new Error("Function called outside component initialization");return et}function Oe(e){bn().$$.on_mount.push(e)}function De(){const e=bn();return(t,n,{cancelable:o=!1}={})=>{const i=e.$$.callbacks[t];if(i){const s=fi(t,n,{cancelable:o});return i.slice().forEach(l=>{l.call(e,s)}),!s.defaultPrevented}return!0}}function ge(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(o=>o.call(this,t))}const We=[],mt=[];let Ze=[];const En=[],vn=Promise.resolve();let Dt=!1;function An(){Dt||(Dt=!0,vn.then(Mn))}function Sn(){return An(),vn}function Nt(e){Ze.push(e)}const Rt=new Set;let Je=0;function Mn(){if(Je!==0)return;const e=et;do{try{for(;Je<We.length;){const t=We[Je];Je++,tt(t),ui(t.$$)}}catch(t){throw We.length=0,Je=0,t}for(tt(null),We.length=0,Je=0;mt.length;)mt.pop()();for(let t=0;t<Ze.length;t+=1){const n=Ze[t];Rt.has(n)||(Rt.add(n),n())}Ze.length=0}while(We.length);for(;En.length;)En.pop()();Dt=!1,Rt.clear(),tt(e)}function ui(e){if(e.fragment!==null){e.update(),Se(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(Nt)}}function di(e){const t=[],n=[];Ze.forEach(o=>e.indexOf(o)===-1?t.push(o):n.push(o)),n.forEach(o=>o()),Ze=t}const pt=new Set;let je;function Ee(){je={r:0,c:[],p:je}}function ve(){je.r||Se(je.c),je=je.p}function V(e,t){e&&e.i&&(pt.delete(e),e.i(t))}function G(e,t,n,o){if(e&&e.o){if(pt.has(e))return;pt.add(e),je.c.push(()=>{pt.delete(e),o&&(n&&e.d(1),o())}),e.o(t)}else o&&o()}function Ae(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function fe(e){e&&e.c()}function le(e,t,n){const{fragment:o,after_update:i}=e.$$;o&&o.m(t,n),Nt(()=>{const s=e.$$.on_mount.map(hn).filter(se);e.$$.on_destroy?e.$$.on_destroy.push(...s):Se(s),e.$$.on_mount=[]}),i.forEach(Nt)}function ae(e,t){const n=e.$$;n.fragment!==null&&(di(n.after_update),Se(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function gi(e,t){e.$$.dirty[0]===-1&&(We.push(e),An(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function he(e,t,n,o,i,s,l=null,r=[-1]){const a=et;tt(e);const f=e.$$={fragment:null,ctx:[],props:s,update:q,not_equal:i,bound:mn(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(a?a.$$.context:[])),callbacks:mn(),dirty:r,skip_bound:!1,root:t.target||a.$$.root};l&&l(f.root);let d=!1;if(f.ctx=n?n(e,t.props||{},(u,g,...h)=>{const p=h.length?h[0]:g;return f.ctx&&i(f.ctx[u],f.ctx[u]=p)&&(!f.skip_bound&&f.bound[u]&&f.bound[u](p),d&&gi(e,u)),g}):[],f.update(),d=!0,Se(f.before_update),f.fragment=o?o(f.ctx):!1,t.target){if(t.hydrate){const u=ci(t.target);f.fragment&&f.fragment.l(u),u.forEach(Y)}else f.fragment&&f.fragment.c();t.intro&&V(e.$$.fragment),le(e,t.target,t.anchor),Mn()}tt(a)}class me{constructor(){gn(this,"$$");gn(this,"$$set")}$destroy(){ae(this,1),this.$destroy=q}$on(t,n){if(!se(n))return q;const o=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return o.push(n),()=>{const i=o.indexOf(n);i!==-1&&o.splice(i,1)}}$set(t){this.$$set&&!ii(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const hi="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(hi);var Q=(e=>(e.ELLIPSE="ELLIPSE",e.MULTIPOLYGON="MULTIPOLYGON",e.POLYGON="POLYGON",e.POLYLINE="POLYLINE",e.RECTANGLE="RECTANGLE",e.LINE="LINE",e))(Q||{});function mi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kn={exports:{}};(function(e){(function(){function t(r,a){var f=r.x-a.x,d=r.y-a.y;return f*f+d*d}function n(r,a,f){var d=a.x,u=a.y,g=f.x-d,h=f.y-u;if(g!==0||h!==0){var p=((r.x-d)*g+(r.y-u)*h)/(g*g+h*h);p>1?(d=f.x,u=f.y):p>0&&(d+=g*p,u+=h*p)}return g=r.x-d,h=r.y-u,g*g+h*h}function o(r,a){for(var f=r[0],d=[f],u,g=1,h=r.length;g<h;g++)u=r[g],t(u,f)>a&&(d.push(u),f=u);return f!==u&&d.push(u),d}function i(r,a,f,d,u){for(var g=d,h,p=a+1;p<f;p++){var y=n(r[p],r[a],r[f]);y>g&&(h=p,g=y)}g>d&&(h-a>1&&i(r,a,h,d,u),u.push(r[h]),f-h>1&&i(r,h,f,d,u))}function s(r,a){var f=r.length-1,d=[r[0]];return i(r,0,f,a,d),d.push(r[f]),d}function l(r,a,f){if(r.length<=2)return r;var d=a!==void 0?a*a:1;return r=f?r:o(r,d),r=s(r,d),r}e.exports=l,e.exports.default=l})()})(kn);var pi=kn.exports;const _i=mi(pi),Yt={},Fe=(e,t)=>Yt[e]=t,_t=e=>Yt[e.type].area(e),Tn=(e,t,n,o)=>Yt[e.type].intersects(e,t,n,o),ue=e=>{let t=1/0,n=1/0,o=-1/0,i=-1/0;return e.forEach(([s,l])=>{t=Math.min(t,s),n=Math.min(n,l),o=Math.max(o,s),i=Math.max(i,l)}),{minX:t,minY:n,maxX:o,maxY:i}},nt=e=>{let t=0,n=e.length-1;for(let o=0;o<e.length;o++)t+=(e[n][0]+e[o][0])*(e[n][1]-e[o][1]),n=o;return Math.abs(.5*t)},ot=(e,t,n)=>{let o=!1;for(let i=0,s=e.length-1;i<e.length;s=i++){const l=e[i][0],r=e[i][1],a=e[s][0],f=e[s][1];r>n!=f>n&&t<(a-l)*(n-r)/(f-r)+l&&(o=!o)}return o},Pn=(e,t=!0)=>{let n="M ";return e.forEach(([o,i],s)=>{s===0?n+=`${o},${i}`:n+=` L ${o},${i}`}),t&&(n+=" Z"),n},Bt=(e,t=1)=>{const n=e.map(([o,i])=>({x:o,y:i}));return _i(n,t,!0).map(o=>[o.x,o.y])},it=(e,t)=>{const n=Math.abs(t[0]-e[0]),o=Math.abs(t[1]-e[1]);return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},yi={area:e=>Math.PI*e.geometry.rx*e.geometry.ry,intersects:(e,t,n)=>{const{cx:o,cy:i,rx:s,ry:l}=e.geometry,r=0,a=Math.cos(r),f=Math.sin(r),d=t-o,u=n-i,g=a*d+f*u,h=f*d-a*u;return g*g/(s*s)+h*h/(l*l)<=1}};Fe(Q.ELLIPSE,yi);const wi={area:e=>0,intersects:(e,t,n,o=2)=>{const[[i,s],[l,r]]=e.geometry.points,a=Math.abs((r-s)*t-(l-i)*n+l*s-r*i),f=it([i,s],[l,r]);return a/f<=o}};Fe(Q.LINE,wi);const bi={area:e=>{const{polygons:t}=e.geometry;return t.reduce((n,o)=>{const[i,...s]=o.rings,l=nt(i.points),r=s.reduce((a,f)=>a+nt(f.points),0);return n+l-r},0)},intersects:(e,t,n)=>{const{polygons:o}=e.geometry;for(const i of o){const[s,...l]=i.rings;if(ot(s.points,t,n)){let r=!1;for(const a of l)if(ot(a.points,t,n)){r=!0;break}if(!r)return!0}}return!1}},st=e=>{const t=e.reduce((n,o)=>[...n,...o.rings[0].points],[]);return ue(t)},Le=e=>e.rings.map(n=>Pn(n.points)).join(" "),Ln=e=>e.polygons.reduce((t,n)=>[...t,...n.rings.reduce((o,i)=>[...o,...i.points],[])],[]),Ei=(e,t=1)=>{const n=e.geometry.polygons.map(i=>{const s=i.rings.map(r=>{const a=Bt(r.points,t);return{...r,points:a}}),l=ue(s[0].points);return{...i,rings:s,bounds:l}}),o=st(n);return{...e,geometry:{...e.geometry,polygons:n,bounds:o}}};Fe(Q.MULTIPOLYGON,bi);const vi={area:e=>{const t=e.geometry.points;return nt(t)},intersects:(e,t,n)=>{const o=e.geometry.points;return ot(o,t,n)}},Ai=(e,t=1)=>{const n=Bt(e.geometry.points,t),o=ue(n);return{...e,geometry:{...e.geometry,bounds:o,points:n}}};Fe(Q.POLYGON,vi);const Si={area:e=>{const t=e.geometry;if(!t.closed||t.points.length<3)return 0;const n=yt(t.points,t.closed);return nt(n)},intersects:(e,t,n,o=2)=>{const i=e.geometry;if(i.closed){const s=yt(i.points,i.closed);return ot(s,t,n)}else return Mi(i,[t,n],o)}},yt=(e,t=!1)=>{const n=[];for(let o=0;o<e.length;o++){const i=e[o],s=e[(o+1)%e.length];if(n.push(i.point),(o<e.length-1||t)&&(i.type==="CURVE"||s.type=="CURVE")){const r=In(i.point,i.type==="CURVE"&&i.outHandle||i.point,s.type==="CURVE"&&s.inHandle||s.point,s.point,10);n.push(...r.slice(1))}}return n},In=(e,t,n,o,i=10)=>{const s=[];for(let l=0;l<=i;l++){const r=l/i,a=Math.pow(1-r,3)*e[0]+3*Math.pow(1-r,2)*r*t[0]+3*(1-r)*Math.pow(r,2)*n[0]+Math.pow(r,3)*o[0],f=Math.pow(1-r,3)*e[1]+3*Math.pow(1-r,2)*r*t[1]+3*(1-r)*Math.pow(r,2)*n[1]+Math.pow(r,3)*o[1];s.push([a,f])}return s},Mi=(e,t,n)=>{for(let o=0;o<e.points.length-1;o++){const i=e.points[o],s=e.points[o+1];if(i.type==="CURVE"||s.type==="CURVE"){const r=In(i.point,i.type==="CURVE"&&i.outHandle||i.point,s.type==="CURVE"&&s.inHandle||s.point,s.point,20);for(let a=0;a<r.length-1;a++)if(Cn(t,r[a],r[a+1])<=n)return!0}else if(Cn(t,i.point,s.point)<=n)return!0}return!1},Cn=(e,t,n)=>{const[o,i]=e,[s,l]=t,[r,a]=n,f=r-s,d=a-l,u=Math.sqrt(f*f+d*d);if(u===0)return Math.sqrt((o-s)*(o-s)+(i-l)*(i-l));const g=((o-s)*f+(i-l)*d)/(u*u);return g<=0?Math.sqrt((o-s)*(o-s)+(i-l)*(i-l)):g>=1?Math.sqrt((o-r)*(o-r)+(i-a)*(i-a)):Math.abs((a-l)*o-(r-s)*i+r*l-a*s)/u},Vt=e=>{if(!e.points||e.points.length===0)return"";const t=[],n=e.points[0];t.push(`M ${n.point[0]} ${n.point[1]}`);for(let o=1;o<e.points.length;o++){const i=e.points[o],s=e.points[o-1];if(i.type==="CURVE"||s.type==="CURVE"){const l=s.type==="CURVE"&&s.outHandle||s.point,r=i.type==="CURVE"&&i.inHandle||i.point,a=i.point;t.push(`C ${l[0]} ${l[1]} ${r[0]} ${r[1]} ${a[0]} ${a[1]}`)}else t.push(`L ${i.point[0]} ${i.point[1]}`)}if(e.closed){const o=e.points[e.points.length-1],i=e.points[0];if(o.type==="CURVE"||i.type==="CURVE"){const l=o.outHandle||o.point,r=i.inHandle||i.point,a=i.point;t.push(`C ${l[0]} ${l[1]} ${r[0]} ${r[1]} ${a[0]} ${a[1]}`)}t.push("Z")}return t.join(" ")};Fe(Q.POLYLINE,Si);const On={area:e=>e.geometry.w*e.geometry.h,intersects:(e,t,n)=>{const o=e.geometry;if(o.rot){const i=o.x+o.w/2,s=o.y+o.h/2,l=t-i,r=n-s,a=Math.cos(o.rot),f=Math.sin(o.rot),d=l*a+r*f,u=-l*f+r*a;return d>=-o.w/2&&d<=o.w/2&&u>=-o.h/2&&u<=o.h/2}else return t>=o.x&&t<=o.x+o.w&&n>=o.y&&n<=o.y+o.h}};Fe(Q.RECTANGLE,On);const rt=e=>lt(e.target),lt=e=>{var t,n;return(e==null?void 0:e.annotation)!==void 0&&((n=(t=e==null?void 0:e.selector)==null?void 0:t.geometry)==null?void 0:n.bounds)!==void 0},Ne="-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?",Dn=512,Nn=e=>(e==null?void 0:e.type)==="FragmentSelector"?!0:typeof e=="string"?e.length>Dn||e.indexOf("#")<0?!1:new RegExp(`#xywh=((?:pixel|percent):)?(${Ne}),(${Ne}),(${Ne}),(${Ne})$`,"i").test(e):!1,Rn=(e,t=!1)=>{const n=typeof e=="string"?e:e.value;if(n.length>Dn)throw new Error("Fragment too long: "+n);const i=new RegExp(`(xywh)=((?:pixel|percent))?:?(${Ne}),(${Ne}),(${Ne}),(${Ne})$`).exec(n);if(!i)throw new Error("Not a MediaFragment: "+n);const[s,l,r,a,f,d,u]=i;if(l!=="xywh")throw new Error("Unsupported MediaFragment: "+n);if(r&&r!=="pixel")throw new Error(`Unsupported MediaFragment unit: ${r}`);const[g,h,p,y]=[a,f,d,u].map(parseFloat);return{type:Q.RECTANGLE,geometry:{x:g,y:h,w:p,h:y,rot:0,bounds:{minX:g,minY:t?h-y:h,maxX:g+p,maxY:t?h:h+y}}}},Yn=e=>{const{x:t,y:n,w:o,h:i}=e;return{type:"FragmentSelector",conformsTo:"http://www.w3.org/TR/media-frags/",value:`xywh=pixel:${t},${n},${o},${i}`}},Bn="http://www.w3.org/2000/svg",Vn=e=>{const t=o=>{Array.from(o.attributes).forEach(i=>{i.name.startsWith("on")&&o.removeAttribute(i.name)})},n=e.getElementsByTagName("script");return Array.from(n).reverse().forEach(o=>o.parentNode.removeChild(o)),Array.from(e.querySelectorAll("*")).forEach(t),e},ki=e=>{const o=new XMLSerializer().serializeToString(e.documentElement).replace("<svg>",`<svg xmlns="${Bn}">`);return new DOMParser().parseFromString(o,"image/svg+xml").documentElement},at=e=>{const n=new DOMParser().parseFromString(e,"image/svg+xml"),o=n.lookupPrefix(Bn),i=n.lookupNamespaceURI(null);return o||i?Vn(n).firstChild:Vn(ki(n)).firstChild},Ti=e=>{const t=Un(e),n=[];let o=[],i=[0,0];for(const s of t)switch(s.type.toUpperCase()){case"M":o.length>0&&(n.push({points:o}),o=[]),i=[s.args[0],s.args[1]],o.push([...i]);break;case"L":i=[s.args[0],s.args[1]],o.push([...i]);break;case"H":i=[s.args[0],i[1]],o.push([...i]);break;case"V":i=[i[0],s.args[0]],o.push([...i]);break;case"C":i=[s.args[4],s.args[5]],o.push([...i]);break;case"Z":break;default:console.warn(`Unsupported SVG path command: ${s.type}`);break}if(o.length>2&&n.push({points:o}),n.length>0){const s=ue(n[0].points);return{rings:n,bounds:s}}},Pi=e=>{const{point:t,inHandle:n,outHandle:o}=e;if(!n||!o)return!1;const i=n[0]-t[0],s=n[1]-t[1],l=o[0]-t[0],r=o[1]-t[1],a=i*r-s*l;return Math.abs(a)<.01},Li=e=>{const t=Un(e);let n=[],o=[0,0],i=!1;for(let l=0;l<t.length;l++){const r=t[l];switch(r.type.toUpperCase()){case"M":o=[r.args[0],r.args[1]],n.push({type:"CORNER",point:[...o]});break;case"L":o=[r.args[0],r.args[1]],n.push({type:"CORNER",point:[...o]});break;case"C":const a=[r.args[0],r.args[1]],f=[r.args[2],r.args[3]],d=[r.args[4],r.args[5]];if(n.length>0){const g=n[n.length-1];(a[0]!==g.point[0]||a[1]!==g.point[1])&&(g.type="CURVE",g.outHandle=a)}const u={type:f[0]!==d[0]||f[1]!==d[1]?"CURVE":"CORNER",point:d};u.type==="CURVE"&&(u.inHandle=f),n.push(u),o=d;break;case"Z":i=!0;break;default:console.warn(`Unsupported SVG path command: ${r.type}`);break}}n=n.map(l=>Pi(l)?{...l,locked:!0}:l);const s=ue(yt(n,i));return{points:n,closed:i,bounds:s}},Un=e=>{const t=[],n=e.replace(/,/g," ").trim(),o=/([MmLlHhVvCcZz])\s*([^MmLlHhVvCcZz]*)/g;let i;for(;(i=o.exec(n))!==null;){const[,s,l]=i,r=l.trim()===""?[]:l.trim().split(/\s+/).map(Number).filter(a=>!isNaN(a));t.push({type:s,args:r})}return t},Ii=e=>{const[t,n,o]=e.match(/(<polygon points=["|'])([^("|')]*)/)||[],i=o.split(" ").map(s=>s.split(",").map(parseFloat));return{type:Q.POLYGON,geometry:{points:i,bounds:ue(i)}}},Ci=e=>{const t=at(e),n=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy")),i=parseFloat(t.getAttribute("rx")),s=parseFloat(t.getAttribute("ry")),l={minX:n-i,minY:o-s,maxX:n+i,maxY:o+s};return{type:Q.ELLIPSE,geometry:{cx:n,cy:o,rx:i,ry:s,bounds:l}}},Oi=e=>{const t=at(e),n=parseFloat(t.getAttribute("x1")),o=parseFloat(t.getAttribute("x2")),i=parseFloat(t.getAttribute("y1")),s=parseFloat(t.getAttribute("y2")),l={minX:Math.min(n,o),minY:Math.min(i,s),maxX:Math.max(n,o),maxY:Math.max(i,s)};return{type:Q.LINE,geometry:{points:[[n,i],[o,s]],bounds:l}}},Di=e=>{const t=at(e),n=t.nodeName==="path"?t:Array.from(t.querySelectorAll("path"))[0],o=n==null?void 0:n.getAttribute("d");if(!o)throw new Error("Could not parse SVG path");const i=Li(o);if(!i)throw new Error("Could not parse SVG path");return{type:Q.POLYLINE,geometry:i}},Ni=e=>{const t=at(e),n=t.nodeName==="rect"?t:Array.from(t.querySelectorAll("rect"))[0];if(!n)throw new Error("Could not parse SVG rect");const o=parseFloat(n.getAttribute("x")),i=parseFloat(n.getAttribute("y")),s=parseFloat(n.getAttribute("width")),l=parseFloat(n.getAttribute("height")),r=n.getAttribute("transform");let a=0;if(r&&r.startsWith("rotate(")){const p=r.match(/rotate\(([^)]+)\)/);p&&(a=p[1].split(/\s+/).map(parseFloat)[0]*Math.PI/180)}const f=o+s/2,d=i+l/2,g=[[o,i],[o+s,i],[o+s,i+l],[o,i+l]].map(([p,y])=>{const S=p-f,w=y-d,A=Math.cos(a),_=Math.sin(a);return[f+S*A-w*_,d+S*_+w*A]}),h=ue(g);return{type:Q.RECTANGLE,geometry:{x:o,y:i,w:s,h:l,rot:a,bounds:h}}},Ri=e=>{const t=at(e),i=(t.nodeName==="path"?[t]:Array.from(t.querySelectorAll("path"))).map(a=>a.getAttribute("d")||"").map(a=>Ti(a)).filter(Boolean),s=i.reduce((a,f)=>[...a,...f.rings[0].points],[]),l=ue(s);return i.length===1&&i[0].rings.length===1?{type:Q.POLYGON,geometry:{points:s,bounds:l}}:{type:Q.MULTIPOLYGON,geometry:{polygons:i,bounds:l}}},Xn=e=>{const t=typeof e=="string"?e:e.value;if(t.includes("<polygon points="))return Ii(t);if(t.includes("<path ")&&(t.includes(" C ")||!t.includes("Z")))return Di(t);if(t.includes("<path "))return Ri(t);if(t.includes("<ellipse "))return Ci(t);if(t.includes("<line "))return Oi(t);if(t.includes("<rect "))return Ni(t);throw"Unsupported SVG shape: "+t},Yi=e=>`<g>${e.polygons.map(n=>`<path fill-rule="evenodd" d="${Le(n)}" />`).join("")}</g>`,Hn=e=>{let t;switch(e.type){case Q.RECTANGLE:{const n=e.geometry,{x:o,y:i,w:s,h:l,rot:r}=n;if(!r)t=`<svg><rect x="${o}" y="${i}" width="${s}" height="${l}" /></svg>`;else{const a=o+s/2,f=i+l/2,d=(r??0)*180/Math.PI;t=`<svg><rect x="${o}" y="${i}" width="${s}" height="${l}" transform="rotate(${d} ${a} ${f})" /></svg>`}break}case Q.POLYGON:{const n=e.geometry,{points:o}=n;t=`<svg><polygon points="${o.map(i=>i.join(",")).join(" ")}" /></svg>`;break}case Q.ELLIPSE:{const n=e.geometry;t=`<svg><ellipse cx="${n.cx}" cy="${n.cy}" rx="${n.rx}" ry="${n.ry}" /></svg>`;break}case Q.MULTIPOLYGON:{const n=e.geometry;t=`<svg>${Yi(n)}</svg>`;break}case Q.LINE:{const n=e.geometry,[[o,i],[s,l]]=n.points;t=`<svg><line x1="${o}" y1="${i}" x2="${s}" y2="${l}" /></svg>`;break}case Q.POLYLINE:t=`<svg><path d="${Vt(e.geometry)}" /></svg>`}if(t)return{type:"SvgSelector",value:t};throw`Unsupported shape type: ${e.type}`},pe=[];for(let e=0;e<256;++e)pe.push((e+256).toString(16).slice(1));function Bi(e,t=0){return(pe[e[t+0]]+pe[e[t+1]]+pe[e[t+2]]+pe[e[t+3]]+"-"+pe[e[t+4]]+pe[e[t+5]]+"-"+pe[e[t+6]]+pe[e[t+7]]+"-"+pe[e[t+8]]+pe[e[t+9]]+"-"+pe[e[t+10]]+pe[e[t+11]]+pe[e[t+12]]+pe[e[t+13]]+pe[e[t+14]]+pe[e[t+15]]).toLowerCase()}const Vi=new Uint8Array(16);function Ui(){return crypto.getRandomValues(Vi)}function Gn(e,t,n){return crypto.randomUUID?crypto.randomUUID():Xi(e)}function Xi(e,t,n){var i;e=e||{};const o=e.random??((i=e.rng)==null?void 0:i.call(e))??Ui();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Bi(o)}var jn=Object.prototype.hasOwnProperty;function Re(e,t){var n,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((o=e.length)===t.length)for(;o--&&Re(e[o],t[o]););return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(jn.call(e,n)&&++o&&!jn.call(t,n)||!(n in t)||!Re(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}let Te=[],Ye=0;const wt=4,Hi=globalThis.nanostoresGlobal||(globalThis.nanostoresGlobal={epoch:0}),Ut=e=>{let t=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(o){return n.lc=t.push(o),()=>{for(let s=Ye+wt;s<Te.length;)Te[s]===o?Te.splice(s,wt):s+=wt;let i=t.indexOf(o);~i&&(t.splice(i,1),--n.lc||n.off())}},notify(o,i){Hi.epoch++;let s=!Te.length;for(let l of t)Te.push(l,n.value,o,i);if(s){for(Ye=0;Ye<Te.length;Ye+=wt)Te[Ye](Te[Ye+1],Te[Ye+2],Te[Ye+3]);Te.length=0}},off(){},set(o){let i=n.value;i!==o&&(n.value=o,n.notify(i))},subscribe(o){let i=n.listen(o);return o(n.value),i},value:e};return n},Gi=e=>{const t=Ut(null);return e.observe(({changes:n})=>{const o=t.get();if(o){(n.deleted||[]).some(s=>s.id===o)&&t.set(null);const i=(n.updated||[]).find(({oldValue:s})=>s.id===o);i&&t.set(i.newValue.id)}}),{get current(){return t.get()},subscribe:t.subscribe.bind(t),set:t.set.bind(t)}};var Xt=(e=>(e.EDIT="EDIT",e.SELECT="SELECT",e.NONE="NONE",e))(Xt||{});const Ht={selected:[]},ji=(e,t,n)=>{const o=Ut(Ht);let i=t;const s=()=>{Re(o.get(),Ht)||o.set(Ht)},l=()=>{var h;return((h=o.get().selected)==null?void 0:h.length)===0},r=h=>{if(l())return!1;const p=typeof h=="string"?h:h.id;return o.get().selected.some(y=>y.id===p)},a=(h,p)=>{let y;if(Array.isArray(h)){if(y=h.map(w=>e.getAnnotation(w)).filter(Boolean),y.length<h.length){console.warn("Invalid selection: "+h.filter(w=>!y.some(A=>A.id===w)));return}}else{const w=e.getAnnotation(h);if(!w){console.warn("Invalid selection: "+h);return}y=[w]}const S=y.reduce((w,A)=>{const _=g(A);return _==="EDIT"?[...w,{id:A.id,editable:!0}]:_==="SELECT"?[...w,{id:A.id}]:w},[]);o.set({selected:S,event:p})},f=(h,p)=>{const y=Array.isArray(h)?h:[h],S=y.map(w=>e.getAnnotation(w)).filter(w=>!!w);o.set({selected:S.map(w=>{const A=p===void 0?g(w)==="EDIT":p;return{id:w.id,editable:A}})}),S.length!==y.length&&console.warn("Invalid selection",h)},d=h=>{if(l())return!1;const{selected:p}=o.get();p.some(({id:y})=>h.includes(y))&&o.set({selected:p.filter(({id:y})=>!h.includes(y))})},u=h=>{i=h,f(o.get().selected.map(({id:p})=>p))},g=h=>Fi(h,i,n);return e.observe(({changes:h})=>d((h.deleted||[]).map(p=>p.id))),{get event(){const h=o.get();return h?h.event:null},get selected(){const h=o.get();return h?[...h.selected]:null},get userSelectAction(){return i},clear:s,evalSelectAction:g,isEmpty:l,isSelected:r,setSelected:f,setUserSelectAction:u,subscribe:o.subscribe.bind(o),userSelect:a}},Fi=(e,t,n)=>{const o=n?n.serialize(e):e;return typeof t=="function"?t(o):t||"EDIT"},_e=[];for(let e=0;e<256;++e)_e.push((e+256).toString(16).slice(1));function zi(e,t=0){return(_e[e[t+0]]+_e[e[t+1]]+_e[e[t+2]]+_e[e[t+3]]+"-"+_e[e[t+4]]+_e[e[t+5]]+"-"+_e[e[t+6]]+_e[e[t+7]]+"-"+_e[e[t+8]]+_e[e[t+9]]+"-"+_e[e[t+10]]+_e[e[t+11]]+_e[e[t+12]]+_e[e[t+13]]+_e[e[t+14]]+_e[e[t+15]]).toLowerCase()}const qi=new Uint8Array(16);function Ki(){return crypto.getRandomValues(qi)}function Fn(e,t,n){return crypto.randomUUID?crypto.randomUUID():Wi(e)}function Wi(e,t,n){var o;e=e||{};const i=e.random??((o=e.rng)==null?void 0:o.call(e))??Ki();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=i[6]&15|64,i[8]=i[8]&63|128,zi(i)}const Gt=e=>{const t=n=>{const o={...n};return n.created&&typeof n.created=="string"&&(o.created=new Date(n.created)),n.updated&&typeof n.updated=="string"&&(o.updated=new Date(n.updated)),o};return{...e,bodies:(e.bodies||[]).map(t),target:t(e.target)}},Zi=(e,t,n,o)=>({id:Fn(),annotation:typeof e=="string"?e:e.id,created:n||new Date,creator:o,...t}),Ji=(e,t)=>{const n=new Set(e.bodies.map(o=>o.id));return t.bodies.filter(o=>!n.has(o.id))},Qi=(e,t)=>{const n=new Set(t.bodies.map(o=>o.id));return e.bodies.filter(o=>!n.has(o.id))},$i=(e,t)=>t.bodies.map(n=>{const o=e.bodies.find(i=>i.id===n.id);return{newBody:n,oldBody:o&&!Re(o,n)?o:void 0}}).filter(({oldBody:n})=>n).map(({oldBody:n,newBody:o})=>({oldBody:n,newBody:o})),xi=(e,t)=>!Re(e.target,t.target),zn=(e,t)=>{const n=Ji(e,t),o=Qi(e,t),i=$i(e,t);return{oldValue:e,newValue:t,bodiesCreated:n.length>0?n:void 0,bodiesDeleted:o.length>0?o:void 0,bodiesUpdated:i.length>0?i:void 0,targetUpdated:xi(e,t)?{oldTarget:e.target,newTarget:t.target}:void 0}};var oe=(e=>(e.LOCAL="LOCAL",e.REMOTE="REMOTE",e.SILENT="SILENT",e))(oe||{});const es=(e,t)=>{var n,o;const{changes:i,origin:s}=t;if(!(e.options.origin?e.options.origin===s:s!=="SILENT"))return!1;if(e.options.ignore){const{ignore:l}=e.options,r=a=>a&&a.length>0;if(!(r(i.created)||r(i.deleted))){const a=(n=i.updated)==null?void 0:n.some(d=>r(d.bodiesCreated)||r(d.bodiesDeleted)||r(d.bodiesUpdated)),f=(o=i.updated)==null?void 0:o.some(d=>d.targetUpdated);if(l==="BODY_ONLY"&&a&&!f||l==="TARGET_ONLY"&&f&&!a)return!1}}if(e.options.annotations){const l=new Set([...(i.created||[]).map(r=>r.id),...(i.deleted||[]).map(r=>r.id),...(i.updated||[]).map(({oldValue:r})=>r.id)]);return!!(Array.isArray(e.options.annotations)?e.options.annotations:[e.options.annotations]).find(r=>l.has(r))}else return!0},ts=(e,t)=>{const n=new Set((e.created||[]).map(u=>u.id)),o=new Set((e.updated||[]).map(({newValue:u})=>u.id)),i=new Set((t.created||[]).map(u=>u.id)),s=new Set((t.deleted||[]).map(u=>u.id)),l=new Set((t.updated||[]).map(({oldValue:u})=>u.id)),r=new Set((t.updated||[]).filter(({oldValue:u})=>n.has(u.id)||o.has(u.id)).map(({oldValue:u})=>u.id)),a=[...(e.created||[]).filter(u=>!s.has(u.id)).map(u=>l.has(u.id)?t.updated.find(({oldValue:g})=>g.id===u.id).newValue:u),...t.created||[]],f=[...(e.deleted||[]).filter(u=>!i.has(u.id)),...(t.deleted||[]).filter(u=>!n.has(u.id))],d=[...(e.updated||[]).filter(({newValue:u})=>!s.has(u.id)).map(u=>{const{oldValue:g,newValue:h}=u;if(l.has(h.id)){const p=t.updated.find(y=>y.oldValue.id===h.id).newValue;return zn(g,p)}else return u}),...(t.updated||[]).filter(({oldValue:u})=>!r.has(u.id))];return{created:a,deleted:f,updated:d}},bt=e=>{const t=e.id===void 0?Fn():e.id;return{...e,id:t,bodies:e.bodies===void 0?[]:e.bodies.map(n=>({...n,annotation:t})),target:{...e.target,annotation:t}}},ns=e=>e.id!==void 0,os=()=>{const e=new Map,t=new Map,n=[],o=(v,E={})=>{n.push({onChange:v,options:E})},i=v=>{const E=n.findIndex(m=>m.onChange==v);E>-1&&n.splice(E,1)},s=(v,E)=>{const m={origin:v,changes:{created:E.created||[],updated:E.updated||[],deleted:E.deleted||[]},state:[...e.values()]};n.forEach(b=>{es(b,m)&&b.onChange(m)})},l=(v,E=oe.LOCAL)=>{if(v.id&&e.get(v.id))throw Error(`Cannot add annotation ${v.id} - exists already`);{const m=bt(v);e.set(m.id,m),m.bodies.forEach(b=>t.set(b.id,m.id)),s(E,{created:[m]})}},r=(v,E)=>{const m=bt(typeof v=="string"?E:v),b=typeof v=="string"?v:v.id,I=b&&e.get(b);if(I){const k=zn(I,m);return b===m.id?e.set(b,m):(e.delete(b),e.set(m.id,m)),I.bodies.forEach(O=>t.delete(O.id)),m.bodies.forEach(O=>t.set(O.id,m.id)),k}else console.warn(`Cannot update annotation ${b} - does not exist`)},a=(v,E=oe.LOCAL,m=oe.LOCAL)=>{const b=ns(E)?m:E,I=r(v,E);I&&s(b,{updated:[I]})},f=(v,E=oe.LOCAL)=>{e.get(v.id)?a(v,E):l(v,E)},d=(v,E=oe.LOCAL)=>{const m=v.reduce((b,I)=>{const k=r(I);return k?[...b,k]:b},[]);m.length>0&&s(E,{updated:m})},u=(v,E=oe.LOCAL)=>{const m=v.map(bt),{toAdd:b,toUpdate:I}=m.reduce((O,z)=>e.get(z.id)?{...O,toUpdate:[...O.toUpdate,z]}:{...O,toAdd:[...O.toAdd,z]},{toAdd:[],toUpdate:[]}),k=I.map(O=>r(O,E)).filter(Boolean);b.forEach(O=>{e.set(O.id,O),O.bodies.forEach(z=>t.set(z.id,O.id))}),s(E,{created:b,updated:k})},g=(v,E=oe.LOCAL)=>{const m=e.get(v.annotation);if(m){const b={...m,bodies:[...m.bodies,v]};e.set(m.id,b),t.set(v.id,b.id),s(E,{updated:[{oldValue:m,newValue:b,bodiesCreated:[v]}]})}else console.warn(`Attempt to add body to missing annotation: ${v.annotation}`)},h=()=>[...e.values()],p=(v=oe.LOCAL)=>{const E=[...e.values()];e.clear(),t.clear(),s(v,{deleted:E})},y=(v,E=!0,m=oe.LOCAL)=>{const b=v.map(bt);if(E){const I=[...e.values()];e.clear(),t.clear(),b.forEach(k=>{e.set(k.id,k),k.bodies.forEach(O=>t.set(O.id,k.id))}),s(m,{created:b,deleted:I})}else{const I=v.reduce((k,O)=>{const z=O.id&&e.get(O.id);return z?[...k,z]:k},[]);if(I.length>0)throw Error(`Bulk insert would overwrite the following annotations: ${I.map(k=>k.id).join(", ")}`);b.forEach(k=>{e.set(k.id,k),k.bodies.forEach(O=>t.set(O.id,k.id))}),s(m,{created:b})}},S=v=>{const E=typeof v=="string"?v:v.id,m=e.get(E);if(m)return e.delete(E),m.bodies.forEach(b=>t.delete(b.id)),m;console.warn(`Attempt to delete missing annotation: ${E}`)},w=(v,E=oe.LOCAL)=>{const m=S(v);m&&s(E,{deleted:[m]})},A=(v,E=oe.LOCAL)=>{const m=v.reduce((b,I)=>{const k=S(I);return k?[...b,k]:b},[]);m.length>0&&s(E,{deleted:m})},_=v=>{const E=e.get(v.annotation);if(E){const m=E.bodies.find(b=>b.id===v.id);if(m){t.delete(m.id);const b={...E,bodies:E.bodies.filter(I=>I.id!==v.id)};return e.set(E.id,b),{oldValue:E,newValue:b,bodiesDeleted:[m]}}else console.warn(`Attempt to delete missing body ${v.id} from annotation ${v.annotation}`)}else console.warn(`Attempt to delete body from missing annotation ${v.annotation}`)},M=(v,E=oe.LOCAL)=>{const m=_(v);m&&s(E,{updated:[m]})},L=(v,E=oe.LOCAL)=>{const m=v.map(b=>_(b)).filter(Boolean);m.length>0&&s(E,{updated:m})},C=v=>{const E=e.get(v);return E?{...E}:void 0},T=v=>{const E=t.get(v);if(E){const m=C(E).bodies.find(b=>b.id===v);if(m)return m;console.error(`Store integrity error: body ${v} in index, but not in annotation`)}else console.warn(`Attempt to retrieve missing body: ${v}`)},U=(v,E)=>{if(v.annotation!==E.annotation)throw"Annotation integrity violation: annotation ID must be the same when updating bodies";const m=e.get(v.annotation);if(m){const b=m.bodies.find(k=>k.id===v.id),I={...m,bodies:m.bodies.map(k=>k.id===b.id?E:k)};return e.set(m.id,I),b.id!==E.id&&(t.delete(b.id),t.set(E.id,I.id)),{oldValue:m,newValue:I,bodiesUpdated:[{oldBody:b,newBody:E}]}}else console.warn(`Attempt to add body to missing annotation ${v.annotation}`)},N=(v,E,m=oe.LOCAL)=>{const b=U(v,E);b&&s(m,{updated:[b]})},$=(v,E=oe.LOCAL)=>{const m=v.map(b=>U({id:b.id,annotation:b.annotation},b)).filter(Boolean);s(E,{updated:m})},F=v=>{const E=e.get(v.annotation);if(E){const m={...E,target:{...E.target,...v}};return e.set(E.id,m),{oldValue:E,newValue:m,targetUpdated:{oldTarget:E.target,newTarget:v}}}else console.warn(`Attempt to update target on missing annotation: ${v.annotation}`)};return{addAnnotation:l,addBody:g,all:h,bulkAddAnnotations:y,bulkDeleteAnnotations:A,bulkDeleteBodies:L,bulkUpdateAnnotations:d,bulkUpdateBodies:$,bulkUpdateTargets:(v,E=oe.LOCAL)=>{const m=v.map(b=>F(b)).filter(Boolean);m.length>0&&s(E,{updated:m})},bulkUpsertAnnotations:u,clear:p,deleteAnnotation:w,deleteBody:M,getAnnotation:C,getBody:T,observe:o,unobserve:i,updateAnnotation:a,updateBody:N,updateTarget:(v,E=oe.LOCAL)=>{const m=F(v);m&&s(E,{updated:[m]})},upsertAnnotation:f}};let is=()=>({emit(e,...t){for(let n=this.events[e]||[],o=0,i=n.length;o<i;o++)n[o](...t)},events:{},on(e,t){var n;return((n=this.events)[e]||(n[e]=[])).push(t),()=>{var o;this.events[e]=(o=this.events[e])==null?void 0:o.filter(i=>t!==i)}}});const ss=250,rs=(e,t)=>{const n=is(),o=(t==null?void 0:t.changes)||[];let i=t?t.pointer:-1,s=!1,l=0;const r=p=>{if(!s){const{changes:y}=p,S=performance.now();if(S-l>ss)o.splice(i+1),o.push(y),i=o.length-1;else{const w=o.length-1;o[w]=ts(o[w],y)}l=S}s=!1};e.observe(r,{origin:oe.LOCAL});const a=p=>p&&p.length>0&&e.bulkDeleteAnnotations(p),f=p=>p&&p.length>0&&e.bulkAddAnnotations(p,!1),d=p=>p&&p.length>0&&e.bulkUpdateAnnotations(p.map(({oldValue:y})=>y)),u=p=>p&&p.length>0&&e.bulkUpdateAnnotations(p.map(({newValue:y})=>y)),g=p=>p&&p.length>0&&e.bulkAddAnnotations(p,!1),h=p=>p&&p.length>0&&e.bulkDeleteAnnotations(p);return{canRedo:()=>o.length-1>i,canUndo:()=>i>-1,destroy:()=>e.unobserve(r),getHistory:()=>({changes:[...o],pointer:i}),on:(p,y)=>n.on(p,y),redo:()=>{if(o.length-1>i){s=!0;const{created:p,updated:y,deleted:S}=o[i+1];f(p),u(y),h(S),n.emit("redo",o[i+1]),i+=1}},undo:()=>{if(i>-1){s=!0;const{created:p,updated:y,deleted:S}=o[i];a(p),d(y),g(S),n.emit("undo",o[i]),i-=1}}}},ls=()=>{const e=Ut([]);return{subscribe:e.subscribe.bind(e),set:e.set.bind(e)}},as=(e,t,n,o)=>{const{hover:i,selection:s,store:l,viewport:r}=e,a=new Map;let f=[],d,u;const g=(w,A)=>{a.has(w)?a.get(w).push(A):a.set(w,[A])},h=(w,A)=>{const _=a.get(w);if(_){const M=_.indexOf(A);M!==-1&&_.splice(M,1)}},p=(w,A,_)=>{a.has(w)&&setTimeout(()=>{a.get(w).forEach(M=>{if(n){const L=Array.isArray(A)?A.map(T=>n.serialize(T)):n.serialize(A),C=_?_ instanceof PointerEvent?_:n.serialize(_):void 0;M(L,C)}else M(A,_)})},1)},y=()=>{const{selected:w}=s,A=(w||[]).map(({id:_})=>l.getAnnotation(_));A.forEach(_=>{const M=f.find(L=>L.id===_.id);(!M||!Re(M,_))&&p("updateAnnotation",_,M)}),f=f.map(_=>A.find(({id:L})=>L===_.id)||_)};s.subscribe(({selected:w})=>{if(!(f.length===0&&w.length===0)){if(f.length===0&&w.length>0)f=w.map(({id:A})=>l.getAnnotation(A));else if(f.length>0&&w.length===0)f.forEach(A=>{const _=l.getAnnotation(A.id);_&&!Re(_,A)&&p("updateAnnotation",_,A)}),f=[];else{const A=new Set(f.map(M=>M.id)),_=new Set(w.map(({id:M})=>M));f.filter(M=>!_.has(M.id)).forEach(M=>{const L=l.getAnnotation(M.id);L&&!Re(L,M)&&p("updateAnnotation",L,M)}),f=[...f.filter(M=>_.has(M.id)),...w.filter(({id:M})=>!A.has(M)).map(({id:M})=>l.getAnnotation(M))]}p("selectionChanged",f)}}),i.subscribe(w=>{!d&&w?p("mouseEnterAnnotation",l.getAnnotation(w)):d&&!w?p("mouseLeaveAnnotation",l.getAnnotation(d)):d&&w&&(p("mouseLeaveAnnotation",l.getAnnotation(d)),p("mouseEnterAnnotation",l.getAnnotation(w))),d=w}),r==null||r.subscribe(w=>p("viewportIntersect",w.map(A=>l.getAnnotation(A)))),l.observe(w=>{o&&(u&&clearTimeout(u),u=setTimeout(y,1e3));const{created:A,deleted:_}=w.changes;(A||[]).forEach(M=>p("createAnnotation",M)),(_||[]).forEach(M=>p("deleteAnnotation",M)),(w.changes.updated||[]).filter(M=>[...M.bodiesCreated||[],...M.bodiesDeleted||[],...M.bodiesUpdated||[]].length>0).forEach(({oldValue:M,newValue:L})=>{const C=f.find(T=>T.id===M.id)||M;f=f.map(T=>T.id===M.id?L:T),p("updateAnnotation",L,C)})},{origin:oe.LOCAL}),l.observe(w=>{if(f){const A=new Set(f.map(M=>M.id)),_=(w.changes.updated||[]).filter(({newValue:M})=>A.has(M.id)).map(({newValue:M})=>M);_.length>0&&(f=f.map(M=>_.find(C=>C.id===M.id)||M))}},{origin:oe.REMOTE});const S=w=>A=>{const{updated:_}=A;w?(_||[]).forEach(M=>p("updateAnnotation",M.oldValue,M.newValue)):(_||[]).forEach(M=>p("updateAnnotation",M.newValue,M.oldValue))};return t.on("undo",S(!0)),t.on("redo",S(!1)),{on:g,off:h,emit:p}},cs=e=>t=>t.reduce((n,o)=>{const{parsed:i,error:s}=e.parse(o);return s?{parsed:n.parsed,failed:[...n.failed,o]}:i?{parsed:[...n.parsed,i],failed:n.failed}:{...n}},{parsed:[],failed:[]}),fs=(e,t,n)=>{const{store:o,selection:i}=e,s=w=>{if(n){const{parsed:A,error:_}=n.parse(w);A?o.addAnnotation(A,oe.REMOTE):console.error(_)}else o.addAnnotation(Gt(w),oe.REMOTE)},l=()=>i.clear(),r=()=>o.clear(),a=w=>{const A=o.getAnnotation(w);return n&&A?n.serialize(A):A},f=()=>n?o.all().map(n.serialize):o.all(),d=()=>{var w;const A=(((w=i.selected)==null?void 0:w.map(_=>_.id))||[]).map(_=>o.getAnnotation(_)).filter(Boolean);return n?A.map(n.serialize):A},u=(w,A=!0)=>fetch(w).then(_=>_.json()).then(_=>(h(_,A),_)),g=w=>{if(typeof w=="string"){const A=o.getAnnotation(w);if(o.deleteAnnotation(w),A)return n?n.serialize(A):A}else{const A=n?n.parse(w).parsed:w;if(A)return o.deleteAnnotation(A),w}},h=(w,A=!0)=>{if(n){const _=n.parseAll||cs(n),{parsed:M,failed:L}=_(w);L.length>0&&console.warn(`Discarded ${L.length} invalid annotations`,L),o.bulkAddAnnotations(M,A,oe.REMOTE)}else o.bulkAddAnnotations(w.map(Gt),A,oe.REMOTE)},p=(w,A)=>{w?i.setSelected(w,A):i.clear()},y=w=>{i.setUserSelectAction(w)},S=w=>{if(n){const A=n.parse(w).parsed,_=n.serialize(o.getAnnotation(A.id));return o.updateAnnotation(A),_}else{const A=o.getAnnotation(w.id);return o.updateAnnotation(Gt(w)),A}};return{addAnnotation:s,cancelSelected:l,canRedo:t.canRedo,canUndo:t.canUndo,clearAnnotations:r,getAnnotationById:a,getAnnotations:f,getHistory:t.getHistory,getSelected:d,loadAnnotations:u,redo:t.redo,removeAnnotation:g,setAnnotations:h,setSelected:p,setUserSelectAction:y,undo:t.undo,updateAnnotation:S}},us=(e,t,n)=>typeof t=="function"?t(e,n):t,ds=(e,t)=>typeof e!="function"&&typeof t!="function"?{...e||{},...t||{}}:(n,o)=>{const i=typeof e=="function"?e(n,o):e,s=typeof t=="function"?t(n,o):t;return{...i||{},...s||{}}};let gs="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",hs=e=>crypto.getRandomValues(new Uint8Array(e)),ms=(e,t,n)=>{let o=256-256%e.length;if(o===256){let s=e.length-1;return(l=t)=>{if(!l)return"";let r="";for(;;){let a=n(l),f=l;for(;f--;)if(r+=e[a[f]&s],r.length>=l)return r}}}let i=Math.ceil(1.6*256*t/o);return(s=t)=>{if(!s)return"";let l="";for(;;){let r=n(i),a=i;for(;a--;)if(r[a]<o&&(l+=e[r[a]%e.length],l.length>=s))return l}}},ps=(e,t=21)=>ms(e,t|0,hs),_s=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=gs[n[e]&63];return t};const ys=()=>({isGuest:!0,id:ps("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_",20)()}),ws=e=>{const t=JSON.stringify(e);let n=0;for(let o=0,i=t.length;o<i;o++){let s=t.charCodeAt(o);n=(n<<5)-n+s,n|=0}return`${n}`},qn=e=>e?typeof e=="object"?{...e}:e:void 0,bs=(e,t)=>(Array.isArray(e)?e:[e]).map(n=>{const{id:o,type:i,purpose:s,value:l,created:r,modified:a,creator:f,...d}=n;return{id:o||`temp-${ws(n)}`,annotation:t,type:i,purpose:s,value:l,creator:qn(f),created:r?new Date(r):void 0,updated:a?new Date(a):void 0,...d}}),Es=e=>e.map(t=>{var n;const{annotation:o,created:i,updated:s,...l}=t,r={...l,created:i==null?void 0:i.toISOString(),modified:s==null?void 0:s.toISOString()};return(n=r.id)!=null&&n.startsWith("temp-")&&delete r.id,r}),vs=["#ff7c00","#1ac938","#e8000b","#8b2be2","#9f4800","#f14cc1","#ffc400","#00d7ff","#023eff"],As=()=>{const e=[...vs];return{assignRandomColor:()=>{const t=Math.floor(Math.random()*e.length),n=e[t];return e.splice(t,1),n},releaseColor:t=>e.push(t)}};globalThis.ANNOTORIOUS_PRESENCE_KEY||(globalThis.ANNOTORIOUS_PRESENCE_KEY=_s());const Ss=(e,t={strict:!0,invertY:!1})=>({parse:i=>Kn(i,t),serialize:i=>Wn(i,e,t)}),Kn=(e,t={strict:!0,invertY:!1})=>{const n=e.id||Gn(),{creator:o,created:i,modified:s,body:l,...r}=e,a=bs(l||[],n),f=Array.isArray(e.target)?e.target[0]:e.target,d=typeof f=="string"?f:Array.isArray(f.selector)?f.selector[0]:f.selector,u=Nn(d)?Rn(d,t.invertY):(d==null?void 0:d.type)==="SvgSelector"?Xn(d):void 0,g=Array.isArray(r.target)?r.target[0]:r.targret;return u||!t.strict?{parsed:{...r,id:n,bodies:a,target:{created:i?new Date(i):void 0,creator:qn(o),updated:s?new Date(s):void 0,...typeof g=="string"?{}:g,annotation:n,selector:u||d}}}:{error:Error(`Invalid selector: ${JSON.stringify(d)}`)}},Wn=(e,t,n={strict:!0,invertY:!1})=>{const{selector:o,creator:i,created:s,updated:l,updatedBy:r,...a}=e.target;let f;try{o.type===Q.RECTANGLE&&!o.geometry.rot?f=Yn(o.geometry):f=Hn(o)}catch(u){if(n.strict)throw u;f=o}const d={...e,"@context":"http://www.w3.org/ns/anno.jsonld",id:e.id,type:"Annotation",body:Es(e.bodies),created:s==null?void 0:s.toISOString(),creator:i,modified:l==null?void 0:l.toISOString(),target:{...a,source:t,type:"SpecificResource",selector:f}};return delete d.bodies,typeof d.target!="string"&&"annotation"in d.target&&delete d.target.annotation,d},Qe=[];function Ms(e,t=q){let n;const o=new Set;function i(r){if(re(e,r)&&(e=r,n)){const a=!Qe.length;for(const f of o)f[1](),Qe.push(f,e);if(a){for(let f=0;f<Qe.length;f+=2)Qe[f][0](Qe[f+1]);Qe.length=0}}}function s(r){i(r(e))}function l(r,a=q){const f=[r,a];return o.add(f),o.size===1&&(n=t(i,s)||q),r(e),()=>{o.delete(f),o.size===0&&n&&(n(),n=null)}}return{set:i,update:s,subscribe:l}}const ks=(e,t)=>{const{naturalWidth:n,naturalHeight:o}=e;if(!n&&!o){const{width:i,height:s}=e;t.setAttribute("viewBox",`0 0 ${i} ${s}`),e.addEventListener("load",l=>{const r=l.target;t.setAttribute("viewBox",`0 0 ${r.naturalWidth} ${r.naturalHeight}`)})}else t.setAttribute("viewBox",`0 0 ${n} ${o}`)},Zn=(e,t)=>{ks(e,t);const{subscribe:n,set:o}=Ms(1);let i;return window.ResizeObserver&&(i=new ResizeObserver(()=>{const l=t.getBoundingClientRect(),{width:r,height:a}=t.viewBox.baseVal,f=Math.max(l.width/r,l.height/a);o(f)}),i.observe(t.parentElement)),{destroy:()=>{i&&i.disconnect()},subscribe:n}},ze=(e,t,n)=>{const o=typeof t=="function"?t(e,n):t;if(o){const{fill:i,fillOpacity:s,stroke:l,strokeWidth:r,strokeOpacity:a}=o;let f="";return i&&(f+=`fill:${i};`),s||s===0?f+=`fill-opacity:${s};`:i&&(f+="fill-opacity:0.25;"),l&&(f+=`stroke:${l};`,f+=`stroke-width:${r||"1"};`,f+=`stroke-opacity:${a||"1"};`),f}},ct=(e,t=0)=>{const{minX:n,minY:o,maxX:i,maxY:s}=e;return{x:n-t,y:o-t,w:i-n+2*t,h:s-o+2*t}},Ie=typeof window>"u"||typeof navigator>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,Ts=e=>({}),Jn=e=>({grab:e[0]});function Ps(e){let t,n,o,i;const s=e[8].default,l=si(s,e,e[7],Jn);return{c(){t=P("g"),l&&l.c(),c(t,"class","a9s-annotation selected")},m(r,a){B(r,t,a),l&&l.m(t,null),n=!0,o||(i=[ee(t,"pointerup",e[2]),ee(t,"pointermove",e[1])],o=!0)},p(r,[a]){l&&l.p&&(!n||a&128)&&li(l,s,r,r[7],n?ri(s,r[7],a,Ts):ai(r[7]),Jn)},i(r){n||(V(l,r),n=!0)},o(r){G(l,r),n=!1},d(r){r&&Y(t),l&&l.d(r),o=!1,Se(i)}}}function Ls(e,t,n){let{$$slots:o={},$$scope:i}=t;const s=De();let{shape:l}=t,{editor:r}=t,{transform:a}=t,{svgEl:f}=t,d,u,g;const h=S=>w=>{if(d=S,f){const{left:_,top:M}=f.getBoundingClientRect(),L=w.clientX-_,C=w.clientY-M;u=a.elementToImage(L,C)}else{const{offsetX:_,offsetY:M}=w;u=a.elementToImage(_,M)}g=l,w.target.setPointerCapture(w.pointerId),s("grab",w)},p=S=>{if(d){const[w,A]=a.elementToImage(S.offsetX,S.offsetY),_=[w-u[0],A-u[1]];n(3,l=r(g,d,_)),s("change",l)}},y=S=>{S.target.releasePointerCapture(S.pointerId),d=void 0,g=l,s("release",S)};return e.$$set=S=>{"shape"in S&&n(3,l=S.shape),"editor"in S&&n(4,r=S.editor),"transform"in S&&n(5,a=S.transform),"svgEl"in S&&n(6,f=S.svgEl),"$$scope"in S&&n(7,i=S.$$scope)},[h,p,y,l,r,a,f,i,o]}class Et extends me{constructor(t){super(),he(this,t,Ls,Ps,re,{shape:3,editor:4,transform:5,svgEl:6})}}function Is(e){let t,n,o,i,s,l,r,a,f=e[3]&&Qn(e);return{c(){t=P("g"),n=P("circle"),f&&f.c(),i=P("circle"),c(n,"class","a9s-handle-buffer svelte-qtyc7s"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=e[5]+6/e[2]),c(n,"role","button"),c(n,"tabindex","0"),c(i,"class",s=Ke(`a9s-handle-dot${e[3]?" selected":""}`)+" svelte-qtyc7s"),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",e[5]),c(t,"class",l=`a9s-handle ${e[8].class||""}`.trim())},m(d,u){B(d,t,u),j(t,n),f&&f.m(t,null),j(t,i),r||(a=[ee(n,"dblclick",e[12]),ee(n,"pointerenter",e[13]),ee(n,"pointerleave",e[14]),ee(n,"pointerdown",e[15]),ee(n,"pointerdown",e[6]),ee(n,"pointerup",e[16]),ee(n,"pointerup",e[7])],r=!0)},p(d,u){u&1&&c(n,"cx",d[0]),u&2&&c(n,"cy",d[1]),u&36&&o!==(o=d[5]+6/d[2])&&c(n,"r",o),d[3]?f?f.p(d,u):(f=Qn(d),f.c(),f.m(t,i)):f&&(f.d(1),f=null),u&8&&s!==(s=Ke(`a9s-handle-dot${d[3]?" selected":""}`)+" svelte-qtyc7s")&&c(i,"class",s),u&1&&c(i,"cx",d[0]),u&2&&c(i,"cy",d[1]),u&32&&c(i,"r",d[5]),u&256&&l!==(l=`a9s-handle ${d[8].class||""}`.trim())&&c(t,"class",l)},d(d){d&&Y(t),f&&f.d(),r=!1,Se(a)}}}function Cs(e){let t,n,o,i,s,l,r,a,f;return{c(){t=P("g"),n=P("circle"),i=P("circle"),l=P("circle"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=e[5]*10),c(n,"class","a9s-touch-halo"),Pe(n,"touched",e[4]),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",s=e[5]+10/e[2]),c(i,"class","a9s-handle-buffer svelte-qtyc7s"),c(i,"role","button"),c(i,"tabindex","0"),c(l,"class","a9s-handle-dot"),c(l,"cx",e[0]),c(l,"cy",e[1]),c(l,"r",r=e[5]+2/e[2]),c(t,"class","a9s-touch-handle")},m(d,u){B(d,t,u),j(t,n),j(t,i),j(t,l),a||(f=[ee(i,"dblclick",e[9]),ee(i,"pointerdown",e[10]),ee(i,"pointerdown",e[6]),ee(i,"pointerup",e[11]),ee(i,"pointerup",e[7])],a=!0)},p(d,u){u&1&&c(n,"cx",d[0]),u&2&&c(n,"cy",d[1]),u&32&&o!==(o=d[5]*10)&&c(n,"r",o),u&16&&Pe(n,"touched",d[4]),u&1&&c(i,"cx",d[0]),u&2&&c(i,"cy",d[1]),u&36&&s!==(s=d[5]+10/d[2])&&c(i,"r",s),u&1&&c(l,"cx",d[0]),u&2&&c(l,"cy",d[1]),u&36&&r!==(r=d[5]+2/d[2])&&c(l,"r",r)},d(d){d&&Y(t),a=!1,Se(f)}}}function Qn(e){let t,n;return{c(){t=P("circle"),c(t,"class","a9s-handle-selected"),c(t,"cx",e[0]),c(t,"cy",e[1]),c(t,"r",n=e[5]+8/e[2])},m(o,i){B(o,t,i)},p(o,i){i&1&&c(t,"cx",o[0]),i&2&&c(t,"cy",o[1]),i&36&&n!==(n=o[5]+8/o[2])&&c(t,"r",n)},d(o){o&&Y(t)}}}function Os(e){let t;function n(s,l){return Ie?Cs:Is}let i=n()(e);return{c(){i.c(),t=Me()},m(s,l){i.m(s,l),B(s,t,l)},p(s,[l]){i.p(s,l)},i:q,o:q,d(s){s&&Y(t),i.d(s)}}}function Ds(e,t,n){let o,{x:i}=t,{y:s}=t,{scale:l}=t,{selected:r=void 0}=t,a=!1;const f=_=>{_.pointerType==="touch"&&n(4,a=!0)},d=()=>n(4,a=!1);function u(_){ge.call(this,e,_)}function g(_){ge.call(this,e,_)}function h(_){ge.call(this,e,_)}function p(_){ge.call(this,e,_)}function y(_){ge.call(this,e,_)}function S(_){ge.call(this,e,_)}function w(_){ge.call(this,e,_)}function A(_){ge.call(this,e,_)}return e.$$set=_=>{n(8,t=Ce(Ce({},t),yn(_))),"x"in _&&n(0,i=_.x),"y"in _&&n(1,s=_.y),"scale"in _&&n(2,l=_.scale),"selected"in _&&n(3,r=_.selected)},e.$$.update=()=>{e.$$.dirty&4&&n(5,o=4/l)},t=yn(t),[i,s,l,r,a,o,f,d,t,u,g,h,p,y,S,w,A]}class Be extends me{constructor(t){super(),he(this,t,Ds,Os,re,{x:0,y:1,scale:2,selected:3})}}function Ns(e){let t,n,o,i,s,l,r;return{c(){t=P("g"),n=P("circle"),i=P("circle"),s=P("circle"),c(n,"class","a9s-polygon-midpoint-buffer svelte-12ykj76"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=1.75*e[2]),c(i,"class","a9s-polygon-midpoint-outer svelte-12ykj76"),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",e[2]),c(s,"class","a9s-polygon-midpoint-inner svelte-12ykj76"),c(s,"cx",e[0]),c(s,"cy",e[1]),c(s,"r",e[2]),c(t,"class","a9s-polygon-midpoint svelte-12ykj76")},m(a,f){B(a,t,f),j(t,n),j(t,i),j(t,s),l||(r=[ee(n,"pointerdown",e[5]),ee(n,"pointerdown",e[3])],l=!0)},p(a,f){f&1&&c(n,"cx",a[0]),f&2&&c(n,"cy",a[1]),f&4&&o!==(o=1.75*a[2])&&c(n,"r",o),f&1&&c(i,"cx",a[0]),f&2&&c(i,"cy",a[1]),f&4&&c(i,"r",a[2]),f&1&&c(s,"cx",a[0]),f&2&&c(s,"cy",a[1]),f&4&&c(s,"r",a[2])},d(a){a&&Y(t),l=!1,Se(r)}}}function Rs(e){let t;return{c(){t=P("circle"),c(t,"cx",e[0]),c(t,"cy",e[1]),c(t,"r",e[2])},m(n,o){B(n,t,o)},p(n,o){o&1&&c(t,"cx",n[0]),o&2&&c(t,"cy",n[1]),o&4&&c(t,"r",n[2])},d(n){n&&Y(t)}}}function Ys(e){let t;function n(s,l){return Ie?Rs:Ns}let i=n()(e);return{c(){i.c(),t=Me()},m(s,l){i.m(s,l),B(s,t,l)},p(s,[l]){i.p(s,l)},i:q,o:q,d(s){s&&Y(t),i.d(s)}}}function Bs(e,t,n){let o,{x:i}=t,{y:s}=t,{scale:l}=t;const r=f=>{f.pointerType};function a(f){ge.call(this,e,f)}return e.$$set=f=>{"x"in f&&n(0,i=f.x),"y"in f&&n(1,s=f.y),"scale"in f&&n(4,l=f.scale)},e.$$.update=()=>{e.$$.dirty&16&&n(2,o=4/l)},[i,s,o,r,l,a]}class jt extends me{constructor(t){super(),he(this,t,Bs,Ys,re,{x:0,y:1,scale:4})}}function Ft(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function $n(e,t,n){const o=e.slice();return o[28]=t[n],o[30]=n,o}function zt(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function qt(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function xn(e){let t,n,o,i;return{c(){t=P("circle"),c(t,"cx",n=e[28][0]),c(t,"cy",o=e[28][1]),c(t,"r",i=ft/e[3]),c(t,"class","svelte-1h2slbm")},m(s,l){B(s,t,l)},p(s,l){l[0]&1088&&n!==(n=s[28][0])&&c(t,"cx",n),l[0]&1088&&o!==(o=s[28][1])&&c(t,"cy",o),l[0]&8&&i!==(i=ft/s[3])&&c(t,"r",i)},d(s){s&&Y(t)}}}function eo(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("mask"),n=P("rect"),r=P("circle"),c(n,"x",o=e[9].x),c(n,"y",i=e[9].y),c(n,"width",s=e[9].w),c(n,"height",l=e[9].h),c(n,"class","svelte-1h2slbm"),c(r,"cx",a=e[28][0]),c(r,"cy",f=e[28][1]),c(r,"r",d=ft/e[3]),c(r,"class","svelte-1h2slbm"),c(t,"id",`${e[19]}-inner`),c(t,"class","a9s-polygon-editor-mask svelte-1h2slbm")},m(u,g){B(u,t,g),j(t,n),j(t,r)},p(u,g){g[0]&512&&o!==(o=u[9].x)&&c(n,"x",o),g[0]&512&&i!==(i=u[9].y)&&c(n,"y",i),g[0]&512&&s!==(s=u[9].w)&&c(n,"width",s),g[0]&512&&l!==(l=u[9].h)&&c(n,"height",l),g[0]&1088&&a!==(a=u[28][0])&&c(r,"cx",a),g[0]&1088&&f!==(f=u[28][1])&&c(r,"cy",f),g[0]&8&&d!==(d=ft/u[3])&&c(r,"r",d)},d(u){u&&Y(t)}}}function to(e){let t,n;return t=new Be({props:{class:"a9s-corner-handle",x:e[28][0],y:e[28][1],scale:e[3],selected:e[8].includes(e[30])}}),t.$on("pointerenter",e[11]),t.$on("pointerleave",e[12]),t.$on("pointerdown",e[15]),t.$on("pointerdown",function(){se(e[27](`HANDLE-${e[30]}`))&&e[27](`HANDLE-${e[30]}`).apply(this,arguments)}),t.$on("pointerup",e[16](e[30])),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&32&&(s.x=e[28][0]),i[0]&32&&(s.y=e[28][1]),i[0]&8&&(s.scale=e[3]),i[0]&256&&(s.selected=e[8].includes(e[30])),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function no(e){let t,n;return t=new jt({props:{x:e[28][0],y:e[28][1],scale:e[3]}}),t.$on("pointerdown",function(){se(e[18](e[6]))&&e[18](e[6]).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&1088&&(s.x=e[28][0]),i[0]&1088&&(s.y=e[28][1]),i[0]&8&&(s.scale=e[3]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Vs(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,y,S,w,A,_,M,L,C=e[6]!==void 0&&!e[7]&&xn(qt(e)),T=e[6]!==void 0&&!e[7]&&eo(zt(e)),U=Ae(e[5].points),N=[];for(let v=0;v<U.length;v+=1)N[v]=to($n(e,U,v));const $=v=>G(N[v],1,1,()=>{N[v]=null});let F=e[6]!==void 0&&!e[7]&&no(Ft(e));return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),C&&C.c(),T&&T.c(),d=be(),u=P("polygon"),h=be(),p=P("polygon"),S=be();for(let v=0;v<N.length;v+=1)N[v].c();w=be(),F&&F.c(),A=Me(),c(o,"x",i=e[9].x),c(o,"y",s=e[9].y),c(o,"width",l=e[9].w),c(o,"height",r=e[9].h),c(o,"class","svelte-1h2slbm"),c(a,"points",f=e[5].points.map(oo).join(" ")),c(a,"class","svelte-1h2slbm"),c(n,"id",`${e[19]}-outer`),c(n,"class","a9s-polygon-editor-mask svelte-1h2slbm"),c(u,"class","a9s-outer"),c(u,"mask",`url(#${e[19]}-outer)`),c(u,"points",g=e[5].points.map(io).join(" ")),c(p,"class","a9s-inner a9s-shape-handle"),c(p,"mask",`url(#${e[19]}-inner)`),c(p,"style",e[1]),c(p,"points",y=e[5].points.map(so).join(" "))},m(v,E){B(v,t,E),j(t,n),j(n,o),j(n,a),C&&C.m(n,null),T&&T.m(t,null),B(v,d,E),B(v,u,E),B(v,h,E),B(v,p,E),B(v,S,E);for(let m=0;m<N.length;m+=1)N[m]&&N[m].m(v,E);B(v,w,E),F&&F.m(v,E),B(v,A,E),_=!0,M||(L=[ee(u,"pointerup",e[14]),ee(u,"pointerdown",function(){se(e[27]("SHAPE"))&&e[27]("SHAPE").apply(this,arguments)}),ee(p,"pointermove",e[13]),ee(p,"pointerup",e[14]),ee(p,"pointerdown",function(){se(e[27]("SHAPE"))&&e[27]("SHAPE").apply(this,arguments)})],M=!0)},p(v,E){if(e=v,(!_||E[0]&512&&i!==(i=e[9].x))&&c(o,"x",i),(!_||E[0]&512&&s!==(s=e[9].y))&&c(o,"y",s),(!_||E[0]&512&&l!==(l=e[9].w))&&c(o,"width",l),(!_||E[0]&512&&r!==(r=e[9].h))&&c(o,"height",r),(!_||E[0]&32&&f!==(f=e[5].points.map(oo).join(" ")))&&c(a,"points",f),e[6]!==void 0&&!e[7]?C?C.p(qt(e),E):(C=xn(qt(e)),C.c(),C.m(n,null)):C&&(C.d(1),C=null),e[6]!==void 0&&!e[7]?T?T.p(zt(e),E):(T=eo(zt(e)),T.c(),T.m(t,null)):T&&(T.d(1),T=null),(!_||E[0]&32&&g!==(g=e[5].points.map(io).join(" ")))&&c(u,"points",g),(!_||E[0]&2)&&c(p,"style",e[1]),(!_||E[0]&32&&y!==(y=e[5].points.map(so).join(" ")))&&c(p,"points",y),E[0]&134322472){U=Ae(e[5].points);let m;for(m=0;m<U.length;m+=1){const b=$n(e,U,m);N[m]?(N[m].p(b,E),V(N[m],1)):(N[m]=to(b),N[m].c(),V(N[m],1),N[m].m(w.parentNode,w))}for(Ee(),m=U.length;m<N.length;m+=1)$(m);ve()}e[6]!==void 0&&!e[7]?F?(F.p(Ft(e),E),E[0]&192&&V(F,1)):(F=no(Ft(e)),F.c(),V(F,1),F.m(A.parentNode,A)):F&&(Ee(),G(F,1,1,()=>{F=null}),ve())},i(v){if(!_){for(let E=0;E<U.length;E+=1)V(N[E]);V(F),_=!0}},o(v){N=N.filter(Boolean);for(let E=0;E<N.length;E+=1)G(N[E]);G(F),_=!1},d(v){v&&(Y(t),Y(d),Y(u),Y(h),Y(p),Y(S),Y(w),Y(A)),C&&C.d(),T&&T.d(),Ge(N,v),F&&F.d(v),M=!1,Se(L)}}}function Us(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[17],svgEl:e[4],$$slots:{default:[Vs,({grab:o})=>({27:o}),({grab:o})=>[o?134217728:0]]},$$scope:{ctx:e}}}),t.$on("change",e[20]),t.$on("grab",e[21]),t.$on("release",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&1&&(s.shape=o[0]),i[0]&4&&(s.transform=o[2]),i[0]&16&&(s.svgEl=o[4]),i[0]&134219754|i[1]&1&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const Xs=250,Hs=1e3,Gs=12,ft=4.5,oo=e=>e.join(","),io=e=>e.join(","),so=e=>e.join(",");function js(e,t,n){let o,i,s;const l=De();let{shape:r}=t,{computedStyle:a}=t,{transform:f}=t,{viewportScale:d=1}=t,{svgEl:u}=t,g,h=!1,p,y=[];const S=()=>n(7,h=!0),w=()=>n(7,h=!1),A=m=>{if(y.length>0||!i.some(W=>W.visible)){n(6,g=void 0);return}const[b,I]=f.elementToImage(m.offsetX,m.offsetY),k=W=>Math.pow(W[0]-b,2)+Math.pow(W[1]-I,2),O=o.points.reduce((W,Z)=>k(Z)<k(W)?Z:W),z=i.filter(W=>W.visible).reduce((W,Z)=>k(Z.point)<k(W.point)?Z:W),X=Math.pow(Hs/d,2);k(O)<X||k(z.point)<X?n(6,g=i.indexOf(z)):n(6,g=void 0)},_=()=>{document.activeElement!==u&&u.focus()},M=()=>{n(8,y=[]),_()},L=m=>{n(7,h=!0),m.preventDefault(),m.stopPropagation(),p=performance.now()},C=m=>b=>{if(!p||Ie||performance.now()-p>Xs)return;const I=y.includes(m);b.metaKey||b.ctrlKey||b.shiftKey?I?n(8,y=y.filter(k=>k!==m)):n(8,y=[...y,m]):I&&y.length>1?n(8,y=[m]):I?n(8,y=[]):n(8,y=[m]),_()},T=(m,b,I)=>{_();let k;const O=m.geometry;y.length>1?k=O.points.map(([X,x],W)=>y.includes(W)?[X+I[0],x+I[1]]:[X,x]):b==="SHAPE"?k=O.points.map(([X,x])=>[X+I[0],x+I[1]]):k=O.points.map(([X,x],W)=>b===`HANDLE-${W}`?[X+I[0],x+I[1]]:[X,x]);const z=ue(k);return{...m,geometry:{points:k,bounds:z}}},U=m=>async b=>{b.stopPropagation();const I=[...o.points.slice(0,m+1),i[m].point,...o.points.slice(m+1)],k=ue(I);l("change",{...r,geometry:{points:I,bounds:k}}),await Sn();const O=[...document.querySelectorAll(".a9s-handle")][m+1];if(O!=null&&O.firstChild){const z=new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,clientX:b.clientX,clientY:b.clientY,pointerId:b.pointerId,pointerType:b.pointerType,isPrimary:b.isPrimary,buttons:b.buttons});O.firstChild.dispatchEvent(z)}},N=()=>{if(o.points.length-y.length<3)return;const m=o.points.filter((I,k)=>!y.includes(k)),b=ue(m);l("change",{...r,geometry:{points:m,bounds:b}}),n(8,y=[])};Oe(()=>{if(Ie)return;const m=b=>{(b.key==="Delete"||b.key==="Backspace")&&(b.preventDefault(),N())};return u.addEventListener("pointermove",A),u.addEventListener("keydown",m),()=>{u.removeEventListener("pointermove",A),u.removeEventListener("keydown",m)}});const $=`polygon-mask-${Math.random().toString(36).substring(2,12)}`;function F(m){ge.call(this,e,m)}function v(m){ge.call(this,e,m)}function E(m){ge.call(this,e,m)}return e.$$set=m=>{"shape"in m&&n(0,r=m.shape),"computedStyle"in m&&n(1,a=m.computedStyle),"transform"in m&&n(2,f=m.transform),"viewportScale"in m&&n(3,d=m.viewportScale),"svgEl"in m&&n(4,u=m.svgEl)},e.$$.update=()=>{e.$$.dirty[0]&1&&n(5,o=r.geometry),e.$$.dirty[0]&40&&n(10,i=Ie?[]:o.points.map((m,b)=>{const I=b===o.points.length-1?o.points[0]:o.points[b+1],k=(m[0]+I[0])/2,O=(m[1]+I[1])/2,X=Math.sqrt(Math.pow(I[0]-k,2)+Math.pow(I[1]-O,2))>Gs/d;return{point:[k,O],visible:X}})),e.$$.dirty[0]&40&&n(9,s=ct(o.bounds,ft/d))},[r,a,f,d,u,o,g,h,y,s,i,S,w,A,M,L,C,T,U,$,F,v,E]}class ro extends me{constructor(t){super(),he(this,t,js,Us,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4},null,[-1,-1])}}const lo=(e,t,n)=>{const[o,i]=e,[s,l]=t,r=Math.cos(n),a=Math.sin(n),f=o-s,d=i-l;return[s+f*r-d*a,l+f*a+d*r]},Fs=(e,t,n,o,i=0)=>{const s=[[e,t],[e+n,t],[e+n,t+o],[e,t+o]],l=[e+n/2,t+o/2];return s.map(r=>lo(r,l,i))},ao=(e,t)=>{const{x:n,y:o,w:i,h:s,rot:l=0}=e,r=[n+i/2,o+s/2];let a=[n+i/2,o-t];return lo(a,r,l)},zs=(e,t,n)=>{const o=Math.cos(n),i=Math.sin(n);return[e*o+t*i,-e*i+t*o]},qs=(e,t,n)=>{const o=e[0]-n[0],i=e[1]-n[1],s=Math.atan2(i,o),l=t[0]-n[0],r=t[1]-n[1];return Math.atan2(r,l)-s},Ks=(e,t=10)=>{const n=t*Math.PI/180;return Math.round(e/n)*n};function Ws(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,y,S,w,A,_,M,L,C,T,U,N,$,F,v,E,m,b,I,k,O,z,X,x,W,Z,te,ye,ie,ke,H,de,ne,we,ce,qe,St,Mt,kt,an,Ve,cn,Ue,fn,Xe,un,He,J,dn,oi;return C=new Be({props:{class:"a9s-rotation-handle",x:e[7][0],y:e[7][1],scale:e[3]}}),C.$on("pointerdown",function(){se(e[16]("ROTATION"))&&e[16]("ROTATION").apply(this,arguments)}),Ve=new Be({props:{class:"a9s-corner-handle-topleft",x:e[6][0][0],y:e[6][0][1],scale:e[3]}}),Ve.$on("pointerdown",function(){se(e[16]("TOP_LEFT"))&&e[16]("TOP_LEFT").apply(this,arguments)}),Ue=new Be({props:{class:"a9s-corner-handle-topright",x:e[6][1][0],y:e[6][1][1],scale:e[3]}}),Ue.$on("pointerdown",function(){se(e[16]("TOP_RIGHT"))&&e[16]("TOP_RIGHT").apply(this,arguments)}),Xe=new Be({props:{class:"a9s-corner-handle-bottomright",x:e[6][2][0],y:e[6][2][1],scale:e[3]}}),Xe.$on("pointerdown",function(){se(e[16]("BOTTOM_RIGHT"))&&e[16]("BOTTOM_RIGHT").apply(this,arguments)}),He=new Be({props:{class:"a9s-corner-handle-bottomleft",x:e[6][3][0],y:e[6][3][1],scale:e[3]}}),He.$on("pointerdown",function(){se(e[16]("BOTTOM_LEFT"))&&e[16]("BOTTOM_LEFT").apply(this,arguments)}),{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),d=be(),u=P("g"),g=P("line"),w=P("line"),fe(C.$$.fragment),T=be(),U=P("g"),N=P("polygon"),F=P("polygon"),E=be(),m=P("line"),z=be(),X=P("line"),ye=be(),ie=P("line"),we=be(),ce=P("line"),an=be(),fe(Ve.$$.fragment),cn=be(),fe(Ue.$$.fragment),fn=be(),fe(Xe.$$.fragment),un=be(),fe(He.$$.fragment),c(o,"class","rect-mask-bg svelte-1bwhzbc"),c(o,"x",i=e[5].x),c(o,"y",s=e[5].y),c(o,"width",l=e[5].w),c(o,"height",r=e[5].h),c(a,"class","rect-mask-fg svelte-1bwhzbc"),c(a,"points",f=e[6].map(co).join(" ")),c(n,"id",e[9]),c(n,"class","a9s-rectangle-editor-mask svelte-1bwhzbc"),c(g,"class","a9s-rotation-handle-line-bg"),c(g,"x1",h=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2),c(g,"y1",p=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2),c(g,"x2",y=e[7][0]),c(g,"y2",S=e[7][1]),c(g,"pointer-events","none"),c(w,"class","a9s-rotation-handle-line-fg"),c(w,"x1",A=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2),c(w,"y1",_=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2),c(w,"x2",M=e[7][0]),c(w,"y2",L=e[7][1]),c(w,"pointer-events","none"),c(u,"class","a9s-rotation-handle-group"),c(N,"class","a9s-outer"),c(N,"mask",`url(#${e[9]})`),c(N,"points",$=e[6].map(fo).join(" ")),c(F,"class","a9s-inner a9s-shape-handle"),c(F,"style",e[1]),c(F,"points",v=e[6].map(uo).join(" ")),c(m,"class","a9s-edge-handle a9s-edge-handle-top"),c(m,"x1",b=e[6][0][0]),c(m,"y1",I=e[6][0][1]),c(m,"x2",k=e[6][1][0]),c(m,"y2",O=e[6][1][1]),c(X,"class","a9s-edge-handle a9s-edge-handle-right"),c(X,"x1",x=e[6][1][0]),c(X,"y1",W=e[6][1][1]),c(X,"x2",Z=e[6][2][0]),c(X,"y2",te=e[6][2][1]),c(ie,"class","a9s-edge-handle a9s-edge-handle-bottom"),c(ie,"x1",ke=e[6][2][0]),c(ie,"y1",H=e[6][2][1]),c(ie,"x2",de=e[6][3][0]),c(ie,"y2",ne=e[6][3][1]),c(ce,"class","a9s-edge-handle a9s-edge-handle-left"),c(ce,"x1",qe=e[6][3][0]),c(ce,"y1",St=e[6][3][1]),c(ce,"x2",Mt=e[6][0][0]),c(ce,"y2",kt=e[6][0][1])},m(K,R){B(K,t,R),j(t,n),j(n,o),j(n,a),B(K,d,R),B(K,u,R),j(u,g),j(u,w),le(C,u,null),B(K,T,R),B(K,U,R),j(U,N),j(U,F),B(K,E,R),B(K,m,R),B(K,z,R),B(K,X,R),B(K,ye,R),B(K,ie,R),B(K,we,R),B(K,ce,R),B(K,an,R),le(Ve,K,R),B(K,cn,R),le(Ue,K,R),B(K,fn,R),le(Xe,K,R),B(K,un,R),le(He,K,R),J=!0,dn||(oi=[ee(N,"pointerdown",function(){se(e[16]("SHAPE"))&&e[16]("SHAPE").apply(this,arguments)}),ee(F,"pointerdown",function(){se(e[16]("SHAPE"))&&e[16]("SHAPE").apply(this,arguments)}),ee(m,"pointerdown",function(){se(e[16]("TOP"))&&e[16]("TOP").apply(this,arguments)}),ee(X,"pointerdown",function(){se(e[16]("RIGHT"))&&e[16]("RIGHT").apply(this,arguments)}),ee(ie,"pointerdown",function(){se(e[16]("BOTTOM"))&&e[16]("BOTTOM").apply(this,arguments)}),ee(ce,"pointerdown",function(){se(e[16]("LEFT"))&&e[16]("LEFT").apply(this,arguments)})],dn=!0)},p(K,R){e=K,(!J||R&32&&i!==(i=e[5].x))&&c(o,"x",i),(!J||R&32&&s!==(s=e[5].y))&&c(o,"y",s),(!J||R&32&&l!==(l=e[5].w))&&c(o,"width",l),(!J||R&32&&r!==(r=e[5].h))&&c(o,"height",r),(!J||R&64&&f!==(f=e[6].map(co).join(" ")))&&c(a,"points",f),(!J||R&64&&h!==(h=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2))&&c(g,"x1",h),(!J||R&64&&p!==(p=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2))&&c(g,"y1",p),(!J||R&128&&y!==(y=e[7][0]))&&c(g,"x2",y),(!J||R&128&&S!==(S=e[7][1]))&&c(g,"y2",S),(!J||R&64&&A!==(A=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2))&&c(w,"x1",A),(!J||R&64&&_!==(_=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2))&&c(w,"y1",_),(!J||R&128&&M!==(M=e[7][0]))&&c(w,"x2",M),(!J||R&128&&L!==(L=e[7][1]))&&c(w,"y2",L);const Tt={};R&128&&(Tt.x=e[7][0]),R&128&&(Tt.y=e[7][1]),R&8&&(Tt.scale=e[3]),C.$set(Tt),(!J||R&64&&$!==($=e[6].map(fo).join(" ")))&&c(N,"points",$),(!J||R&2)&&c(F,"style",e[1]),(!J||R&64&&v!==(v=e[6].map(uo).join(" ")))&&c(F,"points",v),(!J||R&64&&b!==(b=e[6][0][0]))&&c(m,"x1",b),(!J||R&64&&I!==(I=e[6][0][1]))&&c(m,"y1",I),(!J||R&64&&k!==(k=e[6][1][0]))&&c(m,"x2",k),(!J||R&64&&O!==(O=e[6][1][1]))&&c(m,"y2",O),(!J||R&64&&x!==(x=e[6][1][0]))&&c(X,"x1",x),(!J||R&64&&W!==(W=e[6][1][1]))&&c(X,"y1",W),(!J||R&64&&Z!==(Z=e[6][2][0]))&&c(X,"x2",Z),(!J||R&64&&te!==(te=e[6][2][1]))&&c(X,"y2",te),(!J||R&64&&ke!==(ke=e[6][2][0]))&&c(ie,"x1",ke),(!J||R&64&&H!==(H=e[6][2][1]))&&c(ie,"y1",H),(!J||R&64&&de!==(de=e[6][3][0]))&&c(ie,"x2",de),(!J||R&64&&ne!==(ne=e[6][3][1]))&&c(ie,"y2",ne),(!J||R&64&&qe!==(qe=e[6][3][0]))&&c(ce,"x1",qe),(!J||R&64&&St!==(St=e[6][3][1]))&&c(ce,"y1",St),(!J||R&64&&Mt!==(Mt=e[6][0][0]))&&c(ce,"x2",Mt),(!J||R&64&&kt!==(kt=e[6][0][1]))&&c(ce,"y2",kt);const Pt={};R&64&&(Pt.x=e[6][0][0]),R&64&&(Pt.y=e[6][0][1]),R&8&&(Pt.scale=e[3]),Ve.$set(Pt);const Lt={};R&64&&(Lt.x=e[6][1][0]),R&64&&(Lt.y=e[6][1][1]),R&8&&(Lt.scale=e[3]),Ue.$set(Lt);const It={};R&64&&(It.x=e[6][2][0]),R&64&&(It.y=e[6][2][1]),R&8&&(It.scale=e[3]),Xe.$set(It);const Ct={};R&64&&(Ct.x=e[6][3][0]),R&64&&(Ct.y=e[6][3][1]),R&8&&(Ct.scale=e[3]),He.$set(Ct)},i(K){J||(V(C.$$.fragment,K),V(Ve.$$.fragment,K),V(Ue.$$.fragment,K),V(Xe.$$.fragment,K),V(He.$$.fragment,K),J=!0)},o(K){G(C.$$.fragment,K),G(Ve.$$.fragment,K),G(Ue.$$.fragment,K),G(Xe.$$.fragment,K),G(He.$$.fragment,K),J=!1},d(K){K&&(Y(t),Y(d),Y(u),Y(T),Y(U),Y(E),Y(m),Y(z),Y(X),Y(ye),Y(ie),Y(we),Y(ce),Y(an),Y(cn),Y(fn),Y(un)),ae(C),ae(Ve,K),ae(Ue,K),ae(Xe,K),ae(He,K),dn=!1,Se(oi)}}}function Zs(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[8],svgEl:e[4],$$slots:{default:[Ws,({grab:o})=>({16:o}),({grab:o})=>o?65536:0]},$$scope:{ctx:e}}}),t.$on("grab",e[12]),t.$on("change",e[13]),t.$on("release",e[14]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,[i]){const s={};i&1&&(s.shape=o[0]),i&4&&(s.transform=o[2]),i&16&&(s.svgEl=o[4]),i&196842&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const co=e=>`${e[0]},${e[1]}`,fo=e=>`${e[0]},${e[1]}`,uo=e=>`${e[0]},${e[1]}`;function Js(e,t,n){let o,i,s,l,r,{shape:a}=t,{computedStyle:f}=t,{transform:d}=t,{viewportScale:u=1}=t,{svgEl:g}=t,h=!1;const p=(_,M,L)=>{let{x:C,y:T,w:U,h:N,rot:$=0}=_.geometry;const[F,v]=L;if(M==="ROTATION"){const m=ao(_.geometry,o),b=m[0]+F,I=m[1]+v,k=[C+U/2,T+N/2];$+=qs([m[0],m[1]],[b,I],k),h&&($=Ks($));const O=2*Math.PI;$=($%O+O)%O}else if(M==="SHAPE")C+=F,T+=v;else{let m=0,b=0,I=U,k=N;const[O,z]=$!==0?zs(F,v,$):[F,v];switch(M){case"TOP":case"TOP_LEFT":case"TOP_RIGHT":b+=z;break;case"BOTTOM":case"BOTTOM_LEFT":case"BOTTOM_RIGHT":k+=z;break}switch(M){case"LEFT":case"TOP_LEFT":case"BOTTOM_LEFT":m+=O;break;case"RIGHT":case"TOP_RIGHT":case"BOTTOM_RIGHT":I+=O;break}const X=(m+I)/2,x=(b+k)/2;U=Math.abs(I-m),N=Math.abs(k-b);const W=[C+_.geometry.w/2,T+_.geometry.h/2],Z=[X-_.geometry.w/2,x-_.geometry.h/2],te=Math.cos($),ye=Math.sin($),ie=W[0]+Z[0]*te-Z[1]*ye,ke=W[1]+Z[0]*ye+Z[1]*te;C=ie-U/2,T=ke-N/2}const E=ue(s);return{..._,geometry:{x:C,y:T,w:U,h:N,rot:$,bounds:E}}};Oe(()=>{const _=L=>{L.key==="Shift"&&(h=!0)},M=L=>{L.key==="Shift"&&(h=!1)};return window.addEventListener("keydown",_),window.addEventListener("keyup",M),()=>{window.removeEventListener("keydown",_),window.removeEventListener("keyup",M)}});const y=`rect-mask-${Math.random().toString(36).substring(2,12)}`;function S(_){ge.call(this,e,_)}function w(_){ge.call(this,e,_)}function A(_){ge.call(this,e,_)}return e.$$set=_=>{"shape"in _&&n(0,a=_.shape),"computedStyle"in _&&n(1,f=_.computedStyle),"transform"in _&&n(2,d=_.transform),"viewportScale"in _&&n(3,u=_.viewportScale),"svgEl"in _&&n(4,g=_.svgEl)},e.$$.update=()=>{e.$$.dirty&8&&n(11,o=20/u),e.$$.dirty&1&&n(10,i=a.geometry),e.$$.dirty&1024&&n(6,s=Fs(i.x,i.y,i.w,i.h,i.rot)),e.$$.dirty&3072&&n(7,l=ao(i,o)),e.$$.dirty&1032&&n(5,r=ct(i.bounds,5/u))},[a,f,d,u,g,r,s,l,p,y,i,o,S,w,A]}class go extends me{constructor(t){super(),he(this,t,Js,Zs,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4})}}var ho=Object.prototype.hasOwnProperty;function Kt(e,t){var n,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((o=e.length)===t.length)for(;o--&&Kt(e[o],t[o]););return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(ho.call(e,n)&&++o&&!ho.call(t,n)||!(n in t)||!Kt(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const Qs=12,$s=(e,t)=>e.polygons.reduce((n,o,i)=>{const s=o.rings.reduce((l,r,a)=>{const f=r.points.map((d,u)=>{const g=u===r.points.length-1?r.points[0]:r.points[u+1],h=(d[0]+g[0])/2,p=(d[1]+g[1])/2,S=Math.sqrt(Math.pow(g[0]-h,2)+Math.pow(g[1]-p,2))>Qs/t;return{point:[h,p],visible:S,elementIdx:i,ringIdx:a,pointIdx:u}});return[...l,...f]},[]);return[...n,...s]},[]);function Wt(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function mo(e,t,n){const o=e.slice();return o[30]=t[n],o[32]=n,o}function po(e,t,n){const o=e.slice();return o[33]=t[n],o[35]=n,o}function _o(e,t,n){const o=e.slice();return o[29]=t[n],o[37]=n,o}function Zt(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function Jt(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function yo(e){let t,n,o,i;return{c(){t=P("circle"),c(t,"cx",n=e[29][0]),c(t,"cy",o=e[29][1]),c(t,"r",i=ut/e[3]),c(t,"class","svelte-1vxo6dc")},m(s,l){B(s,t,l)},p(s,l){l[0]&1088&&n!==(n=s[29][0])&&c(t,"cx",n),l[0]&1088&&o!==(o=s[29][1])&&c(t,"cy",o),l[0]&8&&i!==(i=ut/s[3])&&c(t,"r",i)},d(s){s&&Y(t)}}}function wo(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("mask"),n=P("rect"),r=P("circle"),c(n,"x",o=e[9].x),c(n,"y",i=e[9].y),c(n,"width",s=e[9].w),c(n,"height",l=e[9].h),c(n,"class","svelte-1vxo6dc"),c(r,"cx",a=e[29][0]),c(r,"cy",f=e[29][1]),c(r,"r",d=ut/e[3]),c(r,"class","svelte-1vxo6dc"),c(t,"id",`${e[18]}-${e[32]}-inner`),c(t,"class","a9s-multipolygon-editor-mask svelte-1vxo6dc")},m(u,g){B(u,t,g),j(t,n),j(t,r)},p(u,g){g[0]&512&&o!==(o=u[9].x)&&c(n,"x",o),g[0]&512&&i!==(i=u[9].y)&&c(n,"y",i),g[0]&512&&s!==(s=u[9].w)&&c(n,"width",s),g[0]&512&&l!==(l=u[9].h)&&c(n,"height",l),g[0]&1088&&a!==(a=u[29][0])&&c(r,"cx",a),g[0]&1088&&f!==(f=u[29][1])&&c(r,"cy",f),g[0]&8&&d!==(d=ut/u[3])&&c(r,"r",d)},d(u){u&&Y(t)}}}function bo(e){let t,n;function o(...i){return e[19](e[32],e[35],e[37],...i)}return t=new Be({props:{class:"a9s-corner-handle",x:e[29][0],y:e[29][1],scale:e[3],selected:e[8].some(o)}}),t.$on("pointerenter",e[11]),t.$on("pointerleave",e[12]),t.$on("pointerdown",e[14]),t.$on("pointerdown",function(){se(e[28](`HANDLE-${e[32]}-${e[35]}-${e[37]}`))&&e[28](`HANDLE-${e[32]}-${e[35]}-${e[37]}`).apply(this,arguments)}),t.$on("pointerup",e[15](e[32],e[35],e[37])),{c(){fe(t.$$.fragment)},m(i,s){le(t,i,s),n=!0},p(i,s){e=i;const l={};s[0]&32&&(l.x=e[29][0]),s[0]&32&&(l.y=e[29][1]),s[0]&8&&(l.scale=e[3]),s[0]&256&&(l.selected=e[8].some(o)),t.$set(l)},i(i){n||(V(t.$$.fragment,i),n=!0)},o(i){G(t.$$.fragment,i),n=!1},d(i){ae(t,i)}}}function Eo(e){let t,n,o=Ae(e[33].points),i=[];for(let l=0;l<o.length;l+=1)i[l]=bo(_o(e,o,l));const s=l=>G(i[l],1,1,()=>{i[l]=null});return{c(){for(let l=0;l<i.length;l+=1)i[l].c();t=Me()},m(l,r){for(let a=0;a<i.length;a+=1)i[a]&&i[a].m(l,r);B(l,t,r),n=!0},p(l,r){if(r[0]&268491048){o=Ae(l[33].points);let a;for(a=0;a<o.length;a+=1){const f=_o(l,o,a);i[a]?(i[a].p(f,r),V(i[a],1)):(i[a]=bo(f),i[a].c(),V(i[a],1),i[a].m(t.parentNode,t))}for(Ee(),a=o.length;a<i.length;a+=1)s(a);ve()}},i(l){if(!n){for(let r=0;r<o.length;r+=1)V(i[r]);n=!0}},o(l){i=i.filter(Boolean);for(let r=0;r<i.length;r+=1)G(i[r]);n=!1},d(l){l&&Y(t),Ge(i,l)}}}function vo(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,y,S,w,A=e[6]!==void 0&&!e[7]&&yo(Jt(e)),_=e[6]!==void 0&&!e[7]&&wo(Zt(e)),M=Ae(e[30].rings),L=[];for(let T=0;T<M.length;T+=1)L[T]=Eo(po(e,M,T));const C=T=>G(L[T],1,1,()=>{L[T]=null});return{c(){t=P("g"),n=P("defs"),o=P("mask"),i=P("rect"),f=P("path"),A&&A.c(),_&&_.c(),u=P("path"),h=P("path");for(let T=0;T<L.length;T+=1)L[T].c();c(i,"x",s=e[9].x),c(i,"y",l=e[9].y),c(i,"width",r=e[9].w),c(i,"height",a=e[9].h),c(i,"class","svelte-1vxo6dc"),c(f,"d",d=Le(e[30])),c(f,"class","svelte-1vxo6dc"),c(o,"id",`${e[18]}-${e[32]}-outer`),c(o,"class","a9s-multipolygon-editor-mask svelte-1vxo6dc"),c(u,"class","a9s-outer"),c(u,"mask",`url(#${e[18]}-${e[32]}-outer)`),c(u,"fill-rule","evenodd"),c(u,"d",g=Le(e[30])),c(h,"class","a9s-inner"),c(h,"mask",`url(#${e[18]}-${e[32]}-inner)`),c(h,"style",e[1]),c(h,"fill-rule","evenodd"),c(h,"d",p=Le(e[30]))},m(T,U){B(T,t,U),j(t,n),j(n,o),j(o,i),j(o,f),A&&A.m(o,null),_&&_.m(n,null),j(t,u),j(t,h);for(let N=0;N<L.length;N+=1)L[N]&&L[N].m(t,null);y=!0,S||(w=[ee(u,"pointerup",e[13]),ee(u,"pointerdown",function(){se(e[28]("SHAPE"))&&e[28]("SHAPE").apply(this,arguments)}),ee(h,"pointerup",e[13]),ee(h,"pointerdown",function(){se(e[28]("SHAPE"))&&e[28]("SHAPE").apply(this,arguments)})],S=!0)},p(T,U){if(e=T,(!y||U[0]&512&&s!==(s=e[9].x))&&c(i,"x",s),(!y||U[0]&512&&l!==(l=e[9].y))&&c(i,"y",l),(!y||U[0]&512&&r!==(r=e[9].w))&&c(i,"width",r),(!y||U[0]&512&&a!==(a=e[9].h))&&c(i,"height",a),(!y||U[0]&32&&d!==(d=Le(e[30])))&&c(f,"d",d),e[6]!==void 0&&!e[7]?A?A.p(Jt(e),U):(A=yo(Jt(e)),A.c(),A.m(o,null)):A&&(A.d(1),A=null),e[6]!==void 0&&!e[7]?_?_.p(Zt(e),U):(_=wo(Zt(e)),_.c(),_.m(n,null)):_&&(_.d(1),_=null),(!y||U[0]&32&&g!==(g=Le(e[30])))&&c(u,"d",g),(!y||U[0]&2)&&c(h,"style",e[1]),(!y||U[0]&32&&p!==(p=Le(e[30])))&&c(h,"d",p),U[0]&268491048){M=Ae(e[30].rings);let N;for(N=0;N<M.length;N+=1){const $=po(e,M,N);L[N]?(L[N].p($,U),V(L[N],1)):(L[N]=Eo($),L[N].c(),V(L[N],1),L[N].m(t,null))}for(Ee(),N=M.length;N<L.length;N+=1)C(N);ve()}},i(T){if(!y){for(let U=0;U<M.length;U+=1)V(L[U]);y=!0}},o(T){L=L.filter(Boolean);for(let U=0;U<L.length;U+=1)G(L[U]);y=!1},d(T){T&&Y(t),A&&A.d(),_&&_.d(),Ge(L,T),S=!1,Se(w)}}}function Ao(e){let t,n;return t=new jt({props:{x:e[29][0],y:e[29][1],scale:e[3]}}),t.$on("pointerdown",function(){se(e[17](e[6]))&&e[17](e[6]).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&1088&&(s.x=e[29][0]),i[0]&1088&&(s.y=e[29][1]),i[0]&8&&(s.scale=e[3]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function xs(e){let t,n,o,i=Ae(e[5].polygons),s=[];for(let a=0;a<i.length;a+=1)s[a]=vo(mo(e,i,a));const l=a=>G(s[a],1,1,()=>{s[a]=null});let r=e[6]!==void 0&&!e[7]&&Ao(Wt(e));return{c(){for(let a=0;a<s.length;a+=1)s[a].c();t=be(),r&&r.c(),n=Me()},m(a,f){for(let d=0;d<s.length;d+=1)s[d]&&s[d].m(a,f);B(a,t,f),r&&r.m(a,f),B(a,n,f),o=!0},p(a,f){if(f[0]&268763114){i=Ae(a[5].polygons);let d;for(d=0;d<i.length;d+=1){const u=mo(a,i,d);s[d]?(s[d].p(u,f),V(s[d],1)):(s[d]=vo(u),s[d].c(),V(s[d],1),s[d].m(t.parentNode,t))}for(Ee(),d=i.length;d<s.length;d+=1)l(d);ve()}a[6]!==void 0&&!a[7]?r?(r.p(Wt(a),f),f[0]&192&&V(r,1)):(r=Ao(Wt(a)),r.c(),V(r,1),r.m(n.parentNode,n)):r&&(Ee(),G(r,1,1,()=>{r=null}),ve())},i(a){if(!o){for(let f=0;f<i.length;f+=1)V(s[f]);V(r),o=!0}},o(a){s=s.filter(Boolean);for(let f=0;f<s.length;f+=1)G(s[f]);G(r),o=!1},d(a){a&&(Y(t),Y(n)),Ge(s,a),r&&r.d(a)}}}function er(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[16],svgEl:e[4],$$slots:{default:[xs,({grab:o})=>({28:o}),({grab:o})=>[o?268435456:0]]},$$scope:{ctx:e}}}),t.$on("change",e[20]),t.$on("grab",e[21]),t.$on("release",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&1&&(s.shape=o[0]),i[0]&4&&(s.transform=o[2]),i[0]&16&&(s.svgEl=o[4]),i[0]&268437482|i[1]&128&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const tr=250,nr=1e3,ut=4.5;function or(e,t,n){let o,i,s;const l=De();let{shape:r}=t,{computedStyle:a}=t,{transform:f}=t,{viewportScale:d=1}=t,{svgEl:u}=t,g,h=!1,p,y=[];const S=()=>n(7,h=!0),w=()=>n(7,h=!1),A=b=>{if(y.length>0||!i.some(Z=>Z.visible)){n(6,g=void 0);return}const[I,k]=f.elementToImage(b.offsetX,b.offsetY),O=Z=>Math.pow(Z[0]-I,2)+Math.pow(Z[1]-k,2),z=Ln(o).reduce((Z,te)=>O(te)<O(Z)?te:Z),X=i.filter(Z=>Z.visible).reduce((Z,te)=>O(te.point)<O(Z.point)?te:Z),x=Math.pow(nr/d,2);O(z)<x||O(X.point)<x?n(6,g=i.indexOf(X)):n(6,g=void 0)},_=()=>{document.activeElement!==u&&u.focus()},M=()=>{n(8,y=[]),_()},L=b=>{n(7,h=!0),b.preventDefault(),b.stopPropagation(),p=performance.now()},C=(b,I,k)=>O=>{if(!p||Ie||performance.now()-p>tr)return;const z=x=>x.polygon===b&&x.ring===I&&x.point===k,X=y.some(z);O.metaKey||O.ctrlKey||O.shiftKey?X?n(8,y=y.filter(x=>!z(x))):n(8,y=[...y,{polygon:b,ring:I,point:k}]):X&&y.length>1?n(8,y=[{polygon:b,ring:I,point:k}]):X?n(8,y=[]):n(8,y=[{polygon:b,ring:I,point:k}]),_()},T=(b,I,k)=>{_();const O=b.geometry.polygons;let z;if(I==="SHAPE")z=O.map(X=>{const x=X.rings.map((Z,te)=>({points:Z.points.map((ie,ke)=>[ie[0]+k[0],ie[1]+k[1]])})),W=ue(x[0].points);return{rings:x,bounds:W}});else{const[X,x,W,Z]=I.split("-").map(te=>parseInt(te));z=O.map((te,ye)=>{if(ye===x){const ie=te.rings.map((H,de)=>de===W?{points:H.points.map((we,ce)=>ce===Z?[we[0]+k[0],we[1]+k[1]]:we)}:H),ke=ue(ie[0].points);return{rings:ie,bounds:ke}}else return te})}return{...b,geometry:{polygons:z,bounds:st(z)}}},U=b=>async I=>{I.stopPropagation();const k=i[b],O=o.polygons.map((X,x)=>{if(x===k.elementIdx){const W=X.rings.map((te,ye)=>ye===k.ringIdx?{points:[...te.points.slice(0,k.pointIdx+1),k.point,...te.points.slice(k.pointIdx+1)]}:te),Z=ue(W[0].points);return{rings:W,bounds:Z}}else return X});l("change",{...r,geometry:{polygons:O,bounds:st(O)}}),await Sn();const z=[...document.querySelectorAll(".a9s-handle")][b+1];if(z!=null&&z.firstChild){const X=new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,clientX:I.clientX,clientY:I.clientY,pointerId:I.pointerId,pointerType:I.pointerType,isPrimary:I.isPrimary,buttons:I.buttons});z.firstChild.dispatchEvent(X)}},N=()=>{const b=o.polygons.map((k,O)=>{if(y.some(X=>X.polygon===O)){const X=k.rings.map((W,Z)=>{const te=y.filter(ye=>ye.polygon===O&&ye.ring===Z);return te.length&&W.points.length-te.length>=3?{points:W.points.filter((ie,ke)=>!te.some(H=>H.point===ke))}:W}),x=ue(X[0].points);return{rings:X,bounds:x}}else return k});!Kt(o.polygons,b)&&(l("change",{...r,geometry:{polygons:b,bounds:st(b)}}),n(8,y=[]))};Oe(()=>{if(Ie)return;const b=I=>{(I.key==="Delete"||I.key==="Backspace")&&(I.preventDefault(),N())};return u.addEventListener("pointermove",A),u.addEventListener("keydown",b),()=>{u.removeEventListener("pointermove",A),u.removeEventListener("keydown",b)}});const $=`polygon-mask-${Math.random().toString(36).substring(2,12)}`,F=(b,I,k,{polygon:O,ring:z,point:X})=>O===b&&z===I&&X===k;function v(b){ge.call(this,e,b)}function E(b){ge.call(this,e,b)}function m(b){ge.call(this,e,b)}return e.$$set=b=>{"shape"in b&&n(0,r=b.shape),"computedStyle"in b&&n(1,a=b.computedStyle),"transform"in b&&n(2,f=b.transform),"viewportScale"in b&&n(3,d=b.viewportScale),"svgEl"in b&&n(4,u=b.svgEl)},e.$$.update=()=>{e.$$.dirty[0]&1&&n(5,o=r.geometry),e.$$.dirty[0]&40&&n(10,i=Ie?[]:$s(o,d)),e.$$.dirty[0]&40&&n(9,s=ct(o.bounds,ut/d))},[r,a,f,d,u,o,g,h,y,s,i,S,w,M,L,C,T,U,$,F,v,E,m]}class ir extends me{constructor(t){super(),he(this,t,or,er,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4},null,[-1,-1])}}const So=new Map([[Q.RECTANGLE,go],[Q.POLYGON,ro],[Q.MULTIPOLYGON,ir]]),Mo=e=>So.get(e.type),ko=(e,t)=>So.set(e,t);function sr(e,t,n){let o;const i=De();let{annotation:s}=t,{editor:l}=t,{style:r}=t,{target:a}=t,{transform:f}=t,{viewportScale:d}=t,u;return Oe(()=>(n(6,u=new l({target:a,props:{shape:s.target.selector,computedStyle:o,transform:f,viewportScale:d,svgEl:a.closest("svg")}})),u.$on("change",g=>{u.$$set({shape:g.detail}),i("change",g.detail)}),u.$on("grab",g=>i("grab",g.detail)),u.$on("release",g=>i("release",g.detail)),()=>{u.$destroy()})),e.$$set=g=>{"annotation"in g&&n(0,s=g.annotation),"editor"in g&&n(1,l=g.editor),"style"in g&&n(2,r=g.style),"target"in g&&n(3,a=g.target),"transform"in g&&n(4,f=g.transform),"viewportScale"in g&&n(5,d=g.viewportScale)},e.$$.update=()=>{e.$$.dirty&5&&n(7,o=ze(s,r,{selected:!0,hovered:!0})),e.$$.dirty&65&&s&&(u==null||u.$set({shape:s.target.selector})),e.$$.dirty&80&&u&&u.$set({transform:f}),e.$$.dirty&96&&u&&u.$set({viewportScale:d}),e.$$.dirty&192&&u&&o&&u.$set({computedStyle:o})},[s,l,r,a,f,d,u,o]}class To extends me{constructor(t){super(),he(this,t,sr,null,re,{annotation:0,editor:1,style:2,target:3,transform:4,viewportScale:5})}}function rr(e,t,n){const o=De();let{drawingMode:i}=t,{target:s}=t,{tool:l}=t,{transform:r}=t,{viewportScale:a}=t,f;return Oe(()=>{const d=s.closest("svg"),u=[],g=(h,p,y)=>{d==null||d.addEventListener(h,p,y),u.push(()=>d==null?void 0:d.removeEventListener(h,p,y))};return n(5,f=new l({target:s,props:{addEventListener:g,drawingMode:i,transform:r,viewportScale:a}})),f.$on("create",h=>o("create",h.detail)),()=>{u.forEach(h=>h()),f.$destroy()}}),e.$$set=d=>{"drawingMode"in d&&n(0,i=d.drawingMode),"target"in d&&n(1,s=d.target),"tool"in d&&n(2,l=d.tool),"transform"in d&&n(3,r=d.transform),"viewportScale"in d&&n(4,a=d.viewportScale)},e.$$.update=()=>{e.$$.dirty&40&&f&&f.$set({transform:r}),e.$$.dirty&48&&f&&f.$set({viewportScale:a})},[i,s,l,r,a,f]}class Po extends me{constructor(t){super(),he(this,t,rr,null,re,{drawingMode:0,target:1,tool:2,transform:3,viewportScale:4})}}function Lo(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("rect"),f=P("rect"),d=P("rect"),c(o,"class","rect-mask-bg svelte-1a76qe7"),c(o,"x",i=e[1]-e[5]),c(o,"y",s=e[2]-e[5]),c(o,"width",l=e[3]+2*e[5]),c(o,"height",r=e[4]+2*e[5]),c(a,"class","rect-mask-fg svelte-1a76qe7"),c(a,"x",e[1]),c(a,"y",e[2]),c(a,"width",e[3]),c(a,"height",e[4]),c(n,"id",e[6]),c(n,"class","a9s-rubberband-rectangle-mask svelte-1a76qe7"),c(f,"class","a9s-outer"),c(f,"mask",`url(#${e[6]})`),c(f,"x",e[1]),c(f,"y",e[2]),c(f,"width",e[3]),c(f,"height",e[4]),c(d,"class","a9s-inner"),c(d,"x",e[1]),c(d,"y",e[2]),c(d,"width",e[3]),c(d,"height",e[4])},m(u,g){B(u,t,g),j(t,n),j(n,o),j(n,a),B(u,f,g),B(u,d,g)},p(u,g){g&34&&i!==(i=u[1]-u[5])&&c(o,"x",i),g&36&&s!==(s=u[2]-u[5])&&c(o,"y",s),g&40&&l!==(l=u[3]+2*u[5])&&c(o,"width",l),g&48&&r!==(r=u[4]+2*u[5])&&c(o,"height",r),g&2&&c(a,"x",u[1]),g&4&&c(a,"y",u[2]),g&8&&c(a,"width",u[3]),g&16&&c(a,"height",u[4]),g&2&&c(f,"x",u[1]),g&4&&c(f,"y",u[2]),g&8&&c(f,"width",u[3]),g&16&&c(f,"height",u[4]),g&2&&c(d,"x",u[1]),g&4&&c(d,"y",u[2]),g&8&&c(d,"width",u[3]),g&16&&c(d,"height",u[4])},d(u){u&&(Y(t),Y(f),Y(d))}}}function lr(e){let t,n=e[0]&&Lo(e);return{c(){t=P("g"),n&&n.c(),c(t,"class","a9s-annotation a9s-rubberband")},m(o,i){B(o,t,i),n&&n.m(t,null)},p(o,[i]){o[0]?n?n.p(o,i):(n=Lo(o),n.c(),n.m(t,null)):n&&(n.d(1),n=null)},i:q,o:q,d(o){o&&Y(t),n&&n.d()}}}function ar(e,t,n){let o;const i=De();let{addEventListener:s}=t,{drawingMode:l}=t,{transform:r}=t,{viewportScale:a=1}=t,f,d,u,g,h,p,y;const S=L=>{const C=L;f=performance.now(),l==="drag"&&(n(0,d=r.elementToImage(C.offsetX,C.offsetY)),u=d,n(1,g=d[0]),n(2,h=d[1]),n(3,p=1),n(4,y=1))},w=L=>{const C=L;d&&(u=r.elementToImage(C.offsetX,C.offsetY),n(1,g=Math.min(u[0],d[0])),n(2,h=Math.min(u[1],d[1])),n(3,p=Math.abs(u[0]-d[0])),n(4,y=Math.abs(u[1]-d[1])))},A=L=>{const C=L,T=performance.now()-f;if(l==="click"){if(T>300)return;d?_():(n(0,d=r.elementToImage(C.offsetX,C.offsetY)),u=d,n(1,g=d[0]),n(2,h=d[1]),n(3,p=1),n(4,y=1))}else d&&(T>300||p*y>100?(C.stopPropagation(),_()):(n(0,d=void 0),u=void 0))},_=()=>{if(p*y>15){const L={type:Q.RECTANGLE,geometry:{bounds:{minX:g,minY:h,maxX:g+p,maxY:h+y},rot:0,x:g,y:h,w:p,h:y}};i("create",L)}n(0,d=void 0),u=void 0};Oe(()=>{s("pointerdown",S),s("pointermove",w),s("pointerup",A,!0)});const M=`rect-mask-${Math.random().toString(36).substring(2,12)}`;return e.$$set=L=>{"addEventListener"in L&&n(7,s=L.addEventListener),"drawingMode"in L&&n(8,l=L.drawingMode),"transform"in L&&n(9,r=L.transform),"viewportScale"in L&&n(10,a=L.viewportScale)},e.$$.update=()=>{e.$$.dirty&1024&&n(5,o=2/a)},[d,g,h,p,y,o,M,s,l,r,a]}class Io extends me{constructor(t){super(),he(this,t,ar,lr,re,{addEventListener:7,drawingMode:8,transform:9,viewportScale:10})}}function Qt(e){const t=e.slice(),n=t[2].map(o=>o.join(",")).join(" ");return t[19]=n,t}function Co(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,y=e[1]&&Oo(e);return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),d=P("polygon"),g=P("polygon"),y&&y.c(),p=Me(),c(o,"x",i=e[3].x),c(o,"y",s=e[3].y),c(o,"width",l=e[3].w),c(o,"height",r=e[3].h),c(o,"class","svelte-18wrg3t"),c(a,"points",f=e[19]),c(a,"class","svelte-18wrg3t"),c(n,"id",e[5]),c(n,"class","a9s-rubberband-polygon-mask svelte-18wrg3t"),c(d,"class","a9s-outer"),c(d,"mask",`url(#${e[5]})`),c(d,"points",u=e[19]),c(g,"class","a9s-inner"),c(g,"points",h=e[19])},m(S,w){B(S,t,w),j(t,n),j(n,o),j(n,a),B(S,d,w),B(S,g,w),y&&y.m(S,w),B(S,p,w)},p(S,w){w&8&&i!==(i=S[3].x)&&c(o,"x",i),w&8&&s!==(s=S[3].y)&&c(o,"y",s),w&8&&l!==(l=S[3].w)&&c(o,"width",l),w&8&&r!==(r=S[3].h)&&c(o,"height",r),w&4&&f!==(f=S[19])&&c(a,"points",f),w&4&&u!==(u=S[19])&&c(d,"points",u),w&4&&h!==(h=S[19])&&c(g,"points",h),S[1]?y?y.p(S,w):(y=Oo(S),y.c(),y.m(p.parentNode,p)):y&&(y.d(1),y=null)},d(S){S&&(Y(t),Y(d),Y(g),Y(p)),y&&y.d(S)}}}function Oo(e){let t,n,o;return{c(){t=P("circle"),c(t,"class","a9s-handle svelte-18wrg3t"),c(t,"cx",n=e[0][0][0]),c(t,"cy",o=e[0][0][1]),c(t,"r",e[4])},m(i,s){B(i,t,s)},p(i,s){s&1&&n!==(n=i[0][0][0])&&c(t,"cx",n),s&1&&o!==(o=i[0][0][1])&&c(t,"cy",o),s&16&&c(t,"r",i[4])},d(i){i&&Y(t)}}}function cr(e){let t,n=e[3]&&Co(Qt(e));return{c(){t=P("g"),n&&n.c(),c(t,"class","a9s-annotation a9s-rubberband")},m(o,i){B(o,t,i),n&&n.m(t,null)},p(o,[i]){o[3]?n?n.p(Qt(o),i):(n=Co(Qt(o)),n.c(),n.m(t,null)):n&&(n.d(1),n=null)},i:q,o:q,d(o){o&&Y(t),n&&n.d()}}}const fr=20,ur=1500;function dr(e,t,n){let o,i,s;const l=De();let{addEventListener:r}=t,{drawingMode:a}=t,{transform:f}=t,{viewportScale:d=1}=t,u,g=[],h,p,y=!1;const S=C=>{const T=C,{timeStamp:U,offsetX:N,offsetY:$}=T;if(u={timeStamp:U,offsetX:N,offsetY:$},a==="drag"&&g.length===0){const F=f.elementToImage(T.offsetX,T.offsetY);g.push(F),n(10,h=F)}},w=C=>{const T=C;if(p&&clearTimeout(p),g.length>0){if(n(10,h=f.elementToImage(T.offsetX,T.offsetY)),g.length>2){const U=it(h,g[0])*d;n(1,y=U<fr)}T.pointerType==="touch"&&(p=setTimeout(()=>{_()},ur))}},A=C=>{const T=C;if(p&&clearTimeout(p),a==="click"){const U=T.timeStamp-u.timeStamp,N=it([u.offsetX,u.offsetY],[T.offsetX,T.offsetY]);if(U>300||N>15)return;if(y)M();else if(g.length===0){const $=f.elementToImage(T.offsetX,T.offsetY);g.push($),n(10,h=$)}else h&&g.push(h)}else{if(!h)return;if(g.length===1&&it(g[0],h)<=4){n(0,g=[]),n(10,h=void 0);return}T.stopImmediatePropagation(),y?M():g.push(h)}},_=()=>{if(!h)return;const C=g.slice(0,-1);if(C.length<3)return;const T={type:Q.POLYGON,geometry:{bounds:ue(g),points:C}};_t(T)>4&&(n(0,g=[]),n(10,h=void 0),l("create",T))},M=()=>{const C={type:Q.POLYGON,geometry:{bounds:ue(g),points:[...g]}};n(0,g=[]),n(10,h=void 0),l("create",C)};Oe(()=>{r("pointerdown",S,!0),r("pointermove",w),r("pointerup",A,!0),r("dblclick",_,!0)});const L=`polygon-mask-${Math.random().toString(36).substring(2,12)}`;return e.$$set=C=>{"addEventListener"in C&&n(6,r=C.addEventListener),"drawingMode"in C&&n(7,a=C.drawingMode),"transform"in C&&n(8,f=C.transform),"viewportScale"in C&&n(9,d=C.viewportScale)},e.$$.update=()=>{e.$$.dirty&512&&n(4,o=4/d),e.$$.dirty&1027&&n(2,i=h?y?g:[...g,h]:[]),e.$$.dirty&516&&n(3,s=i.length>0?ct(ue(i),2/d):void 0)},[g,y,i,s,o,L,r,a,f,d,h]}class gr extends me{constructor(t){super(),he(this,t,dr,cr,re,{addEventListener:6,drawingMode:7,transform:8,viewportScale:9})}}const $t=new Map([["rectangle",{tool:Io}],["polygon",{tool:gr}]]),xt=()=>[...$t.keys()],en=e=>$t.get(e),Do=(e,t,n={})=>$t.set(e,{tool:t,opts:n});function hr(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("ellipse"),i=P("ellipse"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"cx",e[2]),c(n,"cy",e[3]),c(n,"rx",e[4]),c(n,"ry",e[5]),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"cx",e[2]),c(i,"cy",e[3]),c(i,"rx",e[4]),c(i,"ry",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),j(t,n),j(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&Y(t)}}}function mr(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{cx:r,cy:a,rx:f,ry:d}=s;return e.$$set=u=>{"annotation"in u&&n(0,i=u.annotation),"geom"in u&&n(6,s=u.geom),"style"in u&&n(7,l=u.style)},e.$$.update=()=>{e.$$.dirty&129&&n(1,o=ze(i,l))},[i,o,r,a,f,d,s,l]}class pr extends me{constructor(t){super(),he(this,t,mr,hr,re,{annotation:0,geom:6,style:7})}}function _r(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("line"),i=P("line"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"x1",e[2]),c(n,"y1",e[3]),c(n,"x2",e[4]),c(n,"y2",e[5]),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"x1",e[2]),c(i,"y1",e[3]),c(i,"x2",e[4]),c(i,"y2",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),j(t,n),j(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&Y(t)}}}function yr(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{points:r}=s,[[a,f],[d,u]]=r;return e.$$set=g=>{"annotation"in g&&n(0,i=g.annotation),"geom"in g&&n(6,s=g.geom),"style"in g&&n(7,l=g.style)},e.$$.update=()=>{e.$$.dirty&129&&n(1,o=ze(i,l))},[i,o,a,f,d,u,s,l]}class wr extends me{constructor(t){super(),he(this,t,yr,_r,re,{annotation:0,geom:6,style:7})}}function No(e,t,n){const o=e.slice();return o[5]=t[n],o}function Ro(e){let t,n,o;return{c(){t=P("path"),o=P("path"),c(t,"class","a9s-outer"),c(t,"style",n=e[1]?"display:none;":void 0),c(t,"fill-rule","evenodd"),c(t,"d",Le(e[5])),c(o,"class","a9s-inner"),c(o,"style",e[1]),c(o,"fill-rule","evenodd"),c(o,"d",Le(e[5]))},m(i,s){B(i,t,s),B(i,o,s)},p(i,s){s&2&&n!==(n=i[1]?"display:none;":void 0)&&c(t,"style",n),s&2&&c(o,"style",i[1])},d(i){i&&(Y(t),Y(o))}}}function br(e){let t,n,o=Ae(e[2]),i=[];for(let s=0;s<o.length;s+=1)i[s]=Ro(No(e,o,s));return{c(){t=P("g");for(let s=0;s<i.length;s+=1)i[s].c();c(t,"class","a9s-annotation"),c(t,"data-id",n=e[0].id)},m(s,l){B(s,t,l);for(let r=0;r<i.length;r+=1)i[r]&&i[r].m(t,null)},p(s,[l]){if(l&6){o=Ae(s[2]);let r;for(r=0;r<o.length;r+=1){const a=No(s,o,r);i[r]?i[r].p(a,l):(i[r]=Ro(a),i[r].c(),i[r].m(t,null))}for(;r<i.length;r+=1)i[r].d(1);i.length=o.length}l&1&&n!==(n=s[0].id)&&c(t,"data-id",n)},i:q,o:q,d(s){s&&Y(t),Ge(i,s)}}}function Er(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{polygons:r}=s;return e.$$set=a=>{"annotation"in a&&n(0,i=a.annotation),"geom"in a&&n(3,s=a.geom),"style"in a&&n(4,l=a.style)},e.$$.update=()=>{e.$$.dirty&17&&n(1,o=ze(i,l))},[i,o,r,s,l]}class vr extends me{constructor(t){super(),he(this,t,Er,br,re,{annotation:0,geom:3,style:4})}}function Ar(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("polygon"),i=P("polygon"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"points",e[2].map(Sr).join(" ")),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"points",e[2].map(Mr).join(" ")),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),j(t,n),j(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&Y(t)}}}const Sr=e=>e.join(","),Mr=e=>e.join(",");function kr(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{points:r}=s;return e.$$set=a=>{"annotation"in a&&n(0,i=a.annotation),"geom"in a&&n(3,s=a.geom),"style"in a&&n(4,l=a.style)},e.$$.update=()=>{e.$$.dirty&17&&n(1,o=ze(i,l))},[i,o,r,s,l]}class Tr extends me{constructor(t){super(),he(this,t,kr,Ar,re,{annotation:0,geom:3,style:4})}}function Pr(e){let t,n,o,i,s,l,r;return{c(){t=P("g"),n=P("path"),s=P("path"),c(n,"class",o=Ke(`a9s-outer ${e[1]}`)+" svelte-1w0132l"),c(n,"style",i=e[3]?"display:none;":void 0),c(n,"d",e[2]),c(s,"class",l=Ke(`a9s-inner ${e[1]}`)+" svelte-1w0132l"),c(s,"style",e[3]),c(s,"d",e[2]),c(t,"class","a9s-annotation"),c(t,"data-id",r=e[0].id)},m(a,f){B(a,t,f),j(t,n),j(t,s)},p(a,[f]){f&2&&o!==(o=Ke(`a9s-outer ${a[1]}`)+" svelte-1w0132l")&&c(n,"class",o),f&8&&i!==(i=a[3]?"display:none;":void 0)&&c(n,"style",i),f&4&&c(n,"d",a[2]),f&2&&l!==(l=Ke(`a9s-inner ${a[1]}`)+" svelte-1w0132l")&&c(s,"class",l),f&8&&c(s,"style",a[3]),f&4&&c(s,"d",a[2]),f&1&&r!==(r=a[0].id)&&c(t,"data-id",r)},i:q,o:q,d(a){a&&Y(t)}}}function Lr(e,t,n){let o,i,s,{annotation:l}=t,{geom:r}=t,{style:a}=t;return e.$$set=f=>{"annotation"in f&&n(0,l=f.annotation),"geom"in f&&n(4,r=f.geom),"style"in f&&n(5,a=f.style)},e.$$.update=()=>{e.$$.dirty&33&&n(3,o=ze(l,a)),e.$$.dirty&16&&n(2,i=Vt(r)),e.$$.dirty&16&&n(1,s=r.closed?"closed":"open")},[l,s,i,o,r,a]}class Ir extends me{constructor(t){super(),he(this,t,Lr,Pr,re,{annotation:0,geom:4,style:5})}}function Cr(e){let t,n,o,i,s,l;return{c(){t=P("g"),n=P("g"),o=P("rect"),s=P("rect"),c(o,"class","a9s-outer"),c(o,"style",i=e[6]?"display:none;":void 0),c(o,"x",e[4]),c(o,"y",e[2]),c(o,"width",e[3]),c(o,"height",e[1]),c(s,"class","a9s-inner"),c(s,"style",e[6]),c(s,"x",e[4]),c(s,"y",e[2]),c(s,"width",e[3]),c(s,"height",e[1]),c(n,"transform",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",l=e[0].id)},m(r,a){B(r,t,a),j(t,n),j(n,o),j(n,s)},p(r,[a]){a&64&&i!==(i=r[6]?"display:none;":void 0)&&c(o,"style",i),a&16&&c(o,"x",r[4]),a&4&&c(o,"y",r[2]),a&8&&c(o,"width",r[3]),a&2&&c(o,"height",r[1]),a&64&&c(s,"style",r[6]),a&16&&c(s,"x",r[4]),a&4&&c(s,"y",r[2]),a&8&&c(s,"width",r[3]),a&2&&c(s,"height",r[1]),a&32&&c(n,"transform",r[5]),a&1&&l!==(l=r[0].id)&&c(t,"data-id",l)},i:q,o:q,d(r){r&&Y(t)}}}function Or(e,t,n){let o,i,s,l,r,a,f,{annotation:d}=t,{geom:u}=t,{style:g}=t;return e.$$set=h=>{"annotation"in h&&n(0,d=h.annotation),"geom"in h&&n(7,u=h.geom),"style"in h&&n(8,g=h.style)},e.$$.update=()=>{e.$$.dirty&257&&n(6,o=ze(d,g)),e.$$.dirty&128&&n(4,{x:i,y:s,w:l,h:r,rot:a}=u,i,(n(2,s),n(7,u)),(n(3,l),n(7,u)),(n(1,r),n(7,u)),(n(9,a),n(7,u))),e.$$.dirty&542&&n(5,f=(a??0)!==0?`translate(${i+l/2}, ${s+r/2}) rotate(${(a??0)*180/Math.PI}) translate(${-(i+l/2)}, ${-(s+r/2)})`:void 0)},[d,r,s,l,i,f,o,u,g,a]}class Dr extends me{constructor(t){super(),he(this,t,Or,Cr,re,{annotation:0,geom:7,style:8})}}const Nr={elementToImage:(e,t)=>[e,t]},Yo=e=>({elementToImage:(t,n)=>{const o=e.getBoundingClientRect(),i=e.createSVGPoint();i.x=t+o.x,i.y=n+o.y;const{x:s,y:l}=i.matrixTransform(e.getScreenCTM().inverse());return[s,l]}}),Rr=250,Bo=(e,t)=>{const n=De();let o;return{onPointerDown:()=>o=performance.now(),onPointerUp:l=>{if(performance.now()-o<Rr){const{x:a,y:f}=tn(l,e),d=Ie?10:2,u=t.getAt(a,f,void 0,d);u?n("click",{originalEvent:l,annotation:u}):n("click",{originalEvent:l})}}}},tn=(e,t)=>{const n=t.createSVGPoint(),o=t.getBoundingClientRect(),i=e.clientX-o.x,s=e.clientY-o.y,{left:l,top:r}=t.getBoundingClientRect();return n.x=i+l,n.y=s+r,n.matrixTransform(t.getScreenCTM().inverse())};function Vo(e,t,n){const o=e.slice();return o[39]=t[n],o}function Uo(e,t,n){const o=e.slice();return o[42]=t[n],o}function nn(e){const t=e.slice(),n=t[42].target.selector;return t[45]=n,t}function Xo(e){let t=e[42],n,o,i=Ho(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&131072&&re(t,t=s[42])?(Ee(),G(i,1,1,q),ve(),i=Ho(s),i.c(),V(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(V(i),o=!0)},o(s){G(i),o=!1},d(s){s&&Y(n),i.d(s)}}}function Yr(e){let t,n;return t=new wr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Br(e){let t,n;return t=new Ir({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Vr(e){let t,n;return t=new vr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Ur(e){let t,n;return t=new Tr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Xr(e){let t,n;return t=new Dr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Hr(e){var o;let t,n;return t=new pr({props:{annotation:e[42],geom:(o=e[45])==null?void 0:o.geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(i,s){le(t,i,s),n=!0},p(i,s){var r;const l={};s[0]&131072&&(l.annotation=i[42]),s[0]&131072&&(l.geom=(r=i[45])==null?void 0:r.geometry),s[0]&2&&(l.style=i[1]),t.$set(l)},i(i){n||(V(t.$$.fragment,i),n=!0)},o(i){G(t.$$.fragment,i),n=!1},d(i){ae(t,i)}}}function Ho(e){let t,n,o,i;const s=[Hr,Xr,Ur,Vr,Br,Yr],l=[];function r(a,f){var d,u,g,h,p,y;return((d=a[45])==null?void 0:d.type)===Q.ELLIPSE?0:((u=a[45])==null?void 0:u.type)===Q.RECTANGLE?1:((g=a[45])==null?void 0:g.type)===Q.POLYGON?2:((h=a[45])==null?void 0:h.type)===Q.MULTIPOLYGON?3:((p=a[45])==null?void 0:p.type)===Q.POLYLINE?4:((y=a[45])==null?void 0:y.type)===Q.LINE?5:-1}return~(t=r(e))&&(n=l[t]=s[t](e)),{c(){n&&n.c(),o=Me()},m(a,f){~t&&l[t].m(a,f),B(a,o,f),i=!0},p(a,f){let d=t;t=r(a),t===d?~t&&l[t].p(a,f):(n&&(Ee(),G(l[d],1,1,()=>{l[d]=null}),ve()),~t?(n=l[t],n?n.p(a,f):(n=l[t]=s[t](a),n.c()),V(n,1),n.m(o.parentNode,o)):n=null)},i(a){i||(V(n),i=!0)},o(a){G(n),i=!1},d(a){a&&Y(o),~t&&l[t].d(a)}}}function Go(e){let t=rt(e[42])&&!e[10](e[42]),n,o,i=t&&Xo(nn(e));return{c(){i&&i.c(),n=Me()},m(s,l){i&&i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&132096&&(t=rt(s[42])&&!s[10](s[42])),t?i?(i.p(nn(s),l),l[0]&132096&&V(i,1)):(i=Xo(nn(s)),i.c(),V(i,1),i.m(n.parentNode,n)):i&&(Ee(),G(i,1,1,()=>{i=null}),ve())},i(s){o||(V(i),o=!0)},o(s){G(i),o=!1},d(s){s&&Y(n),i&&i.d(s)}}}function jo(e){let t,n,o,i;const s=[jr,Gr],l=[];function r(a,f){return a[6]?0:a[15]&&a[0]?1:-1}return~(t=r(e))&&(n=l[t]=s[t](e)),{c(){n&&n.c(),o=Me()},m(a,f){~t&&l[t].m(a,f),B(a,o,f),i=!0},p(a,f){let d=t;t=r(a),t===d?~t&&l[t].p(a,f):(n&&(Ee(),G(l[d],1,1,()=>{l[d]=null}),ve()),~t?(n=l[t],n?n.p(a,f):(n=l[t]=s[t](a),n.c()),V(n,1),n.m(o.parentNode,o)):n=null)},i(a){i||(V(n),i=!0)},o(a){G(n),i=!1},d(a){a&&Y(o),~t&&l[t].d(a)}}}function Gr(e){let t=`${e[2]}-${e[7]}`,n,o,i=Fo(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&132&&re(t,t=`${s[2]}-${s[7]}`)?(Ee(),G(i,1,1,q),ve(),i=Fo(s),i.c(),V(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(V(i),o=!0)},o(s){G(i),o=!1},d(s){s&&Y(n),i.d(s)}}}function jr(e){let t,n,o=Ae(e[6]),i=[];for(let l=0;l<o.length;l+=1)i[l]=qo(Vo(e,o,l));const s=l=>G(i[l],1,1,()=>{i[l]=null});return{c(){for(let l=0;l<i.length;l+=1)i[l].c();t=Me()},m(l,r){for(let a=0;a<i.length;a+=1)i[a]&&i[a].m(l,r);B(l,t,r),n=!0},p(l,r){if(r[0]&8659266){o=Ae(l[6]);let a;for(a=0;a<o.length;a+=1){const f=Vo(l,o,a);i[a]?(i[a].p(f,r),V(i[a],1)):(i[a]=qo(f),i[a].c(),V(i[a],1),i[a].m(t.parentNode,t))}for(Ee(),a=o.length;a<i.length;a+=1)s(a);ve()}},i(l){if(!n){for(let r=0;r<o.length;r+=1)V(i[r]);n=!0}},o(l){i=i.filter(Boolean);for(let r=0;r<i.length;r+=1)G(i[r]);n=!1},d(l){l&&Y(t),Ge(i,l)}}}function Fo(e){let t,n;return t=new Po({props:{target:e[8],tool:e[15],drawingMode:e[14],transform:e[13],viewportScale:e[18]}}),t.$on("create",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&256&&(s.target=o[8]),i[0]&32768&&(s.tool=o[15]),i[0]&16384&&(s.drawingMode=o[14]),i[0]&8192&&(s.transform=o[13]),i[0]&262144&&(s.viewportScale=o[18]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function zo(e){let t,n;return t=new To({props:{target:e[8],editor:e[39].editor,annotation:e[39].annotation,style:e[1],transform:e[13],viewportScale:e[18]}}),t.$on("change",function(){se(e[23](e[39].annotation))&&e[23](e[39].annotation).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&256&&(s.target=e[8]),i[0]&64&&(s.editor=e[39].editor),i[0]&64&&(s.annotation=e[39].annotation),i[0]&2&&(s.style=e[1]),i[0]&8192&&(s.transform=e[13]),i[0]&262144&&(s.viewportScale=e[18]),t.$set(s)},i(o){n||(V(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function qo(e){let t=e[39].annotation.id,n,o,i=zo(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&64&&re(t,t=s[39].annotation.id)?(Ee(),G(i,1,1,q),ve(),i=zo(s),i.c(),V(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(V(i),o=!0)},o(s){G(i),o=!1},d(s){s&&Y(n),i.d(s)}}}function Fr(e){let t,n,o,i,s,l,r=Ae(e[17].filter(e[34])),a=[];for(let u=0;u<r.length;u+=1)a[u]=Go(Uo(e,r,u));const f=u=>G(a[u],1,1,()=>{a[u]=null});let d=e[8]&&jo(e);return{c(){t=P("svg"),n=P("g");for(let u=0;u<a.length;u+=1)a[u].c();o=P("g"),d&&d.c(),c(o,"class","drawing"),c(t,"role","application"),c(t,"tabindex",0),c(t,"class","a9s-annotationlayer"),Pe(t,"drawing",e[15]),Pe(t,"editing",e[5]),Pe(t,"hidden",!e[3]),Pe(t,"hover",e[16])},m(u,g){B(u,t,g),j(t,n);for(let h=0;h<a.length;h+=1)a[h]&&a[h].m(n,null);j(t,o),d&&d.m(o,null),e[35](o),e[36](t),i=!0,s||(l=[ee(t,"pointerup",function(){se(e[11])&&e[11].apply(this,arguments)}),ee(t,"pointerdown",function(){se(e[12])&&e[12].apply(this,arguments)}),ee(t,"pointermove",e[24])],s=!0)},p(u,g){if(e=u,g[0]&132098){r=Ae(e[17].filter(e[34]));let h;for(h=0;h<r.length;h+=1){const p=Uo(e,r,h);a[h]?(a[h].p(p,g),V(a[h],1)):(a[h]=Go(p),a[h].c(),V(a[h],1),a[h].m(n,null))}for(Ee(),h=r.length;h<a.length;h+=1)f(h);ve()}e[8]?d?(d.p(e,g),g[0]&256&&V(d,1)):(d=jo(e),d.c(),V(d,1),d.m(o,null)):d&&(Ee(),G(d,1,1,()=>{d=null}),ve()),(!i||g[0]&32768)&&Pe(t,"drawing",e[15]),(!i||g[0]&32)&&Pe(t,"editing",e[5]),(!i||g[0]&8)&&Pe(t,"hidden",!e[3]),(!i||g[0]&65536)&&Pe(t,"hover",e[16])},i(u){if(!i){for(let g=0;g<r.length;g+=1)V(a[g]);V(d),i=!0}},o(u){a=a.filter(Boolean);for(let g=0;g<a.length;g+=1)G(a[g]);G(d),i=!1},d(u){u&&Y(t),Ge(a,u),d&&d.d(),e[35](null),e[36](null),s=!1,Se(l)}}}function zr(e,t,n){let o,i,s,l,r,a,f,d,u,g,h,p,y=q,S=()=>(y(),y=pn(b,H=>n(18,p=H)),b);e.$$.on_destroy.push(()=>y());let{drawingEnabled:w}=t,{image:A}=t,{preferredDrawingMode:_}=t,{state:M}=t,{style:L=void 0}=t,{toolName:C=xt()[0]}=t,{user:T}=t,{visible:U=!0}=t,N=0;const $=()=>n(7,N+=1),F=()=>C,v=()=>w;let E,m,b;Oe(()=>S(n(9,b=Zn(A,m))));const{hover:I,selection:k,store:O}=M;Ot(e,I,H=>n(16,u=H)),Ot(e,k,H=>n(33,g=H)),Ot(e,O,H=>n(17,h=H));let z,X;const x=H=>{z&&O.unobserve(z);const de=H.filter(({editable:ne})=>ne).map(({id:ne})=>ne);de.length>0?(n(5,X=de.map(ne=>O.getAnnotation(ne)).filter(ne=>ne&&rt(ne))),z=ne=>{const{updated:we}=ne.changes;n(5,X=we==null?void 0:we.map(ce=>ce.newValue))},O.observe(z,{annotations:de})):n(5,X=void 0)},W=H=>{const de=Gn(),ne={id:de,bodies:[],target:{annotation:de,selector:H.detail,creator:T,created:new Date}};O.addAnnotation(ne),k.setSelected(ne.id)},Z=H=>de=>{var qe;const{target:ne}=H,we=10*60*1e3,ce=((qe=ne.creator)==null?void 0:qe.id)!==T.id||!ne.created||new Date().getTime()-ne.created.getTime()>we;O.updateTarget({...ne,selector:de.detail,created:ce?ne.created:new Date,updated:ce?new Date:void 0,updatedBy:ce?T:void 0})},te=H=>{const{x:de,y:ne}=tn(H,m),we=O.getAt(de,ne,void 0,2);we?u!==we.id&&I.set(we.id):I.set(void 0)},ye=H=>rt(H);function ie(H){mt[H?"unshift":"push"](()=>{E=H,n(8,E)})}function ke(H){mt[H?"unshift":"push"](()=>{m=H,n(4,m)})}return e.$$set=H=>{"drawingEnabled"in H&&n(0,w=H.drawingEnabled),"image"in H&&n(25,A=H.image),"preferredDrawingMode"in H&&n(26,_=H.preferredDrawingMode),"state"in H&&n(27,M=H.state),"style"in H&&n(1,L=H.style),"toolName"in H&&n(2,C=H.toolName),"user"in H&&n(28,T=H.user),"visible"in H&&n(3,U=H.visible)},e.$$.update=()=>{e.$$.dirty[0]&4&&n(15,{tool:o,opts:i}=en(C)||{tool:void 0,opts:void 0},o,(n(32,i),n(2,C))),e.$$.dirty[0]&67108864|e.$$.dirty[1]&2&&n(14,s=(i==null?void 0:i.drawingMode)||_),e.$$.dirty[0]&16&&n(13,l=Yo(m)),e.$$.dirty[0]&16&&n(12,{onPointerDown:r,onPointerUp:a}=Bo(m,O),r,(n(11,a),n(4,m))),e.$$.dirty[1]&4&&x(g.selected),e.$$.dirty[0]&32&&n(6,f=X?X.map(H=>({annotation:H,editor:Mo(H.target.selector)})).filter(H=>H.editor):void 0),e.$$.dirty[0]&64&&n(10,d=H=>f&&f.some(de=>de.annotation.id===H.id))},[w,L,C,U,m,X,f,N,E,b,d,a,r,l,s,o,u,h,p,I,k,O,W,Z,te,A,_,M,T,$,F,v,i,g,ye,ie,ke]}class Ko extends me{constructor(t){super(),he(this,t,zr,Fr,re,{drawingEnabled:0,image:25,preferredDrawingMode:26,state:27,style:1,toolName:2,user:28,visible:3,cancelDrawing:29,getDrawingTool:30,isDrawingEnabled:31},null,[-1,-1])}get cancelDrawing(){return this.$$.ctx[29]}get getDrawingTool(){return this.$$.ctx[30]}get isDrawingEnabled(){return this.$$.ctx[31]}}function Wo(e,t,n=0,o=e.length-1,i=qr){for(;o>n;){if(o-n>600){const a=o-n+1,f=t-n+1,d=Math.log(a),u=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*u*(a-u)/a)*(f-a/2<0?-1:1),h=Math.max(n,Math.floor(t-f*u/a+g)),p=Math.min(o,Math.floor(t+(a-f)*u/a+g));Wo(e,t,h,p,i)}const s=e[t];let l=n,r=o;for(dt(e,n,t),i(e[o],s)>0&&dt(e,n,o);l<r;){for(dt(e,l,r),l++,r--;i(e[l],s)<0;)l++;for(;i(e[r],s)>0;)r--}i(e[n],s)===0?dt(e,n,r):(r++,dt(e,r,o)),r<=t&&(n=r+1),t<=r&&(o=r-1)}}function dt(e,t,n){const o=e[t];e[t]=e[n],e[n]=o}function qr(e,t){return e<t?-1:e>t?1:0}class Kr{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(t){let n=this.data;const o=[];if(!At(t,n))return o;const i=this.toBBox,s=[];for(;n;){for(let l=0;l<n.children.length;l++){const r=n.children[l],a=n.leaf?i(r):r;At(t,a)&&(n.leaf?o.push(r):sn(t,a)?this._all(r,o):s.push(r))}n=s.pop()}return o}collides(t){let n=this.data;if(!At(t,n))return!1;const o=[];for(;n;){for(let i=0;i<n.children.length;i++){const s=n.children[i],l=n.leaf?this.toBBox(s):s;if(At(t,l)){if(n.leaf||sn(t,l))return!0;o.push(s)}}n=o.pop()}return!1}load(t){if(!(t&&t.length))return this;if(t.length<this._minEntries){for(let o=0;o<t.length;o++)this.insert(t[o]);return this}let n=this._build(t.slice(),0,t.length-1,0);if(!this.data.children.length)this.data=n;else if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){const o=this.data;this.data=n,n=o}this._insert(n,this.data.height-n.height-1,!0)}return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=xe([]),this}remove(t,n){if(!t)return this;let o=this.data;const i=this.toBBox(t),s=[],l=[];let r,a,f;for(;o||s.length;){if(o||(o=s.pop(),a=s[s.length-1],r=l.pop(),f=!0),o.leaf){const d=Wr(t,o.children,n);if(d!==-1)return o.children.splice(d,1),s.push(o),this._condense(s),this}!f&&!o.leaf&&sn(o,i)?(s.push(o),l.push(r),r=0,a=o,o=o.children[0]):a?(r++,o=a.children[r],f=!1):o=null}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,n){const o=[];for(;t;)t.leaf?n.push(...t.children):o.push(...t.children),t=o.pop();return n}_build(t,n,o,i){const s=o-n+1;let l=this._maxEntries,r;if(s<=l)return r=xe(t.slice(n,o+1)),$e(r,this.toBBox),r;i||(i=Math.ceil(Math.log(s)/Math.log(l)),l=Math.ceil(s/Math.pow(l,i-1))),r=xe([]),r.leaf=!1,r.height=i;const a=Math.ceil(s/l),f=a*Math.ceil(Math.sqrt(l));Zo(t,n,o,f,this.compareMinX);for(let d=n;d<=o;d+=f){const u=Math.min(d+f-1,o);Zo(t,d,u,a,this.compareMinY);for(let g=d;g<=u;g+=a){const h=Math.min(g+a-1,u);r.children.push(this._build(t,g,h,i-1))}}return $e(r,this.toBBox),r}_chooseSubtree(t,n,o,i){for(;i.push(n),!(n.leaf||i.length-1===o);){let s=1/0,l=1/0,r;for(let a=0;a<n.children.length;a++){const f=n.children[a],d=on(f),u=Qr(t,f)-d;u<l?(l=u,s=d<s?d:s,r=f):u===l&&d<s&&(s=d,r=f)}n=r||n.children[0]}return n}_insert(t,n,o){const i=o?t:this.toBBox(t),s=[],l=this._chooseSubtree(i,this.data,n,s);for(l.children.push(t),ht(l,i);n>=0&&s[n].children.length>this._maxEntries;)this._split(s,n),n--;this._adjustParentBBoxes(i,s,n)}_split(t,n){const o=t[n],i=o.children.length,s=this._minEntries;this._chooseSplitAxis(o,s,i);const l=this._chooseSplitIndex(o,s,i),r=xe(o.children.splice(l,o.children.length-l));r.height=o.height,r.leaf=o.leaf,$e(o,this.toBBox),$e(r,this.toBBox),n?t[n-1].children.push(r):this._splitRoot(o,r)}_splitRoot(t,n){this.data=xe([t,n]),this.data.height=t.height+1,this.data.leaf=!1,$e(this.data,this.toBBox)}_chooseSplitIndex(t,n,o){let i,s=1/0,l=1/0;for(let r=n;r<=o-n;r++){const a=gt(t,0,r,this.toBBox),f=gt(t,r,o,this.toBBox),d=$r(a,f),u=on(a)+on(f);d<s?(s=d,i=r,l=u<l?u:l):d===s&&u<l&&(l=u,i=r)}return i||o-n}_chooseSplitAxis(t,n,o){const i=t.leaf?this.compareMinX:Zr,s=t.leaf?this.compareMinY:Jr,l=this._allDistMargin(t,n,o,i),r=this._allDistMargin(t,n,o,s);l<r&&t.children.sort(i)}_allDistMargin(t,n,o,i){t.children.sort(i);const s=this.toBBox,l=gt(t,0,n,s),r=gt(t,o-n,o,s);let a=vt(l)+vt(r);for(let f=n;f<o-n;f++){const d=t.children[f];ht(l,t.leaf?s(d):d),a+=vt(l)}for(let f=o-n-1;f>=n;f--){const d=t.children[f];ht(r,t.leaf?s(d):d),a+=vt(r)}return a}_adjustParentBBoxes(t,n,o){for(let i=o;i>=0;i--)ht(n[i],t)}_condense(t){for(let n=t.length-1,o;n>=0;n--)t[n].children.length===0?n>0?(o=t[n-1].children,o.splice(o.indexOf(t[n]),1)):this.clear():$e(t[n],this.toBBox)}}function Wr(e,t,n){if(!n)return t.indexOf(e);for(let o=0;o<t.length;o++)if(n(e,t[o]))return o;return-1}function $e(e,t){gt(e,0,e.children.length,t,e)}function gt(e,t,n,o,i){i||(i=xe(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=t;s<n;s++){const l=e.children[s];ht(i,e.leaf?o(l):l)}return i}function ht(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function Zr(e,t){return e.minX-t.minX}function Jr(e,t){return e.minY-t.minY}function on(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function vt(e){return e.maxX-e.minX+(e.maxY-e.minY)}function Qr(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function $r(e,t){const n=Math.max(e.minX,t.minX),o=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),s=Math.min(e.maxY,t.maxY);return Math.max(0,i-n)*Math.max(0,s-o)}function sn(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function At(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function xe(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Zo(e,t,n,o,i){const s=[t,n];for(;s.length;){if(n=s.pop(),t=s.pop(),n-t<=o)continue;const l=t+Math.ceil((n-t)/o/2)*o;Wo(e,l,t,n,i),s.push(t,l,l,n)}}const xr=()=>{const e=new Kr,t=new Map,n=()=>[...t.values()],o=()=>{e.clear(),t.clear()},i=u=>{if(!lt(u))return;const{minX:g,minY:h,maxX:p,maxY:y}=u.selector.geometry.bounds,S={minX:g,minY:h,maxX:p,maxY:y,target:u};e.insert(S),t.set(u.annotation,S)},s=u=>{if(!lt(u))return;const g=t.get(u.annotation);g&&e.remove(g),t.delete(u.annotation)};return{all:n,clear:o,getAt:(u,g,h=0)=>{const y=e.search({minX:u-h,minY:g-h,maxX:u+h,maxY:g+h}).map(S=>S.target).filter(({selector:S})=>Tn(S,u,g,h));return y.length>0?(y.sort((S,w)=>_t(S.selector)-_t(w.selector)),y):[]},getIntersecting:(u,g,h,p)=>e.search({minX:u,minY:g,maxX:u+h,maxY:g+p}).map(y=>y.target),insert:i,remove:s,set:(u,g=!0)=>{g&&o();const h=u.reduce((p,y)=>{if(lt(y)){const{minX:S,minY:w,maxX:A,maxY:_}=y.selector.geometry.bounds;return[...p,{minX:S,minY:w,maxX:A,maxY:_,target:y}]}else return p},[]);h.forEach(p=>t.set(p.target.annotation,p)),e.load(h)},size:()=>e.all().length,update:(u,g)=>{s(u),i(g)}}},Jo=e=>({...e,subscribe:n=>{const o=i=>n(i.state);return e.observe(o),n(e.all()),()=>e.unobserve(o)}}),Qo=e=>{const t=os(),n=xr(),o=ji(t,e.userSelectAction,e.adapter),i=Gi(t),s=ls();return t.observe(({changes:a})=>{n.set((a.created||[]).map(f=>f.target),!1),(a.deleted||[]).forEach(f=>n.remove(f.target)),(a.updated||[]).forEach(({oldValue:f,newValue:d})=>n.update(f.target,d.target))}),{store:{...t,getAt:(a,f,d,u)=>{const g=n.getAt(a,f,u);if(d)return g.map(p=>t.getAnnotation(p.annotation)).filter(Boolean).filter(d)[0];{const h=g[0];return h?t.getAnnotation(h.annotation):void 0}},getIntersecting:(a,f,d,u)=>n.getIntersecting(a,f,d,u).map(g=>t.getAnnotation(g.annotation)).filter(Boolean)},selection:o,hover:i,viewport:s}},$o=e=>{const t=Qo(e);return{...t,store:Jo(t.store)}},xo=e=>{let t,n;if(e.nodeName==="CANVAS")t=e,n=t.getContext("2d",{willReadFrequently:!0});else{const i=e;t=document.createElement("canvas"),t.width=i.width,t.height=i.height,n=t.getContext("2d",{willReadFrequently:!0}),n.drawImage(i,0,0,i.width,i.height)}let o=0;for(let i=1;i<10;i++)for(let s=1;s<10;s++){const l=Math.round(s*t.width/10),r=Math.round(i*t.height/10),a=n.getImageData(l,r,1,1).data,f=(.299*a[0]+.587*a[1]+.114*a[2])/255;o+=f}return o/81},ei=e=>{const t=xo(e),n=t>.6?"dark":"light";return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${n} theme.`),n},rn=(e,t,n)=>t.setAttribute("data-theme",n==="auto"?ei(e):n),ti=(e,t)=>({...e,drawingEnabled:e.drawingEnabled===void 0?t.drawingEnabled:e.drawingEnabled,drawingMode:e.drawingMode||t.drawingMode,userSelectAction:e.userSelectAction||t.userSelectAction,theme:e.theme||t.theme}),ln=typeof navigator>"u"?!1:navigator.userAgent.indexOf("Mac OS X")!==-1,ni=(e,t)=>{const n=t||document,o=l=>{const r=l;r.key==="z"&&r.ctrlKey?e.undo():r.key==="y"&&r.ctrlKey&&e.redo()},i=l=>{const r=l;r.key==="z"&&r.metaKey&&(r.shiftKey?e.redo():e.undo())},s=()=>{ln?n.removeEventListener("keydown",i):n.removeEventListener("keydown",o)};return ln?n.addEventListener("keydown",i):n.addEventListener("keydown",o),{destroy:s}},el=(e,t={})=>{if(!e)throw"Missing argument: image";const n=typeof e=="string"?document.getElementById(e):e,o=ti(t,{drawingEnabled:!0,drawingMode:"drag",userSelectAction:Xt.EDIT,theme:"light"}),i=$o(o),{selection:s,store:l}=i,r=rs(l,o.initialHistory),a=as(i,r,o.adapter,o.autoSave),f=document.createElement("DIV");f.style.position="relative",f.style.display="inline-block",n.style.display="block",n.parentNode.insertBefore(f,n),f.appendChild(n);const d=ni(r);let u=ys();rn(n,f,o.theme);const g=new Ko({target:f,props:{drawingEnabled:!!o.drawingEnabled,image:n,preferredDrawingMode:o.drawingMode,state:i,style:o.style,user:u}});g.$on("click",E=>{const{originalEvent:m,annotation:b}=E.detail;b?s.userSelect(b.id,m):s.isEmpty()||s.clear()});const h=fs(i,r,o.adapter),p=()=>g.cancelDrawing(),y=()=>{g.$destroy(),f.parentNode.insertBefore(n,f),f.parentNode.removeChild(f),d.destroy(),r.destroy()},S=()=>g.getDrawingTool(),w=()=>u,A=()=>g.isDrawingEnabled(),_=(E,m,b)=>Do(E,m,b),M=(E,m)=>ko(E,m),L=E=>{if(!en(E))throw`No drawing tool named ${E}`;g.$set({toolName:E})},C=E=>g.$set({drawingEnabled:E}),T=E=>g.$set({preferredDrawingMode:E}),U=E=>{console.warn("Filter not implemented yet")},N=E=>g.$set({style:E}),$=E=>rn(n,f,E),F=E=>{u=E,g.$set({user:E})},v=E=>g.$set({visible:E});return{...h,cancelDrawing:p,destroy:y,getDrawingTool:S,getUser:w,isDrawingEnabled:A,listDrawingTools:xt,on:a.on,off:a.off,registerDrawingTool:_,registerShapeEditor:M,setDrawingEnabled:C,setDrawingMode:T,setDrawingTool:L,setFilter:U,setStyle:N,setTheme:$,setUser:F,setVisible:v,element:f,state:i}};D.Editor=Et,D.EditorMount=To,D.Handle=Be,D.IdentityTransform=Nr,D.MidpointHandle=jt,D.PolygonEditor=ro,D.RectangleEditor=go,D.RectangleUtil=On,D.RubberbandRectangle=Io,D.SVGAnnotationLayer=Ko,D.ShapeType=Q,D.ToolMount=Po,D.UserSelectAction=Xt,D.W3CImageFormat=Ss,D.addEventListeners=Bo,D.approximateAsPolygon=yt,D.boundsFromMultiPolygonElements=st,D.boundsFromPoints=ue,D.chainStyles=ds,D.computeArea=_t,D.computePolygonArea=nt,D.computeSVGPath=Vt,D.computeStyle=us,D.createBody=Zi,D.createImageAnnotator=el,D.createImageAnnotatorState=Qo,D.createSVGTransform=Yo,D.createSvelteImageAnnotatorState=$o,D.defaultColorProvider=As,D.detectTheme=ei,D.distance=it,D.enableResponsive=Zn,D.fillDefaults=ti,D.getAllCorners=Ln,D.getEditor=Mo,D.getMaskDimensions=ct,D.getSVGPoint=tn,D.getTool=en,D.initKeyboardCommands=ni,D.intersects=Tn,D.isFragmentSelector=Nn,D.isImageAnnotation=rt,D.isImageAnnotationTarget=lt,D.isMac=ln,D.isPointInPolygon=ot,D.isTouch=Ie,D.listDrawingTools=xt,D.multipolygonElementToPath=Le,D.parseFragmentSelector=Rn,D.parseSVGSelector=Xn,D.parseW3CImageAnnotation=Kn,D.pointsToPath=Pn,D.registerEditor=ko,D.registerShapeUtil=Fe,D.registerTool=Do,D.sampleBrightness=xo,D.serializeFragmentSelector=Yn,D.serializeSVGSelector=Hn,D.serializeW3CImageAnnotation=Wn,D.setTheme=rn,D.simplifyMultiPolygon=Ei,D.simplifyPoints=Bt,D.simplifyPolygon=Ai,D.toSvelteStore=Jo,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(C,q){typeof exports=="object"&&typeof module<"u"?q(exports):typeof define=="function"&&define.amd?define(["exports"],q):(C=typeof globalThis<"u"?globalThis:C||self,q(C.Annotorious={}))})(this,function(C){"use strict";var il=Object.defineProperty;var sl=(C,q,Ce)=>q in C?il(C,q,{enumerable:!0,configurable:!0,writable:!0,value:Ce}):C[q]=Ce;var mn=(C,q,Ce)=>sl(C,typeof q!="symbol"?q+"":q,Ce);function q(){}function Ce(e,t){for(const n in t)e[n]=t[n];return e}function pn(e){return e()}function _n(){return Object.create(null)}function Ae(e){e.forEach(pn)}function se(e){return typeof e=="function"}function re(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}function si(e){return Object.keys(e).length===0}function yn(e,...t){if(e==null){for(const o of t)o(void 0);return q}const n=e.subscribe(...t);return n.unsubscribe?()=>n.unsubscribe():n}function Ot(e,t,n){e.$$.on_destroy.push(yn(t,n))}function ri(e,t,n,o){if(e){const i=wn(e,t,n,o);return e[0](i)}}function wn(e,t,n,o){return e[1]&&o?Ce(n.ctx.slice(),e[1](o(t))):n.ctx}function li(e,t,n,o){if(e[2]&&o){const i=e[2](o(n));if(t.dirty===void 0)return i;if(typeof i=="object"){const s=[],l=Math.max(t.dirty.length,i.length);for(let r=0;r<l;r+=1)s[r]=t.dirty[r]|i[r];return s}return t.dirty|i}return t.dirty}function ai(e,t,n,o,i,s){if(i){const l=wn(t,n,o,s);e.p(l,i)}}function ci(e){if(e.ctx.length>32){const t=[],n=e.ctx.length/32;for(let o=0;o<n;o++)t[o]=-1;return t}return-1}function bn(e){const t={};for(const n in e)n[0]!=="$"&&(t[n]=e[n]);return t}function Ke(e){return e??""}function F(e,t){e.appendChild(t)}function B(e,t,n){e.insertBefore(t,n||null)}function N(e){e.parentNode&&e.parentNode.removeChild(e)}function Ge(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}function P(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function En(e){return document.createTextNode(e)}function be(){return En(" ")}function Me(){return En("")}function ee(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function c(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function fi(e){return Array.from(e.childNodes)}function Pe(e,t,n){e.classList.toggle(t,!!n)}function ui(e,t,{bubbles:n=!1,cancelable:o=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:o})}let et;function tt(e){et=e}function vn(){if(!et)throw new Error("Function called outside component initialization");return et}function Oe(e){vn().$$.on_mount.push(e)}function De(){const e=vn();return(t,n,{cancelable:o=!1}={})=>{const i=e.$$.callbacks[t];if(i){const s=ui(t,n,{cancelable:o});return i.slice().forEach(l=>{l.call(e,s)}),!s.defaultPrevented}return!0}}function ge(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(o=>o.call(this,t))}const We=[],mt=[];let Ze=[];const Sn=[],An=Promise.resolve();let Dt=!1;function Mn(){Dt||(Dt=!0,An.then(Tn))}function kn(){return Mn(),An}function Rt(e){Ze.push(e)}const Nt=new Set;let Je=0;function Tn(){if(Je!==0)return;const e=et;do{try{for(;Je<We.length;){const t=We[Je];Je++,tt(t),di(t.$$)}}catch(t){throw We.length=0,Je=0,t}for(tt(null),We.length=0,Je=0;mt.length;)mt.pop()();for(let t=0;t<Ze.length;t+=1){const n=Ze[t];Nt.has(n)||(Nt.add(n),n())}Ze.length=0}while(We.length);for(;Sn.length;)Sn.pop()();Dt=!1,Nt.clear(),tt(e)}function di(e){if(e.fragment!==null){e.update(),Ae(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(Rt)}}function gi(e){const t=[],n=[];Ze.forEach(o=>e.indexOf(o)===-1?t.push(o):n.push(o)),n.forEach(o=>o()),Ze=t}const pt=new Set;let je;function Ee(){je={r:0,c:[],p:je}}function ve(){je.r||Ae(je.c),je=je.p}function U(e,t){e&&e.i&&(pt.delete(e),e.i(t))}function G(e,t,n,o){if(e&&e.o){if(pt.has(e))return;pt.add(e),je.c.push(()=>{pt.delete(e),o&&(n&&e.d(1),o())}),e.o(t)}else o&&o()}function Se(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function fe(e){e&&e.c()}function le(e,t,n){const{fragment:o,after_update:i}=e.$$;o&&o.m(t,n),Rt(()=>{const s=e.$$.on_mount.map(pn).filter(se);e.$$.on_destroy?e.$$.on_destroy.push(...s):Ae(s),e.$$.on_mount=[]}),i.forEach(Rt)}function ae(e,t){const n=e.$$;n.fragment!==null&&(gi(n.after_update),Ae(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function hi(e,t){e.$$.dirty[0]===-1&&(We.push(e),Mn(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function he(e,t,n,o,i,s,l=null,r=[-1]){const a=et;tt(e);const f=e.$$={fragment:null,ctx:[],props:s,update:q,not_equal:i,bound:_n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(a?a.$$.context:[])),callbacks:_n(),dirty:r,skip_bound:!1,root:t.target||a.$$.root};l&&l(f.root);let d=!1;if(f.ctx=n?n(e,t.props||{},(u,g,...h)=>{const p=h.length?h[0]:g;return f.ctx&&i(f.ctx[u],f.ctx[u]=p)&&(!f.skip_bound&&f.bound[u]&&f.bound[u](p),d&&hi(e,u)),g}):[],f.update(),d=!0,Ae(f.before_update),f.fragment=o?o(f.ctx):!1,t.target){if(t.hydrate){const u=fi(t.target);f.fragment&&f.fragment.l(u),u.forEach(N)}else f.fragment&&f.fragment.c();t.intro&&U(e.$$.fragment),le(e,t.target,t.anchor),Tn()}tt(a)}class me{constructor(){mn(this,"$$");mn(this,"$$set")}$destroy(){ae(this,1),this.$destroy=q}$on(t,n){if(!se(n))return q;const o=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return o.push(n),()=>{const i=o.indexOf(n);i!==-1&&o.splice(i,1)}}$set(t){this.$$set&&!si(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const mi="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(mi);var x=(e=>(e.ELLIPSE="ELLIPSE",e.MULTIPOLYGON="MULTIPOLYGON",e.POLYGON="POLYGON",e.POLYLINE="POLYLINE",e.RECTANGLE="RECTANGLE",e.LINE="LINE",e))(x||{});function pi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Pn={exports:{}};(function(e){(function(){function t(r,a){var f=r.x-a.x,d=r.y-a.y;return f*f+d*d}function n(r,a,f){var d=a.x,u=a.y,g=f.x-d,h=f.y-u;if(g!==0||h!==0){var p=((r.x-d)*g+(r.y-u)*h)/(g*g+h*h);p>1?(d=f.x,u=f.y):p>0&&(d+=g*p,u+=h*p)}return g=r.x-d,h=r.y-u,g*g+h*h}function o(r,a){for(var f=r[0],d=[f],u,g=1,h=r.length;g<h;g++)u=r[g],t(u,f)>a&&(d.push(u),f=u);return f!==u&&d.push(u),d}function i(r,a,f,d,u){for(var g=d,h,p=a+1;p<f;p++){var w=n(r[p],r[a],r[f]);w>g&&(h=p,g=w)}g>d&&(h-a>1&&i(r,a,h,d,u),u.push(r[h]),f-h>1&&i(r,h,f,d,u))}function s(r,a){var f=r.length-1,d=[r[0]];return i(r,0,f,a,d),d.push(r[f]),d}function l(r,a,f){if(r.length<=2)return r;var d=a!==void 0?a*a:1;return r=f?r:o(r,d),r=s(r,d),r}e.exports=l,e.exports.default=l})()})(Pn);var _i=Pn.exports;const yi=pi(_i),Bt={},Fe=(e,t)=>Bt[e]=t,_t=e=>Bt[e.type].area(e),Ln=(e,t,n,o)=>Bt[e.type].intersects(e,t,n,o),ue=e=>{let t=1/0,n=1/0,o=-1/0,i=-1/0;return e.forEach(([s,l])=>{t=Math.min(t,s),n=Math.min(n,l),o=Math.max(o,s),i=Math.max(i,l)}),{minX:t,minY:n,maxX:o,maxY:i}},nt=e=>{let t=0,n=e.length-1;for(let o=0;o<e.length;o++)t+=(e[n][0]+e[o][0])*(e[n][1]-e[o][1]),n=o;return Math.abs(.5*t)},ot=(e,t,n)=>{let o=!1;for(let i=0,s=e.length-1;i<e.length;s=i++){const l=e[i][0],r=e[i][1],a=e[s][0],f=e[s][1];r>n!=f>n&&t<(a-l)*(n-r)/(f-r)+l&&(o=!o)}return o},In=(e,t=!0)=>{let n="M ";return e.forEach(([o,i],s)=>{s===0?n+=`${o},${i}`:n+=` L ${o},${i}`}),t&&(n+=" Z"),n},Yt=(e,t=1)=>{const n=e.map(([o,i])=>({x:o,y:i}));return yi(n,t,!0).map(o=>[o.x,o.y])},it=(e,t)=>{const n=Math.abs(t[0]-e[0]),o=Math.abs(t[1]-e[1]);return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},wi={area:e=>Math.PI*e.geometry.rx*e.geometry.ry,intersects:(e,t,n)=>{const{cx:o,cy:i,rx:s,ry:l}=e.geometry,r=0,a=Math.cos(r),f=Math.sin(r),d=t-o,u=n-i,g=a*d+f*u,h=f*d-a*u;return g*g/(s*s)+h*h/(l*l)<=1}};Fe(x.ELLIPSE,wi);const bi={area:e=>0,intersects:(e,t,n,o=2)=>{const[[i,s],[l,r]]=e.geometry.points,a=Math.abs((r-s)*t-(l-i)*n+l*s-r*i),f=it([i,s],[l,r]);return a/f<=o}};Fe(x.LINE,bi);const Ei={area:e=>{const{polygons:t}=e.geometry;return t.reduce((n,o)=>{const[i,...s]=o.rings,l=nt(i.points),r=s.reduce((a,f)=>a+nt(f.points),0);return n+l-r},0)},intersects:(e,t,n)=>{const{polygons:o}=e.geometry;for(const i of o){const[s,...l]=i.rings;if(ot(s.points,t,n)){let r=!1;for(const a of l)if(ot(a.points,t,n)){r=!0;break}if(!r)return!0}}return!1}},st=e=>{const t=e.reduce((n,o)=>[...n,...o.rings[0].points],[]);return ue(t)},Le=e=>e.rings.map(n=>In(n.points)).join(" "),Cn=e=>e.polygons.reduce((t,n)=>[...t,...n.rings.reduce((o,i)=>[...o,...i.points],[])],[]),vi=(e,t=1)=>{const n=e.geometry.polygons.map(i=>{const s=i.rings.map(r=>{const a=Yt(r.points,t);return{...r,points:a}}),l=ue(s[0].points);return{...i,rings:s,bounds:l}}),o=st(n);return{...e,geometry:{...e.geometry,polygons:n,bounds:o}}};Fe(x.MULTIPOLYGON,Ei);const Si={area:e=>{const t=e.geometry.points;return nt(t)},intersects:(e,t,n)=>{const o=e.geometry.points;return ot(o,t,n)}},Ai=(e,t=1)=>{const n=Yt(e.geometry.points,t),o=ue(n);return{...e,geometry:{...e.geometry,bounds:o,points:n}}};Fe(x.POLYGON,Si);const Mi={area:e=>{const t=e.geometry;if(!t.closed||t.points.length<3)return 0;const n=yt(t.points,t.closed);return nt(n)},intersects:(e,t,n,o=2)=>{const i=e.geometry;if(i.closed){const s=yt(i.points,i.closed);return ot(s,t,n)}else return ki(i,[t,n],o)}},yt=(e,t=!1)=>{const n=[];for(let o=0;o<e.length;o++){const i=e[o],s=e[(o+1)%e.length];if(n.push(i.point),(o<e.length-1||t)&&(i.type==="CURVE"||s.type=="CURVE")){const r=On(i.point,i.type==="CURVE"&&i.outHandle||i.point,s.type==="CURVE"&&s.inHandle||s.point,s.point,10);n.push(...r.slice(1))}}return n},On=(e,t,n,o,i=10)=>{const s=[];for(let l=0;l<=i;l++){const r=l/i,a=Math.pow(1-r,3)*e[0]+3*Math.pow(1-r,2)*r*t[0]+3*(1-r)*Math.pow(r,2)*n[0]+Math.pow(r,3)*o[0],f=Math.pow(1-r,3)*e[1]+3*Math.pow(1-r,2)*r*t[1]+3*(1-r)*Math.pow(r,2)*n[1]+Math.pow(r,3)*o[1];s.push([a,f])}return s},ki=(e,t,n)=>{for(let o=0;o<e.points.length-1;o++){const i=e.points[o],s=e.points[o+1];if(i.type==="CURVE"||s.type==="CURVE"){const r=On(i.point,i.type==="CURVE"&&i.outHandle||i.point,s.type==="CURVE"&&s.inHandle||s.point,s.point,20);for(let a=0;a<r.length-1;a++)if(Dn(t,r[a],r[a+1])<=n)return!0}else if(Dn(t,i.point,s.point)<=n)return!0}return!1},Dn=(e,t,n)=>{const[o,i]=e,[s,l]=t,[r,a]=n,f=r-s,d=a-l,u=Math.sqrt(f*f+d*d);if(u===0)return Math.sqrt((o-s)*(o-s)+(i-l)*(i-l));const g=((o-s)*f+(i-l)*d)/(u*u);return g<=0?Math.sqrt((o-s)*(o-s)+(i-l)*(i-l)):g>=1?Math.sqrt((o-r)*(o-r)+(i-a)*(i-a)):Math.abs((a-l)*o-(r-s)*i+r*l-a*s)/u},Ut=e=>{if(!e.points||e.points.length===0)return"";const t=[],n=e.points[0];t.push(`M ${n.point[0]} ${n.point[1]}`);for(let o=1;o<e.points.length;o++){const i=e.points[o],s=e.points[o-1];if(i.type==="CURVE"||s.type==="CURVE"){const l=s.type==="CURVE"&&s.outHandle||s.point,r=i.type==="CURVE"&&i.inHandle||i.point,a=i.point;t.push(`C ${l[0]} ${l[1]} ${r[0]} ${r[1]} ${a[0]} ${a[1]}`)}else t.push(`L ${i.point[0]} ${i.point[1]}`)}if(e.closed){const o=e.points[e.points.length-1],i=e.points[0];if(o.type==="CURVE"||i.type==="CURVE"){const l=o.outHandle||o.point,r=i.inHandle||i.point,a=i.point;t.push(`C ${l[0]} ${l[1]} ${r[0]} ${r[1]} ${a[0]} ${a[1]}`)}t.push("Z")}return t.join(" ")};Fe(x.POLYLINE,Mi);const Rn={area:e=>e.geometry.w*e.geometry.h,intersects:(e,t,n)=>{const o=e.geometry;if(o.rot){const i=o.x+o.w/2,s=o.y+o.h/2,l=t-i,r=n-s,a=Math.cos(o.rot),f=Math.sin(o.rot),d=l*a+r*f,u=-l*f+r*a;return d>=-o.w/2&&d<=o.w/2&&u>=-o.h/2&&u<=o.h/2}else return t>=o.x&&t<=o.x+o.w&&n>=o.y&&n<=o.y+o.h}};Fe(x.RECTANGLE,Rn);const rt=e=>lt(e.target),lt=e=>{var t,n;return(e==null?void 0:e.annotation)!==void 0&&((n=(t=e==null?void 0:e.selector)==null?void 0:t.geometry)==null?void 0:n.bounds)!==void 0},Re="-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?",Nn=512,wt=e=>(e==null?void 0:e.type)==="FragmentSelector"?!0:typeof e=="string"?e.length>Nn||e.indexOf("#")<0?!1:new RegExp(`#xywh=((?:pixel|percent):)?(${Re}),(${Re}),(${Re}),(${Re})$`,"i").test(e):!1,Bn=(e,t=!1)=>{const n=typeof e=="string"?e:e.value;if(n.length>Nn)throw new Error("Fragment too long: "+n);const i=new RegExp(`(xywh)=((?:pixel|percent))?:?(${Re}),(${Re}),(${Re}),(${Re})$`).exec(n);if(!i)throw new Error("Not a MediaFragment: "+n);const[s,l,r,a,f,d,u]=i;if(l!=="xywh")throw new Error("Unsupported MediaFragment: "+n);if(r&&r!=="pixel")throw new Error(`Unsupported MediaFragment unit: ${r}`);const[g,h,p,w]=[a,f,d,u].map(parseFloat);return{type:x.RECTANGLE,geometry:{x:g,y:h,w:p,h:w,rot:0,bounds:{minX:g,minY:t?h-w:h,maxX:g+p,maxY:t?h:h+w}}}},Yn=e=>{const{x:t,y:n,w:o,h:i}=e;return{type:"FragmentSelector",conformsTo:"http://www.w3.org/TR/media-frags/",value:`xywh=pixel:${t},${n},${o},${i}`}},Vt="http://www.w3.org/2000/svg",Un=e=>{const t=o=>{Array.from(o.attributes).forEach(i=>{i.name.startsWith("on")&&o.removeAttribute(i.name)})},n=e.getElementsByTagName("script");return Array.from(n).reverse().forEach(o=>o.parentNode.removeChild(o)),Array.from(e.querySelectorAll("*")).forEach(t),e},Ti=e=>{const o=new XMLSerializer().serializeToString(e.documentElement).replace("<svg>",`<svg xmlns="${Vt}">`);return new DOMParser().parseFromString(o,"image/svg+xml").documentElement},at=e=>{const t=new DOMParser,n=e.trimStart().startsWith("<svg")?e:`<svg xmlns="${Vt}">${e}</svg>`,o=t.parseFromString(n,"image/svg+xml"),i=o.lookupPrefix(Vt),s=o.lookupNamespaceURI(null);return i||s?Un(o).firstChild:Un(Ti(o)).firstChild},Pi=e=>{const t=Vn(e),n=[];let o=[],i=[0,0];for(const s of t)switch(s.type.toUpperCase()){case"M":o.length>0&&(n.push({points:o}),o=[]),i=[s.args[0],s.args[1]],o.push([...i]);break;case"L":i=[s.args[0],s.args[1]],o.push([...i]);break;case"H":i=[s.args[0],i[1]],o.push([...i]);break;case"V":i=[i[0],s.args[0]],o.push([...i]);break;case"C":i=[s.args[4],s.args[5]],o.push([...i]);break;case"Z":break;default:console.warn(`Unsupported SVG path command: ${s.type}`);break}if(o.length>2&&n.push({points:o}),n.length>0){const s=ue(n[0].points);return{rings:n,bounds:s}}},Li=e=>{const{point:t,inHandle:n,outHandle:o}=e;if(!n||!o)return!1;const i=n[0]-t[0],s=n[1]-t[1],l=o[0]-t[0],r=o[1]-t[1],a=i*r-s*l;return Math.abs(a)<.01},Ii=e=>{const t=Vn(e);let n=[],o=[0,0],i=!1;for(let l=0;l<t.length;l++){const r=t[l];switch(r.type.toUpperCase()){case"M":o=[r.args[0],r.args[1]],n.push({type:"CORNER",point:[...o]});break;case"L":o=[r.args[0],r.args[1]],n.push({type:"CORNER",point:[...o]});break;case"C":const a=[r.args[0],r.args[1]],f=[r.args[2],r.args[3]],d=[r.args[4],r.args[5]];if(n.length>0){const g=n[n.length-1];(a[0]!==g.point[0]||a[1]!==g.point[1])&&(g.type="CURVE",g.outHandle=a)}const u={type:f[0]!==d[0]||f[1]!==d[1]?"CURVE":"CORNER",point:d};u.type==="CURVE"&&(u.inHandle=f),n.push(u),o=d;break;case"Z":i=!0;break;default:console.warn(`Unsupported SVG path command: ${r.type}`);break}}n=n.map(l=>Li(l)?{...l,locked:!0}:l);const s=ue(yt(n,i));return{points:n,closed:i,bounds:s}},Vn=e=>{const t=[],n=e.replace(/,/g," ").trim(),o=/([MmLlHhVvCcZz])\s*([^MmLlHhVvCcZz]*)/g;let i;for(;(i=o.exec(n))!==null;){const[,s,l]=i,r=l.trim()===""?[]:l.trim().split(/\s+/).map(Number).filter(f=>!isNaN(f)),a=Ci(s);if(a===0||r.length<=a)t.push({type:s,args:r});else for(let f=0;f<r.length;f+=a){const d=f===0?s:s==="M"?"L":s==="m"?"l":s;t.push({type:d,args:r.slice(f,f+a)})}}return t},Ci=e=>{switch(e.toUpperCase()){case"M":case"L":return 2;case"H":case"V":return 1;case"C":return 6;case"Z":return 0;default:return 2}},Oi=e=>{const[t,n,o]=e.match(/(<polygon points=["|'])([^("|')]*)/)||[],i=o.split(" ").map(s=>s.split(",").map(parseFloat));return{type:x.POLYGON,geometry:{points:i,bounds:ue(i)}}},Di=e=>{const t=at(e),n=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy")),i=parseFloat(t.getAttribute("rx")),s=parseFloat(t.getAttribute("ry")),l={minX:n-i,minY:o-s,maxX:n+i,maxY:o+s};return{type:x.ELLIPSE,geometry:{cx:n,cy:o,rx:i,ry:s,bounds:l}}},Ri=e=>{const t=at(e),n=parseFloat(t.getAttribute("x1")),o=parseFloat(t.getAttribute("x2")),i=parseFloat(t.getAttribute("y1")),s=parseFloat(t.getAttribute("y2")),l={minX:Math.min(n,o),minY:Math.min(i,s),maxX:Math.max(n,o),maxY:Math.max(i,s)};return{type:x.LINE,geometry:{points:[[n,i],[o,s]],bounds:l}}},Ni=e=>{const t=at(e),n=t.nodeName==="path"?t:Array.from(t.querySelectorAll("path"))[0],o=n==null?void 0:n.getAttribute("d");if(!o)throw new Error("Could not parse SVG path");const i=Ii(o);if(!i)throw new Error("Could not parse SVG path");return{type:x.POLYLINE,geometry:i}},Bi=e=>{const t=at(e),n=t.nodeName==="rect"?t:Array.from(t.querySelectorAll("rect"))[0];if(!n)throw new Error("Could not parse SVG rect");const o=parseFloat(n.getAttribute("x")),i=parseFloat(n.getAttribute("y")),s=parseFloat(n.getAttribute("width")),l=parseFloat(n.getAttribute("height")),r=n.getAttribute("transform");let a=0;if(r&&r.startsWith("rotate(")){const p=r.match(/rotate\(([^)]+)\)/);p&&(a=p[1].split(/\s+/).map(parseFloat)[0]*Math.PI/180)}const f=o+s/2,d=i+l/2,g=[[o,i],[o+s,i],[o+s,i+l],[o,i+l]].map(([p,w])=>{const A=p-f,b=w-d,v=Math.cos(a),y=Math.sin(a);return[f+A*v-b*y,d+A*y+b*v]}),h=ue(g);return{type:x.RECTANGLE,geometry:{x:o,y:i,w:s,h:l,rot:a,bounds:h}}},Yi=e=>{const t=at(e),i=(t.nodeName==="path"?[t]:Array.from(t.querySelectorAll("path"))).map(a=>a.getAttribute("d")||"").map(a=>Pi(a)).filter(Boolean),s=i.reduce((a,f)=>[...a,...f.rings[0].points],[]),l=ue(s);return i.length===1&&i[0].rings.length===1?{type:x.POLYGON,geometry:{points:s,bounds:l}}:{type:x.MULTIPOLYGON,geometry:{polygons:i,bounds:l}}},Xn=e=>{const t=typeof e=="string"?e:e.value;if(t.includes("<polygon points="))return Oi(t);if(t.includes("<path ")&&(t.includes(" C ")||!t.includes("Z")))return Ni(t);if(t.includes("<path "))return Yi(t);if(t.includes("<ellipse "))return Di(t);if(t.includes("<line "))return Ri(t);if(t.includes("<rect "))return Bi(t);throw"Unsupported SVG shape: "+t},Ui=e=>`<g>${e.polygons.map(n=>`<path fill-rule="evenodd" d="${Le(n)}" />`).join("")}</g>`,Hn=e=>{let t;switch(e.type){case x.RECTANGLE:{const n=e.geometry,{x:o,y:i,w:s,h:l,rot:r}=n;if(!r)t=`<svg><rect x="${o}" y="${i}" width="${s}" height="${l}" /></svg>`;else{const a=o+s/2,f=i+l/2,d=(r??0)*180/Math.PI;t=`<svg><rect x="${o}" y="${i}" width="${s}" height="${l}" transform="rotate(${d} ${a} ${f})" /></svg>`}break}case x.POLYGON:{const n=e.geometry,{points:o}=n;t=`<svg><polygon points="${o.map(i=>i.join(",")).join(" ")}" /></svg>`;break}case x.ELLIPSE:{const n=e.geometry;t=`<svg><ellipse cx="${n.cx}" cy="${n.cy}" rx="${n.rx}" ry="${n.ry}" /></svg>`;break}case x.MULTIPOLYGON:{const n=e.geometry;t=`<svg>${Ui(n)}</svg>`;break}case x.LINE:{const n=e.geometry,[[o,i],[s,l]]=n.points;t=`<svg><line x1="${o}" y1="${i}" x2="${s}" y2="${l}" /></svg>`;break}case x.POLYLINE:t=`<svg><path d="${Ut(e.geometry)}" /></svg>`}if(t)return{type:"SvgSelector",value:t};throw`Unsupported shape type: ${e.type}`},pe=[];for(let e=0;e<256;++e)pe.push((e+256).toString(16).slice(1));function Vi(e,t=0){return(pe[e[t+0]]+pe[e[t+1]]+pe[e[t+2]]+pe[e[t+3]]+"-"+pe[e[t+4]]+pe[e[t+5]]+"-"+pe[e[t+6]]+pe[e[t+7]]+"-"+pe[e[t+8]]+pe[e[t+9]]+"-"+pe[e[t+10]]+pe[e[t+11]]+pe[e[t+12]]+pe[e[t+13]]+pe[e[t+14]]+pe[e[t+15]]).toLowerCase()}const Xi=new Uint8Array(16);function Hi(){return crypto.getRandomValues(Xi)}function Gn(e,t,n){return crypto.randomUUID?crypto.randomUUID():Gi(e)}function Gi(e,t,n){var i;e=e||{};const o=e.random??((i=e.rng)==null?void 0:i.call(e))??Hi();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Vi(o)}var jn=Object.prototype.hasOwnProperty;function Ne(e,t){var n,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((o=e.length)===t.length)for(;o--&&Ne(e[o],t[o]););return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(jn.call(e,n)&&++o&&!jn.call(t,n)||!(n in t)||!Ne(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}let Te=[],Be=0;const bt=4,ji=globalThis.nanostoresGlobal||(globalThis.nanostoresGlobal={epoch:0}),Xt=e=>{let t=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(o){return n.lc=t.push(o),()=>{for(let s=Be+bt;s<Te.length;)Te[s]===o?Te.splice(s,bt):s+=bt;let i=t.indexOf(o);~i&&(t.splice(i,1),--n.lc||n.off())}},notify(o,i){ji.epoch++;let s=!Te.length;for(let l of t)Te.push(l,n.value,o,i);if(s){for(Be=0;Be<Te.length;Be+=bt)Te[Be](Te[Be+1],Te[Be+2],Te[Be+3]);Te.length=0}},off(){},set(o){let i=n.value;i!==o&&(n.value=o,n.notify(i))},subscribe(o){let i=n.listen(o);return o(n.value),i},value:e};return n},Fi=e=>{const t=Xt(null);return e.observe(({changes:n})=>{const o=t.get();if(o){(n.deleted||[]).some(s=>s.id===o)&&t.set(null);const i=(n.updated||[]).find(({oldValue:s})=>s.id===o);i&&t.set(i.newValue.id)}}),{get current(){return t.get()},subscribe:t.subscribe.bind(t),set:t.set.bind(t)}};var Ht=(e=>(e.EDIT="EDIT",e.SELECT="SELECT",e.NONE="NONE",e))(Ht||{});const Gt={selected:[]},zi=(e,t,n)=>{const o=Xt(Gt);let i=t;const s=()=>{Ne(o.get(),Gt)||o.set(Gt)},l=()=>{var h;return((h=o.get().selected)==null?void 0:h.length)===0},r=h=>{if(l())return!1;const p=typeof h=="string"?h:h.id;return o.get().selected.some(w=>w.id===p)},a=(h,p)=>{let w;if(Array.isArray(h)){if(w=h.map(b=>e.getAnnotation(b)).filter(Boolean),w.length<h.length){console.warn("Invalid selection: "+h.filter(b=>!w.some(v=>v.id===b)));return}}else{const b=e.getAnnotation(h);if(!b){console.warn("Invalid selection: "+h);return}w=[b]}const A=w.reduce((b,v)=>{const y=g(v);return y==="EDIT"?[...b,{id:v.id,editable:!0}]:y==="SELECT"?[...b,{id:v.id}]:b},[]);o.set({selected:A,event:p})},f=(h,p)=>{const w=Array.isArray(h)?h:[h],A=w.map(b=>e.getAnnotation(b)).filter(b=>!!b);o.set({selected:A.map(b=>{const v=p===void 0?g(b)==="EDIT":p;return{id:b.id,editable:v}})}),A.length!==w.length&&console.warn("Invalid selection",h)},d=h=>{if(l())return!1;const{selected:p}=o.get();p.some(({id:w})=>h.includes(w))&&o.set({selected:p.filter(({id:w})=>!h.includes(w))})},u=h=>{i=h,f(o.get().selected.map(({id:p})=>p))},g=h=>qi(h,i,n);return e.observe(({changes:h})=>d((h.deleted||[]).map(p=>p.id))),{get event(){const h=o.get();return h?h.event:null},get selected(){const h=o.get();return h?[...h.selected]:null},get userSelectAction(){return i},clear:s,evalSelectAction:g,isEmpty:l,isSelected:r,setSelected:f,setUserSelectAction:u,subscribe:o.subscribe.bind(o),userSelect:a}},qi=(e,t,n)=>{const o=n?n.serialize(e):e;return typeof t=="function"?t(o):t||"EDIT"},_e=[];for(let e=0;e<256;++e)_e.push((e+256).toString(16).slice(1));function Ki(e,t=0){return(_e[e[t+0]]+_e[e[t+1]]+_e[e[t+2]]+_e[e[t+3]]+"-"+_e[e[t+4]]+_e[e[t+5]]+"-"+_e[e[t+6]]+_e[e[t+7]]+"-"+_e[e[t+8]]+_e[e[t+9]]+"-"+_e[e[t+10]]+_e[e[t+11]]+_e[e[t+12]]+_e[e[t+13]]+_e[e[t+14]]+_e[e[t+15]]).toLowerCase()}const Wi=new Uint8Array(16);function Zi(){return crypto.getRandomValues(Wi)}function Fn(e,t,n){return crypto.randomUUID?crypto.randomUUID():Ji(e)}function Ji(e,t,n){var o;e=e||{};const i=e.random??((o=e.rng)==null?void 0:o.call(e))??Zi();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=i[6]&15|64,i[8]=i[8]&63|128,Ki(i)}const jt=e=>{const t=n=>{const o={...n};return n.created&&typeof n.created=="string"&&(o.created=new Date(n.created)),n.updated&&typeof n.updated=="string"&&(o.updated=new Date(n.updated)),o};return{...e,bodies:(e.bodies||[]).map(t),target:t(e.target)}},Qi=(e,t,n,o)=>({id:Fn(),annotation:typeof e=="string"?e:e.id,created:n||new Date,creator:o,...t}),$i=(e,t)=>{const n=new Set(e.bodies.map(o=>o.id));return t.bodies.filter(o=>!n.has(o.id))},xi=(e,t)=>{const n=new Set(t.bodies.map(o=>o.id));return e.bodies.filter(o=>!n.has(o.id))},es=(e,t)=>t.bodies.map(n=>{const o=e.bodies.find(i=>i.id===n.id);return{newBody:n,oldBody:o&&!Ne(o,n)?o:void 0}}).filter(({oldBody:n})=>n).map(({oldBody:n,newBody:o})=>({oldBody:n,newBody:o})),ts=(e,t)=>!Ne(e.target,t.target),zn=(e,t)=>{const n=$i(e,t),o=xi(e,t),i=es(e,t);return{oldValue:e,newValue:t,bodiesCreated:n.length>0?n:void 0,bodiesDeleted:o.length>0?o:void 0,bodiesUpdated:i.length>0?i:void 0,targetUpdated:ts(e,t)?{oldTarget:e.target,newTarget:t.target}:void 0}};var oe=(e=>(e.LOCAL="LOCAL",e.REMOTE="REMOTE",e.SILENT="SILENT",e))(oe||{});const ns=(e,t)=>{var n,o;const{changes:i,origin:s}=t;if(!(e.options.origin?e.options.origin===s:s!=="SILENT"))return!1;if(e.options.ignore){const{ignore:l}=e.options,r=a=>a&&a.length>0;if(!(r(i.created)||r(i.deleted))){const a=(n=i.updated)==null?void 0:n.some(d=>r(d.bodiesCreated)||r(d.bodiesDeleted)||r(d.bodiesUpdated)),f=(o=i.updated)==null?void 0:o.some(d=>d.targetUpdated);if(l==="BODY_ONLY"&&a&&!f||l==="TARGET_ONLY"&&f&&!a)return!1}}if(e.options.annotations){const l=new Set([...(i.created||[]).map(r=>r.id),...(i.deleted||[]).map(r=>r.id),...(i.updated||[]).map(({oldValue:r})=>r.id)]);return!!(Array.isArray(e.options.annotations)?e.options.annotations:[e.options.annotations]).find(r=>l.has(r))}else return!0},os=(e,t)=>{const n=new Set((e.created||[]).map(u=>u.id)),o=new Set((e.updated||[]).map(({newValue:u})=>u.id)),i=new Set((t.created||[]).map(u=>u.id)),s=new Set((t.deleted||[]).map(u=>u.id)),l=new Set((t.updated||[]).map(({oldValue:u})=>u.id)),r=new Set((t.updated||[]).filter(({oldValue:u})=>n.has(u.id)||o.has(u.id)).map(({oldValue:u})=>u.id)),a=[...(e.created||[]).filter(u=>!s.has(u.id)).map(u=>l.has(u.id)?t.updated.find(({oldValue:g})=>g.id===u.id).newValue:u),...t.created||[]],f=[...(e.deleted||[]).filter(u=>!i.has(u.id)),...(t.deleted||[]).filter(u=>!n.has(u.id))],d=[...(e.updated||[]).filter(({newValue:u})=>!s.has(u.id)).map(u=>{const{oldValue:g,newValue:h}=u;if(l.has(h.id)){const p=t.updated.find(w=>w.oldValue.id===h.id).newValue;return zn(g,p)}else return u}),...(t.updated||[]).filter(({oldValue:u})=>!r.has(u.id))];return{created:a,deleted:f,updated:d}},Ft=e=>{const t=e.id===void 0?Fn():e.id;return{...e,id:t,bodies:e.bodies===void 0?[]:e.bodies.map(n=>({...n,annotation:t})),target:{...e.target,annotation:t}}},is=e=>e.id!==void 0,ss=()=>{const e=new Map,t=new Map,n=[],o=(m,_={})=>{n.push({onChange:m,options:_})},i=m=>{const _=n.findIndex(E=>E.onChange==m);_>-1&&n.splice(_,1)},s=(m,_)=>{const E={origin:m,changes:{created:_.created||[],updated:_.updated||[],deleted:_.deleted||[]},state:[...e.values()]};n.forEach(S=>{ns(S,E)&&S.onChange(E)})},l=m=>{e.set(m.id,m),m.bodies.forEach(_=>t.set(_.id,m.id))},r=(m,_=oe.LOCAL)=>{if(m.id&&e.get(m.id))throw Error(`Cannot add annotation ${m.id} - exists already`);{const E=Ft(m);l(E),s(_,{created:[E]})}},a=(m,_)=>{const E=Ft(typeof m=="string"?_:m),S=typeof m=="string"?m:m.id,I=S&&e.get(S);if(I){const H=zn(I,E);return S===E.id?e.set(S,E):(e.delete(S),e.set(E.id,E)),I.bodies.forEach(Y=>t.delete(Y.id)),E.bodies.forEach(Y=>t.set(Y.id,E.id)),H}else console.warn(`Cannot update annotation ${S} - does not exist`)},f=(m,_=oe.LOCAL,E=oe.LOCAL)=>{const S=is(_)?E:_,I=a(m,_);I&&s(S,{updated:[I]})},d=(m,_=oe.LOCAL)=>{e.get(m.id)?f(m,_):r(m,_)},u=(m,_=oe.LOCAL)=>{const E=m.reduce((S,I)=>{const H=a(I);return H?[...S,H]:S},[]);E.length>0&&s(_,{updated:E})},g=m=>m.map(Ft).reduce((_,E)=>e.get(E.id)?{..._,toUpdate:[..._.toUpdate,E]}:{..._,toAdd:[..._.toAdd,E]},{toAdd:[],toUpdate:[]}),h=(m,_=oe.LOCAL)=>{const{toAdd:E,toUpdate:S}=g(m),I=S.map(H=>a(H,_)).filter(Boolean);E.forEach(l),s(_,{created:E,updated:I})},p=(m,_=oe.LOCAL)=>{const E=e.get(m.annotation);if(E){const S={...E,bodies:[...E.bodies,m]};e.set(E.id,S),t.set(m.id,S.id),s(_,{updated:[{oldValue:E,newValue:S,bodiesCreated:[m]}]})}else console.warn(`Attempt to add body to missing annotation: ${m.annotation}`)},w=()=>[...e.values()],A=(m=oe.LOCAL)=>{const _=[...e.values()];e.clear(),t.clear(),s(m,{deleted:_})},b=(m,_=oe.LOCAL)=>{const{toAdd:E,toUpdate:S}=g(m),I=new Set([...E,...S].map(K=>K.id)),H=[...e.keys()].filter(K=>!I.has(K)).map(K=>v(K)).filter(Boolean),Y=S.map(K=>a(K)).filter(Boolean);E.forEach(l),s(_,{created:E,updated:Y,deleted:H})},v=m=>{const _=typeof m=="string"?m:m.id,E=e.get(_);if(E)return e.delete(_),E.bodies.forEach(S=>t.delete(S.id)),E;console.warn(`Attempt to delete missing annotation: ${_}`)},y=(m,_=oe.LOCAL)=>{const E=v(m);E&&s(_,{deleted:[E]})},M=(m,_=oe.LOCAL)=>{const E=m.reduce((S,I)=>{const H=v(I);return H?[...S,H]:S},[]);E.length>0&&s(_,{deleted:E})},L=m=>{const _=e.get(m.annotation);if(_){const E=_.bodies.find(S=>S.id===m.id);if(E){t.delete(E.id);const S={..._,bodies:_.bodies.filter(I=>I.id!==m.id)};return e.set(_.id,S),{oldValue:_,newValue:S,bodiesDeleted:[E]}}else console.warn(`Attempt to delete missing body ${m.id} from annotation ${m.annotation}`)}else console.warn(`Attempt to delete body from missing annotation ${m.annotation}`)},k=(m,_=oe.LOCAL)=>{const E=L(m);E&&s(_,{updated:[E]})},T=(m,_=oe.LOCAL)=>{const E=m.map(S=>L(S)).filter(Boolean);E.length>0&&s(_,{updated:E})},V=m=>{const _=e.get(m);return _?{..._}:void 0},D=m=>{const _=t.get(m);if(_){const E=V(_).bodies.find(S=>S.id===m);if(E)return E;console.error(`Store integrity error: body ${m} in index, but not in annotation`)}else console.warn(`Attempt to retrieve missing body: ${m}`)},Q=(m,_)=>{if(m.annotation!==_.annotation)throw"Annotation integrity violation: annotation ID must be the same when updating bodies";const E=e.get(m.annotation);if(E){const S=E.bodies.find(H=>H.id===m.id),I={...E,bodies:E.bodies.map(H=>H.id===S.id?_:H)};return e.set(E.id,I),S.id!==_.id&&(t.delete(S.id),t.set(_.id,I.id)),{oldValue:E,newValue:I,bodiesUpdated:[{oldBody:S,newBody:_}]}}else console.warn(`Attempt to add body to missing annotation ${m.annotation}`)},z=(m,_,E=oe.LOCAL)=>{const S=Q(m,_);S&&s(E,{updated:[S]})},j=(m,_=oe.LOCAL)=>{const E=m.map(S=>Q({id:S.id,annotation:S.annotation},S)).filter(Boolean);s(_,{updated:E})},O=m=>{const _=e.get(m.annotation);if(_){const E={..._,target:{..._.target,...m}};return e.set(_.id,E),{oldValue:_,newValue:E,targetUpdated:{oldTarget:_.target,newTarget:m}}}else console.warn(`Attempt to update target on missing annotation: ${m.annotation}`)};return{addAnnotation:r,addBody:p,all:w,bulkDeleteAnnotations:M,bulkDeleteBodies:T,bulkUpdateAnnotations:u,bulkUpdateBodies:j,bulkUpdateTargets:(m,_=oe.LOCAL)=>{const E=m.map(S=>O(S)).filter(Boolean);E.length>0&&s(_,{updated:E})},bulkUpsertAnnotations:h,clear:A,deleteAnnotation:y,deleteBody:k,getAnnotation:V,getBody:D,observe:o,syncAnnotations:b,unobserve:i,updateAnnotation:f,updateBody:z,updateTarget:(m,_=oe.LOCAL)=>{const E=O(m);E&&s(_,{updated:[E]})},upsertAnnotation:d}};let rs=()=>({emit(e,...t){for(let n=this.events[e]||[],o=0,i=n.length;o<i;o++)n[o](...t)},events:{},on(e,t){var n;return((n=this.events)[e]||(n[e]=[])).push(t),()=>{var o;this.events[e]=(o=this.events[e])==null?void 0:o.filter(i=>t!==i)}}});const ls=250,as=(e,t)=>{const n=rs(),o=(t==null?void 0:t.changes)||[];let i=t?t.pointer:-1,s=!1,l=0;const r=p=>{if(!s){const{changes:w}=p,A=performance.now();if(A-l>ls)o.splice(i+1),o.push(w),i=o.length-1;else{const b=o.length-1;o[b]=os(o[b],w)}l=A}s=!1};e.observe(r,{origin:oe.LOCAL});const a=p=>p&&p.length>0&&e.bulkDeleteAnnotations(p),f=p=>p&&p.length>0&&e.bulkUpsertAnnotations(p),d=p=>p&&p.length>0&&e.bulkUpdateAnnotations(p.map(({oldValue:w})=>w)),u=p=>p&&p.length>0&&e.bulkUpdateAnnotations(p.map(({newValue:w})=>w)),g=p=>p&&p.length>0&&e.bulkUpsertAnnotations(p),h=p=>p&&p.length>0&&e.bulkDeleteAnnotations(p);return{canRedo:()=>o.length-1>i,canUndo:()=>i>-1,destroy:()=>e.unobserve(r),getHistory:()=>({changes:[...o],pointer:i}),on:(p,w)=>n.on(p,w),redo:()=>{if(o.length-1>i){s=!0;const{created:p,updated:w,deleted:A}=o[i+1];f(p),u(w),h(A),n.emit("redo",o[i+1]),i+=1}},undo:()=>{if(i>-1){s=!0;const{created:p,updated:w,deleted:A}=o[i];a(p),d(w),g(A),n.emit("undo",o[i]),i-=1}}}},cs=()=>{const e=Xt([]);return{subscribe:e.subscribe.bind(e),set:e.set.bind(e)}},fs=(e,t,n,o)=>{const{hover:i,selection:s,store:l,viewport:r}=e,a=new Map;let f=[],d,u;const g=(b,v)=>{a.has(b)?a.get(b).push(v):a.set(b,[v])},h=(b,v)=>{const y=a.get(b);if(y){const M=y.indexOf(v);M!==-1&&y.splice(M,1)}},p=(b,v,y)=>{a.has(b)&&setTimeout(()=>{a.get(b).forEach(M=>{if(n){const L=Array.isArray(v)?v.map(T=>n.serialize(T)):n.serialize(v),k=y?y instanceof PointerEvent?y:n.serialize(y):void 0;M(L,k)}else M(v,y)})},1)},w=()=>{const{selected:b}=s,v=(b||[]).map(({id:y})=>l.getAnnotation(y));v.forEach(y=>{const M=f.find(L=>L.id===y.id);(!M||!Ne(M,y))&&p("updateAnnotation",y,M)}),f=f.map(y=>v.find(({id:L})=>L===y.id)||y)};s.subscribe(({selected:b})=>{if(!(f.length===0&&b.length===0)){if(f.length===0&&b.length>0)f=b.map(({id:v})=>l.getAnnotation(v));else if(f.length>0&&b.length===0)f.forEach(v=>{const y=l.getAnnotation(v.id);y&&!Ne(y,v)&&p("updateAnnotation",y,v)}),f=[];else{const v=new Set(f.map(M=>M.id)),y=new Set(b.map(({id:M})=>M));f.filter(M=>!y.has(M.id)).forEach(M=>{const L=l.getAnnotation(M.id);L&&!Ne(L,M)&&p("updateAnnotation",L,M)}),f=[...f.filter(M=>y.has(M.id)),...b.filter(({id:M})=>!v.has(M)).map(({id:M})=>l.getAnnotation(M))]}p("selectionChanged",f)}}),i.subscribe(b=>{!d&&b?p("mouseEnterAnnotation",l.getAnnotation(b)):d&&!b?p("mouseLeaveAnnotation",l.getAnnotation(d)):d&&b&&(p("mouseLeaveAnnotation",l.getAnnotation(d)),p("mouseEnterAnnotation",l.getAnnotation(b))),d=b}),r==null||r.subscribe(b=>p("viewportIntersect",b.map(v=>l.getAnnotation(v)))),l.observe(b=>{o&&(u&&clearTimeout(u),u=setTimeout(w,1e3));const{created:v,deleted:y}=b.changes;(v||[]).forEach(M=>p("createAnnotation",M)),(y||[]).forEach(M=>p("deleteAnnotation",M)),(b.changes.updated||[]).filter(M=>[...M.bodiesCreated||[],...M.bodiesDeleted||[],...M.bodiesUpdated||[]].length>0).forEach(({oldValue:M,newValue:L})=>{const k=f.find(T=>T.id===M.id)||M;f=f.map(T=>T.id===M.id?L:T),p("updateAnnotation",L,k)})},{origin:oe.LOCAL}),l.observe(b=>{if(f){const v=new Set(f.map(M=>M.id)),y=(b.changes.updated||[]).filter(({newValue:M})=>v.has(M.id)).map(({newValue:M})=>M);y.length>0&&(f=f.map(M=>y.find(k=>k.id===M.id)||M))}},{origin:oe.REMOTE});const A=b=>v=>{const{updated:y}=v;b?(y||[]).forEach(M=>p("updateAnnotation",M.oldValue,M.newValue)):(y||[]).forEach(M=>p("updateAnnotation",M.newValue,M.oldValue))};return t.on("undo",A(!0)),t.on("redo",A(!1)),{on:g,off:h,emit:p}},us=e=>t=>t.reduce((n,o)=>{const{parsed:i,error:s}=e.parse(o);return s?{parsed:n.parsed,failed:[...n.failed,o]}:i?{parsed:[...n.parsed,i],failed:n.failed}:{...n}},{parsed:[],failed:[]}),ds=(e,t,n)=>{const{store:o,selection:i}=e,s=b=>{if(n){const{parsed:v,error:y}=n.parse(b);v?o.addAnnotation(v,oe.REMOTE):console.error(y)}else o.addAnnotation(jt(b),oe.REMOTE)},l=()=>i.clear(),r=()=>o.clear(),a=b=>{const v=o.getAnnotation(b);return n&&v?n.serialize(v):v},f=()=>n?o.all().map(n.serialize):o.all(),d=()=>{var b;const v=(((b=i.selected)==null?void 0:b.map(y=>y.id))||[]).map(y=>o.getAnnotation(y)).filter(Boolean);return n?v.map(n.serialize):v},u=(b,v=!0)=>fetch(b).then(y=>y.json()).then(y=>(h(y,v),y)),g=b=>{if(typeof b=="string"){const v=o.getAnnotation(b);if(o.deleteAnnotation(b),v)return n?n.serialize(v):v}else{const v=n?n.parse(b).parsed:b;if(v)return o.deleteAnnotation(v),b}},h=(b,v=!0)=>{const y=v?o.syncAnnotations:o.bulkUpsertAnnotations;if(n){const M=n.parseAll||us(n),{parsed:L,failed:k}=M(b);k.length>0&&console.warn(`Discarded ${k.length} invalid annotations`,k),y(L,oe.REMOTE)}else y(b.map(jt),oe.REMOTE)},p=(b,v)=>{b?i.setSelected(b,v):i.clear()},w=b=>{i.setUserSelectAction(b)},A=b=>{if(n){const v=n.parse(b).parsed,y=n.serialize(o.getAnnotation(v.id));return o.updateAnnotation(v),y}else{const v=o.getAnnotation(b.id);return o.updateAnnotation(jt(b)),v}};return{addAnnotation:s,cancelSelected:l,canRedo:t.canRedo,canUndo:t.canUndo,clearAnnotations:r,getAnnotationById:a,getAnnotations:f,getHistory:t.getHistory,getSelected:d,loadAnnotations:u,redo:t.redo,removeAnnotation:g,setAnnotations:h,setSelected:p,setUserSelectAction:w,undo:t.undo,updateAnnotation:A}},gs=(e,t,n)=>typeof t=="function"?t(e,n):t,hs=(e,t)=>typeof e!="function"&&typeof t!="function"?{...e||{},...t||{}}:(n,o)=>{const i=typeof e=="function"?e(n,o):e,s=typeof t=="function"?t(n,o):t;return{...i||{},...s||{}}};let ms="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",ps=e=>crypto.getRandomValues(new Uint8Array(e)),_s=(e,t,n)=>{let o=256-256%e.length;if(o===256){let s=e.length-1;return(l=t)=>{if(!l)return"";let r="";for(;;){let a=n(l),f=l;for(;f--;)if(r+=e[a[f]&s],r.length>=l)return r}}}let i=Math.ceil(1.6*256*t/o);return(s=t)=>{if(!s)return"";let l="";for(;;){let r=n(i),a=i;for(;a--;)if(r[a]<o&&(l+=e[r[a]%e.length],l.length>=s))return l}}},ys=(e,t=21)=>_s(e,t|0,ps),ws=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=ms[n[e]&63];return t};const bs=()=>({isGuest:!0,id:ys("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_",20)()}),Es=e=>{const t=JSON.stringify(e);let n=0;for(let o=0,i=t.length;o<i;o++){let s=t.charCodeAt(o);n=(n<<5)-n+s,n|=0}return`${n}`},qn=e=>e?typeof e=="object"?{...e}:e:void 0,vs=(e,t)=>(Array.isArray(e)?e:[e]).map(n=>{const{id:o,type:i,purpose:s,value:l,created:r,modified:a,creator:f,...d}=n;return{id:o||`temp-${Es(n)}`,annotation:t,type:i,purpose:s,value:l,creator:qn(f),created:r?new Date(r):void 0,updated:a?new Date(a):void 0,...d}}),Ss=e=>e.map(t=>{var n;const{annotation:o,created:i,updated:s,...l}=t,r={...l,created:i==null?void 0:i.toISOString(),modified:s==null?void 0:s.toISOString()};return(n=r.id)!=null&&n.startsWith("temp-")&&delete r.id,r}),As=["#ff7c00","#1ac938","#e8000b","#8b2be2","#9f4800","#f14cc1","#ffc400","#00d7ff","#023eff"],Ms=()=>{const e=[...As];return{assignRandomColor:()=>{const t=Math.floor(Math.random()*e.length),n=e[t];return e.splice(t,1),n},releaseColor:t=>e.push(t)}};globalThis.ANNOTORIOUS_PRESENCE_KEY||(globalThis.ANNOTORIOUS_PRESENCE_KEY=ws());const ks=(e,t={strict:!0,invertY:!1})=>({parse:i=>Wn(i,t),serialize:i=>Zn(i,e,t)}),Kn=e=>(e==null?void 0:e.type)==="SvgSelector"||(e==null?void 0:e.type)==="FragmentSelector"||wt(e),Ts=e=>{if(typeof e=="string")return wt(e);const t=Array.isArray(e.selector)?e.selector.find(Kn):e.selector;return Kn(t)},Wn=(e,t={strict:!0,invertY:!1})=>{const n=e.id||Gn(),{creator:o,created:i,modified:s,body:l,...r}=e,a=vs(l||[],n),f=Array.isArray(e.target)?e.target.find(Ts):e.target;if(!f)return{error:Error(`Unsupported target(s): ${JSON.stringify(f)}`)};const d=typeof f=="string"?f:Array.isArray(f.selector)?f.selector[0]:f.selector,u=wt(d)?Bn(d,t.invertY):(d==null?void 0:d.type)==="SvgSelector"?Xn(d):void 0,g=Array.isArray(r.target)?r.target[0]:r.targret;return u||!t.strict?{parsed:{...r,id:n,bodies:a,target:{created:i?new Date(i):void 0,creator:qn(o),updated:s?new Date(s):void 0,...typeof g=="string"?{}:g,annotation:n,selector:u||d}}}:{error:Error(`Invalid selector: ${JSON.stringify(d)}`)}},Zn=(e,t,n={strict:!0,invertY:!1})=>{const{selector:o,creator:i,created:s,updated:l,updatedBy:r,...a}=e.target;let f;try{o.type===x.RECTANGLE&&!o.geometry.rot?f=Yn(o.geometry):f=Hn(o)}catch(u){if(n.strict)throw u;f=o}const d={...e,"@context":"http://www.w3.org/ns/anno.jsonld",id:e.id,type:"Annotation",body:Ss(e.bodies),created:s==null?void 0:s.toISOString(),creator:i,modified:l==null?void 0:l.toISOString(),target:{...a,source:t,type:"SpecificResource",selector:f}};return delete d.bodies,typeof d.target!="string"&&"annotation"in d.target&&delete d.target.annotation,d},Qe=[];function Ps(e,t=q){let n;const o=new Set;function i(r){if(re(e,r)&&(e=r,n)){const a=!Qe.length;for(const f of o)f[1](),Qe.push(f,e);if(a){for(let f=0;f<Qe.length;f+=2)Qe[f][0](Qe[f+1]);Qe.length=0}}}function s(r){i(r(e))}function l(r,a=q){const f=[r,a];return o.add(f),o.size===1&&(n=t(i,s)||q),r(e),()=>{o.delete(f),o.size===0&&n&&(n(),n=null)}}return{set:i,update:s,subscribe:l}}const Ls=(e,t)=>{const{naturalWidth:n,naturalHeight:o}=e;if(!n&&!o){const{width:i,height:s}=e;t.setAttribute("viewBox",`0 0 ${i} ${s}`),e.addEventListener("load",l=>{const r=l.target;t.setAttribute("viewBox",`0 0 ${r.naturalWidth} ${r.naturalHeight}`)})}else t.setAttribute("viewBox",`0 0 ${n} ${o}`)},Jn=(e,t)=>{Ls(e,t);const{subscribe:n,set:o}=Ps(1);let i;return window.ResizeObserver&&(i=new ResizeObserver(()=>{const l=t.getBoundingClientRect(),{width:r,height:a}=t.viewBox.baseVal,f=Math.max(l.width/r,l.height/a);o(f)}),i.observe(t.parentElement)),{destroy:()=>{i&&i.disconnect()},subscribe:n}},ze=(e,t,n)=>{const o=typeof t=="function"?t(e,n):t;if(o){const{fill:i,fillOpacity:s,stroke:l,strokeWidth:r,strokeOpacity:a}=o;let f="";return i&&(f+=`fill:${i};`),s||s===0?f+=`fill-opacity:${s};`:i&&(f+="fill-opacity:0.25;"),l&&(f+=`stroke:${l};`,f+=`stroke-width:${r||"1"};`,f+=`stroke-opacity:${a||"1"};`),f}},ct=(e,t=0)=>{const{minX:n,minY:o,maxX:i,maxY:s}=e;return{x:n-t,y:o-t,w:i-n+2*t,h:s-o+2*t}},Ie=typeof window>"u"||typeof navigator>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,Is=e=>({}),Qn=e=>({grab:e[0]});function Cs(e){let t,n,o,i;const s=e[8].default,l=ri(s,e,e[7],Qn);return{c(){t=P("g"),l&&l.c(),c(t,"class","a9s-annotation selected")},m(r,a){B(r,t,a),l&&l.m(t,null),n=!0,o||(i=[ee(t,"pointerup",e[2]),ee(t,"pointermove",e[1])],o=!0)},p(r,[a]){l&&l.p&&(!n||a&128)&&ai(l,s,r,r[7],n?li(s,r[7],a,Is):ci(r[7]),Qn)},i(r){n||(U(l,r),n=!0)},o(r){G(l,r),n=!1},d(r){r&&N(t),l&&l.d(r),o=!1,Ae(i)}}}function Os(e,t,n){let{$$slots:o={},$$scope:i}=t;const s=De();let{shape:l}=t,{editor:r}=t,{transform:a}=t,{svgEl:f}=t,d,u,g;const h=A=>b=>{if(d=A,f){const{left:y,top:M}=f.getBoundingClientRect(),L=b.clientX-y,k=b.clientY-M;u=a.elementToImage(L,k)}else{const{offsetX:y,offsetY:M}=b;u=a.elementToImage(y,M)}g=l,b.target.setPointerCapture(b.pointerId),s("grab",b)},p=A=>{if(d){const[b,v]=a.elementToImage(A.offsetX,A.offsetY),y=[b-u[0],v-u[1]];n(3,l=r(g,d,y)),s("change",l)}},w=A=>{A.target.releasePointerCapture(A.pointerId),d=void 0,g=l,s("release",A)};return e.$$set=A=>{"shape"in A&&n(3,l=A.shape),"editor"in A&&n(4,r=A.editor),"transform"in A&&n(5,a=A.transform),"svgEl"in A&&n(6,f=A.svgEl),"$$scope"in A&&n(7,i=A.$$scope)},[h,p,w,l,r,a,f,i,o]}class Et extends me{constructor(t){super(),he(this,t,Os,Cs,re,{shape:3,editor:4,transform:5,svgEl:6})}}function Ds(e){let t,n,o,i,s,l,r,a,f=e[3]&&$n(e);return{c(){t=P("g"),n=P("circle"),f&&f.c(),i=P("circle"),c(n,"class","a9s-handle-buffer svelte-qtyc7s"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=e[5]+6/e[2]),c(n,"role","button"),c(n,"tabindex","0"),c(i,"class",s=Ke(`a9s-handle-dot${e[3]?" selected":""}`)+" svelte-qtyc7s"),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",e[5]),c(t,"class",l=`a9s-handle ${e[8].class||""}`.trim())},m(d,u){B(d,t,u),F(t,n),f&&f.m(t,null),F(t,i),r||(a=[ee(n,"dblclick",e[12]),ee(n,"pointerenter",e[13]),ee(n,"pointerleave",e[14]),ee(n,"pointerdown",e[15]),ee(n,"pointerdown",e[6]),ee(n,"pointerup",e[16]),ee(n,"pointerup",e[7])],r=!0)},p(d,u){u&1&&c(n,"cx",d[0]),u&2&&c(n,"cy",d[1]),u&36&&o!==(o=d[5]+6/d[2])&&c(n,"r",o),d[3]?f?f.p(d,u):(f=$n(d),f.c(),f.m(t,i)):f&&(f.d(1),f=null),u&8&&s!==(s=Ke(`a9s-handle-dot${d[3]?" selected":""}`)+" svelte-qtyc7s")&&c(i,"class",s),u&1&&c(i,"cx",d[0]),u&2&&c(i,"cy",d[1]),u&32&&c(i,"r",d[5]),u&256&&l!==(l=`a9s-handle ${d[8].class||""}`.trim())&&c(t,"class",l)},d(d){d&&N(t),f&&f.d(),r=!1,Ae(a)}}}function Rs(e){let t,n,o,i,s,l,r,a,f;return{c(){t=P("g"),n=P("circle"),i=P("circle"),l=P("circle"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=e[5]*10),c(n,"class","a9s-touch-halo"),Pe(n,"touched",e[4]),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",s=e[5]+10/e[2]),c(i,"class","a9s-handle-buffer svelte-qtyc7s"),c(i,"role","button"),c(i,"tabindex","0"),c(l,"class","a9s-handle-dot"),c(l,"cx",e[0]),c(l,"cy",e[1]),c(l,"r",r=e[5]+2/e[2]),c(t,"class","a9s-touch-handle")},m(d,u){B(d,t,u),F(t,n),F(t,i),F(t,l),a||(f=[ee(i,"dblclick",e[9]),ee(i,"pointerdown",e[10]),ee(i,"pointerdown",e[6]),ee(i,"pointerup",e[11]),ee(i,"pointerup",e[7])],a=!0)},p(d,u){u&1&&c(n,"cx",d[0]),u&2&&c(n,"cy",d[1]),u&32&&o!==(o=d[5]*10)&&c(n,"r",o),u&16&&Pe(n,"touched",d[4]),u&1&&c(i,"cx",d[0]),u&2&&c(i,"cy",d[1]),u&36&&s!==(s=d[5]+10/d[2])&&c(i,"r",s),u&1&&c(l,"cx",d[0]),u&2&&c(l,"cy",d[1]),u&36&&r!==(r=d[5]+2/d[2])&&c(l,"r",r)},d(d){d&&N(t),a=!1,Ae(f)}}}function $n(e){let t,n;return{c(){t=P("circle"),c(t,"class","a9s-handle-selected"),c(t,"cx",e[0]),c(t,"cy",e[1]),c(t,"r",n=e[5]+8/e[2])},m(o,i){B(o,t,i)},p(o,i){i&1&&c(t,"cx",o[0]),i&2&&c(t,"cy",o[1]),i&36&&n!==(n=o[5]+8/o[2])&&c(t,"r",n)},d(o){o&&N(t)}}}function Ns(e){let t;function n(s,l){return Ie?Rs:Ds}let i=n()(e);return{c(){i.c(),t=Me()},m(s,l){i.m(s,l),B(s,t,l)},p(s,[l]){i.p(s,l)},i:q,o:q,d(s){s&&N(t),i.d(s)}}}function Bs(e,t,n){let o,{x:i}=t,{y:s}=t,{scale:l}=t,{selected:r=void 0}=t,a=!1;const f=y=>{y.pointerType==="touch"&&n(4,a=!0)},d=()=>n(4,a=!1);function u(y){ge.call(this,e,y)}function g(y){ge.call(this,e,y)}function h(y){ge.call(this,e,y)}function p(y){ge.call(this,e,y)}function w(y){ge.call(this,e,y)}function A(y){ge.call(this,e,y)}function b(y){ge.call(this,e,y)}function v(y){ge.call(this,e,y)}return e.$$set=y=>{n(8,t=Ce(Ce({},t),bn(y))),"x"in y&&n(0,i=y.x),"y"in y&&n(1,s=y.y),"scale"in y&&n(2,l=y.scale),"selected"in y&&n(3,r=y.selected)},e.$$.update=()=>{e.$$.dirty&4&&n(5,o=4/l)},t=bn(t),[i,s,l,r,a,o,f,d,t,u,g,h,p,w,A,b,v]}class Ye extends me{constructor(t){super(),he(this,t,Bs,Ns,re,{x:0,y:1,scale:2,selected:3})}}function Ys(e){let t,n,o,i,s,l,r;return{c(){t=P("g"),n=P("circle"),i=P("circle"),s=P("circle"),c(n,"class","a9s-polygon-midpoint-buffer svelte-12ykj76"),c(n,"cx",e[0]),c(n,"cy",e[1]),c(n,"r",o=1.75*e[2]),c(i,"class","a9s-polygon-midpoint-outer svelte-12ykj76"),c(i,"cx",e[0]),c(i,"cy",e[1]),c(i,"r",e[2]),c(s,"class","a9s-polygon-midpoint-inner svelte-12ykj76"),c(s,"cx",e[0]),c(s,"cy",e[1]),c(s,"r",e[2]),c(t,"class","a9s-polygon-midpoint svelte-12ykj76")},m(a,f){B(a,t,f),F(t,n),F(t,i),F(t,s),l||(r=[ee(n,"pointerdown",e[5]),ee(n,"pointerdown",e[3])],l=!0)},p(a,f){f&1&&c(n,"cx",a[0]),f&2&&c(n,"cy",a[1]),f&4&&o!==(o=1.75*a[2])&&c(n,"r",o),f&1&&c(i,"cx",a[0]),f&2&&c(i,"cy",a[1]),f&4&&c(i,"r",a[2]),f&1&&c(s,"cx",a[0]),f&2&&c(s,"cy",a[1]),f&4&&c(s,"r",a[2])},d(a){a&&N(t),l=!1,Ae(r)}}}function Us(e){let t;return{c(){t=P("circle"),c(t,"cx",e[0]),c(t,"cy",e[1]),c(t,"r",e[2])},m(n,o){B(n,t,o)},p(n,o){o&1&&c(t,"cx",n[0]),o&2&&c(t,"cy",n[1]),o&4&&c(t,"r",n[2])},d(n){n&&N(t)}}}function Vs(e){let t;function n(s,l){return Ie?Us:Ys}let i=n()(e);return{c(){i.c(),t=Me()},m(s,l){i.m(s,l),B(s,t,l)},p(s,[l]){i.p(s,l)},i:q,o:q,d(s){s&&N(t),i.d(s)}}}function Xs(e,t,n){let o,{x:i}=t,{y:s}=t,{scale:l}=t;const r=f=>{f.pointerType};function a(f){ge.call(this,e,f)}return e.$$set=f=>{"x"in f&&n(0,i=f.x),"y"in f&&n(1,s=f.y),"scale"in f&&n(4,l=f.scale)},e.$$.update=()=>{e.$$.dirty&16&&n(2,o=4/l)},[i,s,o,r,l,a]}class zt extends me{constructor(t){super(),he(this,t,Xs,Vs,re,{x:0,y:1,scale:4})}}function qt(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function xn(e,t,n){const o=e.slice();return o[28]=t[n],o[30]=n,o}function Kt(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function Wt(e){const t=e.slice(),n=t[10][t[6]];return t[28]=n.point,t}function eo(e){let t,n,o,i;return{c(){t=P("circle"),c(t,"cx",n=e[28][0]),c(t,"cy",o=e[28][1]),c(t,"r",i=ft/e[3]),c(t,"class","svelte-1h2slbm")},m(s,l){B(s,t,l)},p(s,l){l[0]&1088&&n!==(n=s[28][0])&&c(t,"cx",n),l[0]&1088&&o!==(o=s[28][1])&&c(t,"cy",o),l[0]&8&&i!==(i=ft/s[3])&&c(t,"r",i)},d(s){s&&N(t)}}}function to(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("mask"),n=P("rect"),r=P("circle"),c(n,"x",o=e[9].x),c(n,"y",i=e[9].y),c(n,"width",s=e[9].w),c(n,"height",l=e[9].h),c(n,"class","svelte-1h2slbm"),c(r,"cx",a=e[28][0]),c(r,"cy",f=e[28][1]),c(r,"r",d=ft/e[3]),c(r,"class","svelte-1h2slbm"),c(t,"id",`${e[19]}-inner`),c(t,"class","a9s-polygon-editor-mask svelte-1h2slbm")},m(u,g){B(u,t,g),F(t,n),F(t,r)},p(u,g){g[0]&512&&o!==(o=u[9].x)&&c(n,"x",o),g[0]&512&&i!==(i=u[9].y)&&c(n,"y",i),g[0]&512&&s!==(s=u[9].w)&&c(n,"width",s),g[0]&512&&l!==(l=u[9].h)&&c(n,"height",l),g[0]&1088&&a!==(a=u[28][0])&&c(r,"cx",a),g[0]&1088&&f!==(f=u[28][1])&&c(r,"cy",f),g[0]&8&&d!==(d=ft/u[3])&&c(r,"r",d)},d(u){u&&N(t)}}}function no(e){let t,n;return t=new Ye({props:{class:"a9s-corner-handle",x:e[28][0],y:e[28][1],scale:e[3],selected:e[8].includes(e[30])}}),t.$on("pointerenter",e[11]),t.$on("pointerleave",e[12]),t.$on("pointerdown",e[15]),t.$on("pointerdown",function(){se(e[27](`HANDLE-${e[30]}`))&&e[27](`HANDLE-${e[30]}`).apply(this,arguments)}),t.$on("pointerup",e[16](e[30])),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&32&&(s.x=e[28][0]),i[0]&32&&(s.y=e[28][1]),i[0]&8&&(s.scale=e[3]),i[0]&256&&(s.selected=e[8].includes(e[30])),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function oo(e){let t,n;return t=new zt({props:{x:e[28][0],y:e[28][1],scale:e[3]}}),t.$on("pointerdown",function(){se(e[18](e[6]))&&e[18](e[6]).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&1088&&(s.x=e[28][0]),i[0]&1088&&(s.y=e[28][1]),i[0]&8&&(s.scale=e[3]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Hs(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,w,A,b,v,y,M,L,k=e[6]!==void 0&&!e[7]&&eo(Wt(e)),T=e[6]!==void 0&&!e[7]&&to(Kt(e)),V=Se(e[5].points),D=[];for(let j=0;j<V.length;j+=1)D[j]=no(xn(e,V,j));const Q=j=>G(D[j],1,1,()=>{D[j]=null});let z=e[6]!==void 0&&!e[7]&&oo(qt(e));return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),k&&k.c(),T&&T.c(),d=be(),u=P("polygon"),h=be(),p=P("polygon"),A=be();for(let j=0;j<D.length;j+=1)D[j].c();b=be(),z&&z.c(),v=Me(),c(o,"x",i=e[9].x),c(o,"y",s=e[9].y),c(o,"width",l=e[9].w),c(o,"height",r=e[9].h),c(o,"class","svelte-1h2slbm"),c(a,"points",f=e[5].points.map(io).join(" ")),c(a,"class","svelte-1h2slbm"),c(n,"id",`${e[19]}-outer`),c(n,"class","a9s-polygon-editor-mask svelte-1h2slbm"),c(u,"class","a9s-outer"),c(u,"mask",`url(#${e[19]}-outer)`),c(u,"points",g=e[5].points.map(so).join(" ")),c(p,"class","a9s-inner a9s-shape-handle"),c(p,"mask",`url(#${e[19]}-inner)`),c(p,"style",e[1]),c(p,"points",w=e[5].points.map(ro).join(" "))},m(j,O){B(j,t,O),F(t,n),F(n,o),F(n,a),k&&k.m(n,null),T&&T.m(t,null),B(j,d,O),B(j,u,O),B(j,h,O),B(j,p,O),B(j,A,O);for(let m=0;m<D.length;m+=1)D[m]&&D[m].m(j,O);B(j,b,O),z&&z.m(j,O),B(j,v,O),y=!0,M||(L=[ee(u,"pointerup",e[14]),ee(u,"pointerdown",function(){se(e[27]("SHAPE"))&&e[27]("SHAPE").apply(this,arguments)}),ee(p,"pointermove",e[13]),ee(p,"pointerup",e[14]),ee(p,"pointerdown",function(){se(e[27]("SHAPE"))&&e[27]("SHAPE").apply(this,arguments)})],M=!0)},p(j,O){if(e=j,(!y||O[0]&512&&i!==(i=e[9].x))&&c(o,"x",i),(!y||O[0]&512&&s!==(s=e[9].y))&&c(o,"y",s),(!y||O[0]&512&&l!==(l=e[9].w))&&c(o,"width",l),(!y||O[0]&512&&r!==(r=e[9].h))&&c(o,"height",r),(!y||O[0]&32&&f!==(f=e[5].points.map(io).join(" ")))&&c(a,"points",f),e[6]!==void 0&&!e[7]?k?k.p(Wt(e),O):(k=eo(Wt(e)),k.c(),k.m(n,null)):k&&(k.d(1),k=null),e[6]!==void 0&&!e[7]?T?T.p(Kt(e),O):(T=to(Kt(e)),T.c(),T.m(t,null)):T&&(T.d(1),T=null),(!y||O[0]&32&&g!==(g=e[5].points.map(so).join(" ")))&&c(u,"points",g),(!y||O[0]&2)&&c(p,"style",e[1]),(!y||O[0]&32&&w!==(w=e[5].points.map(ro).join(" ")))&&c(p,"points",w),O[0]&134322472){V=Se(e[5].points);let m;for(m=0;m<V.length;m+=1){const _=xn(e,V,m);D[m]?(D[m].p(_,O),U(D[m],1)):(D[m]=no(_),D[m].c(),U(D[m],1),D[m].m(b.parentNode,b))}for(Ee(),m=V.length;m<D.length;m+=1)Q(m);ve()}e[6]!==void 0&&!e[7]?z?(z.p(qt(e),O),O[0]&192&&U(z,1)):(z=oo(qt(e)),z.c(),U(z,1),z.m(v.parentNode,v)):z&&(Ee(),G(z,1,1,()=>{z=null}),ve())},i(j){if(!y){for(let O=0;O<V.length;O+=1)U(D[O]);U(z),y=!0}},o(j){D=D.filter(Boolean);for(let O=0;O<D.length;O+=1)G(D[O]);G(z),y=!1},d(j){j&&(N(t),N(d),N(u),N(h),N(p),N(A),N(b),N(v)),k&&k.d(),T&&T.d(),Ge(D,j),z&&z.d(j),M=!1,Ae(L)}}}function Gs(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[17],svgEl:e[4],$$slots:{default:[Hs,({grab:o})=>({27:o}),({grab:o})=>[o?134217728:0]]},$$scope:{ctx:e}}}),t.$on("change",e[20]),t.$on("grab",e[21]),t.$on("release",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&1&&(s.shape=o[0]),i[0]&4&&(s.transform=o[2]),i[0]&16&&(s.svgEl=o[4]),i[0]&134219754|i[1]&1&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const js=250,Fs=1e3,zs=12,ft=4.5,io=e=>e.join(","),so=e=>e.join(","),ro=e=>e.join(",");function qs(e,t,n){let o,i,s;const l=De();let{shape:r}=t,{computedStyle:a}=t,{transform:f}=t,{viewportScale:d=1}=t,{svgEl:u}=t,g,h=!1,p,w=[];const A=()=>n(7,h=!0),b=()=>n(7,h=!1),v=m=>{if(w.length>0||!i.some(Z=>Z.visible)){n(6,g=void 0);return}const[_,E]=f.elementToImage(m.offsetX,m.offsetY),S=Z=>Math.pow(Z[0]-_,2)+Math.pow(Z[1]-E,2),I=o.points.reduce((Z,J)=>S(J)<S(Z)?J:Z),H=i.filter(Z=>Z.visible).reduce((Z,J)=>S(J.point)<S(Z.point)?J:Z),Y=Math.pow(Fs/d,2);S(I)<Y||S(H.point)<Y?n(6,g=i.indexOf(H)):n(6,g=void 0)},y=()=>{document.activeElement!==u&&u.focus()},M=()=>{n(8,w=[]),y()},L=m=>{n(7,h=!0),m.preventDefault(),m.stopPropagation(),p=performance.now()},k=m=>_=>{if(!p||Ie||performance.now()-p>js)return;const E=w.includes(m);_.metaKey||_.ctrlKey||_.shiftKey?E?n(8,w=w.filter(S=>S!==m)):n(8,w=[...w,m]):E&&w.length>1?n(8,w=[m]):E?n(8,w=[]):n(8,w=[m]),y()},T=(m,_,E)=>{y();let S;const I=m.geometry;w.length>1?S=I.points.map(([Y,K],Z)=>w.includes(Z)?[Y+E[0],K+E[1]]:[Y,K]):_==="SHAPE"?S=I.points.map(([Y,K])=>[Y+E[0],K+E[1]]):S=I.points.map(([Y,K],Z)=>_===`HANDLE-${Z}`?[Y+E[0],K+E[1]]:[Y,K]);const H=ue(S);return{...m,geometry:{points:S,bounds:H}}},V=m=>async _=>{_.stopPropagation();const E=[...o.points.slice(0,m+1),i[m].point,...o.points.slice(m+1)],S=ue(E);l("change",{...r,geometry:{points:E,bounds:S}}),await kn();const I=[...document.querySelectorAll(".a9s-handle")][m+1];if(I!=null&&I.firstChild){const H=new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,clientX:_.clientX,clientY:_.clientY,pointerId:_.pointerId,pointerType:_.pointerType,isPrimary:_.isPrimary,buttons:_.buttons});I.firstChild.dispatchEvent(H)}},D=()=>{if(o.points.length-w.length<3)return;const m=o.points.filter((E,S)=>!w.includes(S)),_=ue(m);l("change",{...r,geometry:{points:m,bounds:_}}),n(8,w=[])};Oe(()=>{if(Ie)return;const m=_=>{(_.key==="Delete"||_.key==="Backspace")&&(_.preventDefault(),D())};return u.addEventListener("pointermove",v),u.addEventListener("keydown",m),()=>{u.removeEventListener("pointermove",v),u.removeEventListener("keydown",m)}});const Q=`polygon-mask-${Math.random().toString(36).substring(2,12)}`;function z(m){ge.call(this,e,m)}function j(m){ge.call(this,e,m)}function O(m){ge.call(this,e,m)}return e.$$set=m=>{"shape"in m&&n(0,r=m.shape),"computedStyle"in m&&n(1,a=m.computedStyle),"transform"in m&&n(2,f=m.transform),"viewportScale"in m&&n(3,d=m.viewportScale),"svgEl"in m&&n(4,u=m.svgEl)},e.$$.update=()=>{e.$$.dirty[0]&1&&n(5,o=r.geometry),e.$$.dirty[0]&40&&n(10,i=Ie?[]:o.points.map((m,_)=>{const E=_===o.points.length-1?o.points[0]:o.points[_+1],S=(m[0]+E[0])/2,I=(m[1]+E[1])/2,Y=Math.sqrt(Math.pow(E[0]-S,2)+Math.pow(E[1]-I,2))>zs/d;return{point:[S,I],visible:Y}})),e.$$.dirty[0]&40&&n(9,s=ct(o.bounds,ft/d))},[r,a,f,d,u,o,g,h,w,s,i,A,b,v,M,L,k,T,V,Q,z,j,O]}class lo extends me{constructor(t){super(),he(this,t,qs,Gs,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4},null,[-1,-1])}}const ao=(e,t,n)=>{const[o,i]=e,[s,l]=t,r=Math.cos(n),a=Math.sin(n),f=o-s,d=i-l;return[s+f*r-d*a,l+f*a+d*r]},Ks=(e,t,n,o,i=0)=>{const s=[[e,t],[e+n,t],[e+n,t+o],[e,t+o]],l=[e+n/2,t+o/2];return s.map(r=>ao(r,l,i))},co=(e,t)=>{const{x:n,y:o,w:i,h:s,rot:l=0}=e,r=[n+i/2,o+s/2];let a=[n+i/2,o-t];return ao(a,r,l)},Ws=(e,t,n)=>{const o=Math.cos(n),i=Math.sin(n);return[e*o+t*i,-e*i+t*o]},Zs=(e,t,n)=>{const o=e[0]-n[0],i=e[1]-n[1],s=Math.atan2(i,o),l=t[0]-n[0],r=t[1]-n[1];return Math.atan2(r,l)-s},Js=(e,t=10)=>{const n=t*Math.PI/180;return Math.round(e/n)*n};function Qs(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,w,A,b,v,y,M,L,k,T,V,D,Q,z,j,O,m,_,E,S,I,H,Y,K,Z,J,te,ye,ie,ke,X,de,ne,we,ce,qe,At,Mt,kt,fn,Ue,un,Ve,dn,Xe,gn,He,$,hn,ii;return k=new Ye({props:{class:"a9s-rotation-handle",x:e[7][0],y:e[7][1],scale:e[3]}}),k.$on("pointerdown",function(){se(e[16]("ROTATION"))&&e[16]("ROTATION").apply(this,arguments)}),Ue=new Ye({props:{class:"a9s-corner-handle-topleft",x:e[6][0][0],y:e[6][0][1],scale:e[3]}}),Ue.$on("pointerdown",function(){se(e[16]("TOP_LEFT"))&&e[16]("TOP_LEFT").apply(this,arguments)}),Ve=new Ye({props:{class:"a9s-corner-handle-topright",x:e[6][1][0],y:e[6][1][1],scale:e[3]}}),Ve.$on("pointerdown",function(){se(e[16]("TOP_RIGHT"))&&e[16]("TOP_RIGHT").apply(this,arguments)}),Xe=new Ye({props:{class:"a9s-corner-handle-bottomright",x:e[6][2][0],y:e[6][2][1],scale:e[3]}}),Xe.$on("pointerdown",function(){se(e[16]("BOTTOM_RIGHT"))&&e[16]("BOTTOM_RIGHT").apply(this,arguments)}),He=new Ye({props:{class:"a9s-corner-handle-bottomleft",x:e[6][3][0],y:e[6][3][1],scale:e[3]}}),He.$on("pointerdown",function(){se(e[16]("BOTTOM_LEFT"))&&e[16]("BOTTOM_LEFT").apply(this,arguments)}),{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),d=be(),u=P("g"),g=P("line"),b=P("line"),fe(k.$$.fragment),T=be(),V=P("g"),D=P("polygon"),z=P("polygon"),O=be(),m=P("line"),H=be(),Y=P("line"),ye=be(),ie=P("line"),we=be(),ce=P("line"),fn=be(),fe(Ue.$$.fragment),un=be(),fe(Ve.$$.fragment),dn=be(),fe(Xe.$$.fragment),gn=be(),fe(He.$$.fragment),c(o,"class","rect-mask-bg svelte-1bwhzbc"),c(o,"x",i=e[5].x),c(o,"y",s=e[5].y),c(o,"width",l=e[5].w),c(o,"height",r=e[5].h),c(a,"class","rect-mask-fg svelte-1bwhzbc"),c(a,"points",f=e[6].map(fo).join(" ")),c(n,"id",e[9]),c(n,"class","a9s-rectangle-editor-mask svelte-1bwhzbc"),c(g,"class","a9s-rotation-handle-line-bg"),c(g,"x1",h=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2),c(g,"y1",p=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2),c(g,"x2",w=e[7][0]),c(g,"y2",A=e[7][1]),c(g,"pointer-events","none"),c(b,"class","a9s-rotation-handle-line-fg"),c(b,"x1",v=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2),c(b,"y1",y=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2),c(b,"x2",M=e[7][0]),c(b,"y2",L=e[7][1]),c(b,"pointer-events","none"),c(u,"class","a9s-rotation-handle-group"),c(D,"class","a9s-outer"),c(D,"mask",`url(#${e[9]})`),c(D,"points",Q=e[6].map(uo).join(" ")),c(z,"class","a9s-inner a9s-shape-handle"),c(z,"style",e[1]),c(z,"points",j=e[6].map(go).join(" ")),c(m,"class","a9s-edge-handle a9s-edge-handle-top"),c(m,"x1",_=e[6][0][0]),c(m,"y1",E=e[6][0][1]),c(m,"x2",S=e[6][1][0]),c(m,"y2",I=e[6][1][1]),c(Y,"class","a9s-edge-handle a9s-edge-handle-right"),c(Y,"x1",K=e[6][1][0]),c(Y,"y1",Z=e[6][1][1]),c(Y,"x2",J=e[6][2][0]),c(Y,"y2",te=e[6][2][1]),c(ie,"class","a9s-edge-handle a9s-edge-handle-bottom"),c(ie,"x1",ke=e[6][2][0]),c(ie,"y1",X=e[6][2][1]),c(ie,"x2",de=e[6][3][0]),c(ie,"y2",ne=e[6][3][1]),c(ce,"class","a9s-edge-handle a9s-edge-handle-left"),c(ce,"x1",qe=e[6][3][0]),c(ce,"y1",At=e[6][3][1]),c(ce,"x2",Mt=e[6][0][0]),c(ce,"y2",kt=e[6][0][1])},m(W,R){B(W,t,R),F(t,n),F(n,o),F(n,a),B(W,d,R),B(W,u,R),F(u,g),F(u,b),le(k,u,null),B(W,T,R),B(W,V,R),F(V,D),F(V,z),B(W,O,R),B(W,m,R),B(W,H,R),B(W,Y,R),B(W,ye,R),B(W,ie,R),B(W,we,R),B(W,ce,R),B(W,fn,R),le(Ue,W,R),B(W,un,R),le(Ve,W,R),B(W,dn,R),le(Xe,W,R),B(W,gn,R),le(He,W,R),$=!0,hn||(ii=[ee(D,"pointerdown",function(){se(e[16]("SHAPE"))&&e[16]("SHAPE").apply(this,arguments)}),ee(z,"pointerdown",function(){se(e[16]("SHAPE"))&&e[16]("SHAPE").apply(this,arguments)}),ee(m,"pointerdown",function(){se(e[16]("TOP"))&&e[16]("TOP").apply(this,arguments)}),ee(Y,"pointerdown",function(){se(e[16]("RIGHT"))&&e[16]("RIGHT").apply(this,arguments)}),ee(ie,"pointerdown",function(){se(e[16]("BOTTOM"))&&e[16]("BOTTOM").apply(this,arguments)}),ee(ce,"pointerdown",function(){se(e[16]("LEFT"))&&e[16]("LEFT").apply(this,arguments)})],hn=!0)},p(W,R){e=W,(!$||R&32&&i!==(i=e[5].x))&&c(o,"x",i),(!$||R&32&&s!==(s=e[5].y))&&c(o,"y",s),(!$||R&32&&l!==(l=e[5].w))&&c(o,"width",l),(!$||R&32&&r!==(r=e[5].h))&&c(o,"height",r),(!$||R&64&&f!==(f=e[6].map(fo).join(" ")))&&c(a,"points",f),(!$||R&64&&h!==(h=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2))&&c(g,"x1",h),(!$||R&64&&p!==(p=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2))&&c(g,"y1",p),(!$||R&128&&w!==(w=e[7][0]))&&c(g,"x2",w),(!$||R&128&&A!==(A=e[7][1]))&&c(g,"y2",A),(!$||R&64&&v!==(v=e[6][0][0]+(e[6][1][0]-e[6][0][0])/2))&&c(b,"x1",v),(!$||R&64&&y!==(y=e[6][0][1]+(e[6][1][1]-e[6][0][1])/2))&&c(b,"y1",y),(!$||R&128&&M!==(M=e[7][0]))&&c(b,"x2",M),(!$||R&128&&L!==(L=e[7][1]))&&c(b,"y2",L);const Tt={};R&128&&(Tt.x=e[7][0]),R&128&&(Tt.y=e[7][1]),R&8&&(Tt.scale=e[3]),k.$set(Tt),(!$||R&64&&Q!==(Q=e[6].map(uo).join(" ")))&&c(D,"points",Q),(!$||R&2)&&c(z,"style",e[1]),(!$||R&64&&j!==(j=e[6].map(go).join(" ")))&&c(z,"points",j),(!$||R&64&&_!==(_=e[6][0][0]))&&c(m,"x1",_),(!$||R&64&&E!==(E=e[6][0][1]))&&c(m,"y1",E),(!$||R&64&&S!==(S=e[6][1][0]))&&c(m,"x2",S),(!$||R&64&&I!==(I=e[6][1][1]))&&c(m,"y2",I),(!$||R&64&&K!==(K=e[6][1][0]))&&c(Y,"x1",K),(!$||R&64&&Z!==(Z=e[6][1][1]))&&c(Y,"y1",Z),(!$||R&64&&J!==(J=e[6][2][0]))&&c(Y,"x2",J),(!$||R&64&&te!==(te=e[6][2][1]))&&c(Y,"y2",te),(!$||R&64&&ke!==(ke=e[6][2][0]))&&c(ie,"x1",ke),(!$||R&64&&X!==(X=e[6][2][1]))&&c(ie,"y1",X),(!$||R&64&&de!==(de=e[6][3][0]))&&c(ie,"x2",de),(!$||R&64&&ne!==(ne=e[6][3][1]))&&c(ie,"y2",ne),(!$||R&64&&qe!==(qe=e[6][3][0]))&&c(ce,"x1",qe),(!$||R&64&&At!==(At=e[6][3][1]))&&c(ce,"y1",At),(!$||R&64&&Mt!==(Mt=e[6][0][0]))&&c(ce,"x2",Mt),(!$||R&64&&kt!==(kt=e[6][0][1]))&&c(ce,"y2",kt);const Pt={};R&64&&(Pt.x=e[6][0][0]),R&64&&(Pt.y=e[6][0][1]),R&8&&(Pt.scale=e[3]),Ue.$set(Pt);const Lt={};R&64&&(Lt.x=e[6][1][0]),R&64&&(Lt.y=e[6][1][1]),R&8&&(Lt.scale=e[3]),Ve.$set(Lt);const It={};R&64&&(It.x=e[6][2][0]),R&64&&(It.y=e[6][2][1]),R&8&&(It.scale=e[3]),Xe.$set(It);const Ct={};R&64&&(Ct.x=e[6][3][0]),R&64&&(Ct.y=e[6][3][1]),R&8&&(Ct.scale=e[3]),He.$set(Ct)},i(W){$||(U(k.$$.fragment,W),U(Ue.$$.fragment,W),U(Ve.$$.fragment,W),U(Xe.$$.fragment,W),U(He.$$.fragment,W),$=!0)},o(W){G(k.$$.fragment,W),G(Ue.$$.fragment,W),G(Ve.$$.fragment,W),G(Xe.$$.fragment,W),G(He.$$.fragment,W),$=!1},d(W){W&&(N(t),N(d),N(u),N(T),N(V),N(O),N(m),N(H),N(Y),N(ye),N(ie),N(we),N(ce),N(fn),N(un),N(dn),N(gn)),ae(k),ae(Ue,W),ae(Ve,W),ae(Xe,W),ae(He,W),hn=!1,Ae(ii)}}}function $s(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[8],svgEl:e[4],$$slots:{default:[Qs,({grab:o})=>({16:o}),({grab:o})=>o?65536:0]},$$scope:{ctx:e}}}),t.$on("grab",e[12]),t.$on("change",e[13]),t.$on("release",e[14]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,[i]){const s={};i&1&&(s.shape=o[0]),i&4&&(s.transform=o[2]),i&16&&(s.svgEl=o[4]),i&196842&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const fo=e=>`${e[0]},${e[1]}`,uo=e=>`${e[0]},${e[1]}`,go=e=>`${e[0]},${e[1]}`;function xs(e,t,n){let o,i,s,l,r,{shape:a}=t,{computedStyle:f}=t,{transform:d}=t,{viewportScale:u=1}=t,{svgEl:g}=t,h=!1;const p=(y,M,L)=>{let{x:k,y:T,w:V,h:D,rot:Q=0}=y.geometry;const[z,j]=L;if(M==="ROTATION"){const m=co(y.geometry,o),_=m[0]+z,E=m[1]+j,S=[k+V/2,T+D/2];Q+=Zs([m[0],m[1]],[_,E],S),h&&(Q=Js(Q));const I=2*Math.PI;Q=(Q%I+I)%I}else if(M==="SHAPE")k+=z,T+=j;else{let m=0,_=0,E=V,S=D;const[I,H]=Q!==0?Ws(z,j,Q):[z,j];switch(M){case"TOP":case"TOP_LEFT":case"TOP_RIGHT":_+=H;break;case"BOTTOM":case"BOTTOM_LEFT":case"BOTTOM_RIGHT":S+=H;break}switch(M){case"LEFT":case"TOP_LEFT":case"BOTTOM_LEFT":m+=I;break;case"RIGHT":case"TOP_RIGHT":case"BOTTOM_RIGHT":E+=I;break}const Y=(m+E)/2,K=(_+S)/2;V=Math.abs(E-m),D=Math.abs(S-_);const Z=[k+y.geometry.w/2,T+y.geometry.h/2],J=[Y-y.geometry.w/2,K-y.geometry.h/2],te=Math.cos(Q),ye=Math.sin(Q),ie=Z[0]+J[0]*te-J[1]*ye,ke=Z[1]+J[0]*ye+J[1]*te;k=ie-V/2,T=ke-D/2}const O=ue(s);return{...y,geometry:{x:k,y:T,w:V,h:D,rot:Q,bounds:O}}};Oe(()=>{const y=L=>{L.key==="Shift"&&(h=!0)},M=L=>{L.key==="Shift"&&(h=!1)};return window.addEventListener("keydown",y),window.addEventListener("keyup",M),()=>{window.removeEventListener("keydown",y),window.removeEventListener("keyup",M)}});const w=`rect-mask-${Math.random().toString(36).substring(2,12)}`;function A(y){ge.call(this,e,y)}function b(y){ge.call(this,e,y)}function v(y){ge.call(this,e,y)}return e.$$set=y=>{"shape"in y&&n(0,a=y.shape),"computedStyle"in y&&n(1,f=y.computedStyle),"transform"in y&&n(2,d=y.transform),"viewportScale"in y&&n(3,u=y.viewportScale),"svgEl"in y&&n(4,g=y.svgEl)},e.$$.update=()=>{e.$$.dirty&8&&n(11,o=20/u),e.$$.dirty&1&&n(10,i=a.geometry),e.$$.dirty&1024&&n(6,s=Ks(i.x,i.y,i.w,i.h,i.rot)),e.$$.dirty&3072&&n(7,l=co(i,o)),e.$$.dirty&1032&&n(5,r=ct(i.bounds,5/u))},[a,f,d,u,g,r,s,l,p,w,i,o,A,b,v]}class ho extends me{constructor(t){super(),he(this,t,xs,$s,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4})}}var mo=Object.prototype.hasOwnProperty;function Zt(e,t){var n,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((o=e.length)===t.length)for(;o--&&Zt(e[o],t[o]););return o===-1}if(!n||typeof e=="object"){o=0;for(n in e)if(mo.call(e,n)&&++o&&!mo.call(t,n)||!(n in t)||!Zt(e[n],t[n]))return!1;return Object.keys(t).length===o}}return e!==e&&t!==t}const er=12,tr=(e,t)=>e.polygons.reduce((n,o,i)=>{const s=o.rings.reduce((l,r,a)=>{const f=r.points.map((d,u)=>{const g=u===r.points.length-1?r.points[0]:r.points[u+1],h=(d[0]+g[0])/2,p=(d[1]+g[1])/2,A=Math.sqrt(Math.pow(g[0]-h,2)+Math.pow(g[1]-p,2))>er/t;return{point:[h,p],visible:A,elementIdx:i,ringIdx:a,pointIdx:u}});return[...l,...f]},[]);return[...n,...s]},[]);function Jt(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function po(e,t,n){const o=e.slice();return o[30]=t[n],o[32]=n,o}function _o(e,t,n){const o=e.slice();return o[33]=t[n],o[35]=n,o}function yo(e,t,n){const o=e.slice();return o[29]=t[n],o[37]=n,o}function Qt(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function $t(e){const t=e.slice(),n=t[10][t[6]];return t[29]=n.point,t}function wo(e){let t,n,o,i;return{c(){t=P("circle"),c(t,"cx",n=e[29][0]),c(t,"cy",o=e[29][1]),c(t,"r",i=ut/e[3]),c(t,"class","svelte-1vxo6dc")},m(s,l){B(s,t,l)},p(s,l){l[0]&1088&&n!==(n=s[29][0])&&c(t,"cx",n),l[0]&1088&&o!==(o=s[29][1])&&c(t,"cy",o),l[0]&8&&i!==(i=ut/s[3])&&c(t,"r",i)},d(s){s&&N(t)}}}function bo(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("mask"),n=P("rect"),r=P("circle"),c(n,"x",o=e[9].x),c(n,"y",i=e[9].y),c(n,"width",s=e[9].w),c(n,"height",l=e[9].h),c(n,"class","svelte-1vxo6dc"),c(r,"cx",a=e[29][0]),c(r,"cy",f=e[29][1]),c(r,"r",d=ut/e[3]),c(r,"class","svelte-1vxo6dc"),c(t,"id",`${e[18]}-${e[32]}-inner`),c(t,"class","a9s-multipolygon-editor-mask svelte-1vxo6dc")},m(u,g){B(u,t,g),F(t,n),F(t,r)},p(u,g){g[0]&512&&o!==(o=u[9].x)&&c(n,"x",o),g[0]&512&&i!==(i=u[9].y)&&c(n,"y",i),g[0]&512&&s!==(s=u[9].w)&&c(n,"width",s),g[0]&512&&l!==(l=u[9].h)&&c(n,"height",l),g[0]&1088&&a!==(a=u[29][0])&&c(r,"cx",a),g[0]&1088&&f!==(f=u[29][1])&&c(r,"cy",f),g[0]&8&&d!==(d=ut/u[3])&&c(r,"r",d)},d(u){u&&N(t)}}}function Eo(e){let t,n;function o(...i){return e[19](e[32],e[35],e[37],...i)}return t=new Ye({props:{class:"a9s-corner-handle",x:e[29][0],y:e[29][1],scale:e[3],selected:e[8].some(o)}}),t.$on("pointerenter",e[11]),t.$on("pointerleave",e[12]),t.$on("pointerdown",e[14]),t.$on("pointerdown",function(){se(e[28](`HANDLE-${e[32]}-${e[35]}-${e[37]}`))&&e[28](`HANDLE-${e[32]}-${e[35]}-${e[37]}`).apply(this,arguments)}),t.$on("pointerup",e[15](e[32],e[35],e[37])),{c(){fe(t.$$.fragment)},m(i,s){le(t,i,s),n=!0},p(i,s){e=i;const l={};s[0]&32&&(l.x=e[29][0]),s[0]&32&&(l.y=e[29][1]),s[0]&8&&(l.scale=e[3]),s[0]&256&&(l.selected=e[8].some(o)),t.$set(l)},i(i){n||(U(t.$$.fragment,i),n=!0)},o(i){G(t.$$.fragment,i),n=!1},d(i){ae(t,i)}}}function vo(e){let t,n,o=Se(e[33].points),i=[];for(let l=0;l<o.length;l+=1)i[l]=Eo(yo(e,o,l));const s=l=>G(i[l],1,1,()=>{i[l]=null});return{c(){for(let l=0;l<i.length;l+=1)i[l].c();t=Me()},m(l,r){for(let a=0;a<i.length;a+=1)i[a]&&i[a].m(l,r);B(l,t,r),n=!0},p(l,r){if(r[0]&268491048){o=Se(l[33].points);let a;for(a=0;a<o.length;a+=1){const f=yo(l,o,a);i[a]?(i[a].p(f,r),U(i[a],1)):(i[a]=Eo(f),i[a].c(),U(i[a],1),i[a].m(t.parentNode,t))}for(Ee(),a=o.length;a<i.length;a+=1)s(a);ve()}},i(l){if(!n){for(let r=0;r<o.length;r+=1)U(i[r]);n=!0}},o(l){i=i.filter(Boolean);for(let r=0;r<i.length;r+=1)G(i[r]);n=!1},d(l){l&&N(t),Ge(i,l)}}}function So(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,w,A,b,v=e[6]!==void 0&&!e[7]&&wo($t(e)),y=e[6]!==void 0&&!e[7]&&bo(Qt(e)),M=Se(e[30].rings),L=[];for(let T=0;T<M.length;T+=1)L[T]=vo(_o(e,M,T));const k=T=>G(L[T],1,1,()=>{L[T]=null});return{c(){t=P("g"),n=P("defs"),o=P("mask"),i=P("rect"),f=P("path"),v&&v.c(),y&&y.c(),u=P("path"),h=P("path");for(let T=0;T<L.length;T+=1)L[T].c();c(i,"x",s=e[9].x),c(i,"y",l=e[9].y),c(i,"width",r=e[9].w),c(i,"height",a=e[9].h),c(i,"class","svelte-1vxo6dc"),c(f,"d",d=Le(e[30])),c(f,"class","svelte-1vxo6dc"),c(o,"id",`${e[18]}-${e[32]}-outer`),c(o,"class","a9s-multipolygon-editor-mask svelte-1vxo6dc"),c(u,"class","a9s-outer"),c(u,"mask",`url(#${e[18]}-${e[32]}-outer)`),c(u,"fill-rule","evenodd"),c(u,"d",g=Le(e[30])),c(h,"class","a9s-inner"),c(h,"mask",`url(#${e[18]}-${e[32]}-inner)`),c(h,"style",e[1]),c(h,"fill-rule","evenodd"),c(h,"d",p=Le(e[30]))},m(T,V){B(T,t,V),F(t,n),F(n,o),F(o,i),F(o,f),v&&v.m(o,null),y&&y.m(n,null),F(t,u),F(t,h);for(let D=0;D<L.length;D+=1)L[D]&&L[D].m(t,null);w=!0,A||(b=[ee(u,"pointerup",e[13]),ee(u,"pointerdown",function(){se(e[28]("SHAPE"))&&e[28]("SHAPE").apply(this,arguments)}),ee(h,"pointerup",e[13]),ee(h,"pointerdown",function(){se(e[28]("SHAPE"))&&e[28]("SHAPE").apply(this,arguments)})],A=!0)},p(T,V){if(e=T,(!w||V[0]&512&&s!==(s=e[9].x))&&c(i,"x",s),(!w||V[0]&512&&l!==(l=e[9].y))&&c(i,"y",l),(!w||V[0]&512&&r!==(r=e[9].w))&&c(i,"width",r),(!w||V[0]&512&&a!==(a=e[9].h))&&c(i,"height",a),(!w||V[0]&32&&d!==(d=Le(e[30])))&&c(f,"d",d),e[6]!==void 0&&!e[7]?v?v.p($t(e),V):(v=wo($t(e)),v.c(),v.m(o,null)):v&&(v.d(1),v=null),e[6]!==void 0&&!e[7]?y?y.p(Qt(e),V):(y=bo(Qt(e)),y.c(),y.m(n,null)):y&&(y.d(1),y=null),(!w||V[0]&32&&g!==(g=Le(e[30])))&&c(u,"d",g),(!w||V[0]&2)&&c(h,"style",e[1]),(!w||V[0]&32&&p!==(p=Le(e[30])))&&c(h,"d",p),V[0]&268491048){M=Se(e[30].rings);let D;for(D=0;D<M.length;D+=1){const Q=_o(e,M,D);L[D]?(L[D].p(Q,V),U(L[D],1)):(L[D]=vo(Q),L[D].c(),U(L[D],1),L[D].m(t,null))}for(Ee(),D=M.length;D<L.length;D+=1)k(D);ve()}},i(T){if(!w){for(let V=0;V<M.length;V+=1)U(L[V]);w=!0}},o(T){L=L.filter(Boolean);for(let V=0;V<L.length;V+=1)G(L[V]);w=!1},d(T){T&&N(t),v&&v.d(),y&&y.d(),Ge(L,T),A=!1,Ae(b)}}}function Ao(e){let t,n;return t=new zt({props:{x:e[29][0],y:e[29][1],scale:e[3]}}),t.$on("pointerdown",function(){se(e[17](e[6]))&&e[17](e[6]).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&1088&&(s.x=e[29][0]),i[0]&1088&&(s.y=e[29][1]),i[0]&8&&(s.scale=e[3]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function nr(e){let t,n,o,i=Se(e[5].polygons),s=[];for(let a=0;a<i.length;a+=1)s[a]=So(po(e,i,a));const l=a=>G(s[a],1,1,()=>{s[a]=null});let r=e[6]!==void 0&&!e[7]&&Ao(Jt(e));return{c(){for(let a=0;a<s.length;a+=1)s[a].c();t=be(),r&&r.c(),n=Me()},m(a,f){for(let d=0;d<s.length;d+=1)s[d]&&s[d].m(a,f);B(a,t,f),r&&r.m(a,f),B(a,n,f),o=!0},p(a,f){if(f[0]&268763114){i=Se(a[5].polygons);let d;for(d=0;d<i.length;d+=1){const u=po(a,i,d);s[d]?(s[d].p(u,f),U(s[d],1)):(s[d]=So(u),s[d].c(),U(s[d],1),s[d].m(t.parentNode,t))}for(Ee(),d=i.length;d<s.length;d+=1)l(d);ve()}a[6]!==void 0&&!a[7]?r?(r.p(Jt(a),f),f[0]&192&&U(r,1)):(r=Ao(Jt(a)),r.c(),U(r,1),r.m(n.parentNode,n)):r&&(Ee(),G(r,1,1,()=>{r=null}),ve())},i(a){if(!o){for(let f=0;f<i.length;f+=1)U(s[f]);U(r),o=!0}},o(a){s=s.filter(Boolean);for(let f=0;f<s.length;f+=1)G(s[f]);G(r),o=!1},d(a){a&&(N(t),N(n)),Ge(s,a),r&&r.d(a)}}}function or(e){let t,n;return t=new Et({props:{shape:e[0],transform:e[2],editor:e[16],svgEl:e[4],$$slots:{default:[nr,({grab:o})=>({28:o}),({grab:o})=>[o?268435456:0]]},$$scope:{ctx:e}}}),t.$on("change",e[20]),t.$on("grab",e[21]),t.$on("release",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&1&&(s.shape=o[0]),i[0]&4&&(s.transform=o[2]),i[0]&16&&(s.svgEl=o[4]),i[0]&268437482|i[1]&128&&(s.$$scope={dirty:i,ctx:o}),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}const ir=250,sr=1e3,ut=4.5;function rr(e,t,n){let o,i,s;const l=De();let{shape:r}=t,{computedStyle:a}=t,{transform:f}=t,{viewportScale:d=1}=t,{svgEl:u}=t,g,h=!1,p,w=[];const A=()=>n(7,h=!0),b=()=>n(7,h=!1),v=_=>{if(w.length>0||!i.some(J=>J.visible)){n(6,g=void 0);return}const[E,S]=f.elementToImage(_.offsetX,_.offsetY),I=J=>Math.pow(J[0]-E,2)+Math.pow(J[1]-S,2),H=Cn(o).reduce((J,te)=>I(te)<I(J)?te:J),Y=i.filter(J=>J.visible).reduce((J,te)=>I(te.point)<I(J.point)?te:J),K=Math.pow(sr/d,2);I(H)<K||I(Y.point)<K?n(6,g=i.indexOf(Y)):n(6,g=void 0)},y=()=>{document.activeElement!==u&&u.focus()},M=()=>{n(8,w=[]),y()},L=_=>{n(7,h=!0),_.preventDefault(),_.stopPropagation(),p=performance.now()},k=(_,E,S)=>I=>{if(!p||Ie||performance.now()-p>ir)return;const H=K=>K.polygon===_&&K.ring===E&&K.point===S,Y=w.some(H);I.metaKey||I.ctrlKey||I.shiftKey?Y?n(8,w=w.filter(K=>!H(K))):n(8,w=[...w,{polygon:_,ring:E,point:S}]):Y&&w.length>1?n(8,w=[{polygon:_,ring:E,point:S}]):Y?n(8,w=[]):n(8,w=[{polygon:_,ring:E,point:S}]),y()},T=(_,E,S)=>{y();const I=_.geometry.polygons;let H;if(E==="SHAPE")H=I.map(Y=>{const K=Y.rings.map((J,te)=>({points:J.points.map((ie,ke)=>[ie[0]+S[0],ie[1]+S[1]])})),Z=ue(K[0].points);return{rings:K,bounds:Z}});else{const[Y,K,Z,J]=E.split("-").map(te=>parseInt(te));H=I.map((te,ye)=>{if(ye===K){const ie=te.rings.map((X,de)=>de===Z?{points:X.points.map((we,ce)=>ce===J?[we[0]+S[0],we[1]+S[1]]:we)}:X),ke=ue(ie[0].points);return{rings:ie,bounds:ke}}else return te})}return{..._,geometry:{polygons:H,bounds:st(H)}}},V=_=>async E=>{E.stopPropagation();const S=i[_],I=o.polygons.map((Y,K)=>{if(K===S.elementIdx){const Z=Y.rings.map((te,ye)=>ye===S.ringIdx?{points:[...te.points.slice(0,S.pointIdx+1),S.point,...te.points.slice(S.pointIdx+1)]}:te),J=ue(Z[0].points);return{rings:Z,bounds:J}}else return Y});l("change",{...r,geometry:{polygons:I,bounds:st(I)}}),await kn();const H=[...document.querySelectorAll(".a9s-handle")][_+1];if(H!=null&&H.firstChild){const Y=new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,clientX:E.clientX,clientY:E.clientY,pointerId:E.pointerId,pointerType:E.pointerType,isPrimary:E.isPrimary,buttons:E.buttons});H.firstChild.dispatchEvent(Y)}},D=()=>{const _=o.polygons.map((S,I)=>{if(w.some(Y=>Y.polygon===I)){const Y=S.rings.map((Z,J)=>{const te=w.filter(ye=>ye.polygon===I&&ye.ring===J);return te.length&&Z.points.length-te.length>=3?{points:Z.points.filter((ie,ke)=>!te.some(X=>X.point===ke))}:Z}),K=ue(Y[0].points);return{rings:Y,bounds:K}}else return S});!Zt(o.polygons,_)&&(l("change",{...r,geometry:{polygons:_,bounds:st(_)}}),n(8,w=[]))};Oe(()=>{if(Ie)return;const _=E=>{(E.key==="Delete"||E.key==="Backspace")&&(E.preventDefault(),D())};return u.addEventListener("pointermove",v),u.addEventListener("keydown",_),()=>{u.removeEventListener("pointermove",v),u.removeEventListener("keydown",_)}});const Q=`polygon-mask-${Math.random().toString(36).substring(2,12)}`,z=(_,E,S,{polygon:I,ring:H,point:Y})=>I===_&&H===E&&Y===S;function j(_){ge.call(this,e,_)}function O(_){ge.call(this,e,_)}function m(_){ge.call(this,e,_)}return e.$$set=_=>{"shape"in _&&n(0,r=_.shape),"computedStyle"in _&&n(1,a=_.computedStyle),"transform"in _&&n(2,f=_.transform),"viewportScale"in _&&n(3,d=_.viewportScale),"svgEl"in _&&n(4,u=_.svgEl)},e.$$.update=()=>{e.$$.dirty[0]&1&&n(5,o=r.geometry),e.$$.dirty[0]&40&&n(10,i=Ie?[]:tr(o,d)),e.$$.dirty[0]&40&&n(9,s=ct(o.bounds,ut/d))},[r,a,f,d,u,o,g,h,w,s,i,A,b,M,L,k,T,V,Q,z,j,O,m]}class lr extends me{constructor(t){super(),he(this,t,rr,or,re,{shape:0,computedStyle:1,transform:2,viewportScale:3,svgEl:4},null,[-1,-1])}}const Mo=new Map([[x.RECTANGLE,ho],[x.POLYGON,lo],[x.MULTIPOLYGON,lr]]),ko=e=>Mo.get(e.type),To=(e,t)=>Mo.set(e,t);function ar(e,t,n){let o;const i=De();let{annotation:s}=t,{editor:l}=t,{style:r}=t,{target:a}=t,{transform:f}=t,{viewportScale:d}=t,u;return Oe(()=>(n(6,u=new l({target:a,props:{shape:s.target.selector,computedStyle:o,transform:f,viewportScale:d,svgEl:a.closest("svg")}})),u.$on("change",g=>{u.$$set({shape:g.detail}),i("change",g.detail)}),u.$on("grab",g=>i("grab",g.detail)),u.$on("release",g=>i("release",g.detail)),()=>{u.$destroy()})),e.$$set=g=>{"annotation"in g&&n(0,s=g.annotation),"editor"in g&&n(1,l=g.editor),"style"in g&&n(2,r=g.style),"target"in g&&n(3,a=g.target),"transform"in g&&n(4,f=g.transform),"viewportScale"in g&&n(5,d=g.viewportScale)},e.$$.update=()=>{e.$$.dirty&5&&n(7,o=ze(s,r,{selected:!0,hovered:!0})),e.$$.dirty&65&&s&&(u==null||u.$set({shape:s.target.selector})),e.$$.dirty&80&&u&&u.$set({transform:f}),e.$$.dirty&96&&u&&u.$set({viewportScale:d}),e.$$.dirty&192&&u&&o&&u.$set({computedStyle:o})},[s,l,r,a,f,d,u,o]}class Po extends me{constructor(t){super(),he(this,t,ar,null,re,{annotation:0,editor:1,style:2,target:3,transform:4,viewportScale:5})}}function cr(e,t,n){const o=De();let{drawingMode:i}=t,{target:s}=t,{tool:l}=t,{transform:r}=t,{viewportScale:a}=t,f;return Oe(()=>{const d=s.closest("svg"),u=[],g=(h,p,w)=>{d==null||d.addEventListener(h,p,w),u.push(()=>d==null?void 0:d.removeEventListener(h,p,w))};return n(5,f=new l({target:s,props:{addEventListener:g,drawingMode:i,transform:r,viewportScale:a}})),f.$on("create",h=>o("create",h.detail)),()=>{u.forEach(h=>h()),f.$destroy()}}),e.$$set=d=>{"drawingMode"in d&&n(0,i=d.drawingMode),"target"in d&&n(1,s=d.target),"tool"in d&&n(2,l=d.tool),"transform"in d&&n(3,r=d.transform),"viewportScale"in d&&n(4,a=d.viewportScale)},e.$$.update=()=>{e.$$.dirty&40&&f&&f.$set({transform:r}),e.$$.dirty&48&&f&&f.$set({viewportScale:a})},[i,s,l,r,a,f]}class Lo extends me{constructor(t){super(),he(this,t,cr,null,re,{drawingMode:0,target:1,tool:2,transform:3,viewportScale:4})}}function Io(e){let t,n,o,i,s,l,r,a,f,d;return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("rect"),f=P("rect"),d=P("rect"),c(o,"class","rect-mask-bg svelte-1a76qe7"),c(o,"x",i=e[1]-e[5]),c(o,"y",s=e[2]-e[5]),c(o,"width",l=e[3]+2*e[5]),c(o,"height",r=e[4]+2*e[5]),c(a,"class","rect-mask-fg svelte-1a76qe7"),c(a,"x",e[1]),c(a,"y",e[2]),c(a,"width",e[3]),c(a,"height",e[4]),c(n,"id",e[6]),c(n,"class","a9s-rubberband-rectangle-mask svelte-1a76qe7"),c(f,"class","a9s-outer"),c(f,"mask",`url(#${e[6]})`),c(f,"x",e[1]),c(f,"y",e[2]),c(f,"width",e[3]),c(f,"height",e[4]),c(d,"class","a9s-inner"),c(d,"x",e[1]),c(d,"y",e[2]),c(d,"width",e[3]),c(d,"height",e[4])},m(u,g){B(u,t,g),F(t,n),F(n,o),F(n,a),B(u,f,g),B(u,d,g)},p(u,g){g&34&&i!==(i=u[1]-u[5])&&c(o,"x",i),g&36&&s!==(s=u[2]-u[5])&&c(o,"y",s),g&40&&l!==(l=u[3]+2*u[5])&&c(o,"width",l),g&48&&r!==(r=u[4]+2*u[5])&&c(o,"height",r),g&2&&c(a,"x",u[1]),g&4&&c(a,"y",u[2]),g&8&&c(a,"width",u[3]),g&16&&c(a,"height",u[4]),g&2&&c(f,"x",u[1]),g&4&&c(f,"y",u[2]),g&8&&c(f,"width",u[3]),g&16&&c(f,"height",u[4]),g&2&&c(d,"x",u[1]),g&4&&c(d,"y",u[2]),g&8&&c(d,"width",u[3]),g&16&&c(d,"height",u[4])},d(u){u&&(N(t),N(f),N(d))}}}function fr(e){let t,n=e[0]&&Io(e);return{c(){t=P("g"),n&&n.c(),c(t,"class","a9s-annotation a9s-rubberband")},m(o,i){B(o,t,i),n&&n.m(t,null)},p(o,[i]){o[0]?n?n.p(o,i):(n=Io(o),n.c(),n.m(t,null)):n&&(n.d(1),n=null)},i:q,o:q,d(o){o&&N(t),n&&n.d()}}}function ur(e,t,n){let o;const i=De();let{addEventListener:s}=t,{drawingMode:l}=t,{transform:r}=t,{viewportScale:a=1}=t,f,d,u,g,h,p,w;const A=L=>{const k=L;f=performance.now(),l==="drag"&&(n(0,d=r.elementToImage(k.offsetX,k.offsetY)),u=d,n(1,g=d[0]),n(2,h=d[1]),n(3,p=1),n(4,w=1))},b=L=>{const k=L;d&&(u=r.elementToImage(k.offsetX,k.offsetY),n(1,g=Math.min(u[0],d[0])),n(2,h=Math.min(u[1],d[1])),n(3,p=Math.abs(u[0]-d[0])),n(4,w=Math.abs(u[1]-d[1])))},v=L=>{const k=L,T=performance.now()-f;if(l==="click"){if(T>300)return;d?y():(n(0,d=r.elementToImage(k.offsetX,k.offsetY)),u=d,n(1,g=d[0]),n(2,h=d[1]),n(3,p=1),n(4,w=1))}else d&&(T>300||p*w>100?(k.stopPropagation(),y()):(n(0,d=void 0),u=void 0))},y=()=>{if(p*w>15){const L={type:x.RECTANGLE,geometry:{bounds:{minX:g,minY:h,maxX:g+p,maxY:h+w},rot:0,x:g,y:h,w:p,h:w}};i("create",L)}n(0,d=void 0),u=void 0};Oe(()=>{s("pointerdown",A),s("pointermove",b),s("pointerup",v,!0)});const M=`rect-mask-${Math.random().toString(36).substring(2,12)}`;return e.$$set=L=>{"addEventListener"in L&&n(7,s=L.addEventListener),"drawingMode"in L&&n(8,l=L.drawingMode),"transform"in L&&n(9,r=L.transform),"viewportScale"in L&&n(10,a=L.viewportScale)},e.$$.update=()=>{e.$$.dirty&1024&&n(5,o=2/a)},[d,g,h,p,w,o,M,s,l,r,a]}class Co extends me{constructor(t){super(),he(this,t,ur,fr,re,{addEventListener:7,drawingMode:8,transform:9,viewportScale:10})}}function xt(e){const t=e.slice(),n=t[2].map(o=>o.join(",")).join(" ");return t[19]=n,t}function Oo(e){let t,n,o,i,s,l,r,a,f,d,u,g,h,p,w=e[1]&&Do(e);return{c(){t=P("defs"),n=P("mask"),o=P("rect"),a=P("polygon"),d=P("polygon"),g=P("polygon"),w&&w.c(),p=Me(),c(o,"x",i=e[3].x),c(o,"y",s=e[3].y),c(o,"width",l=e[3].w),c(o,"height",r=e[3].h),c(o,"class","svelte-18wrg3t"),c(a,"points",f=e[19]),c(a,"class","svelte-18wrg3t"),c(n,"id",e[5]),c(n,"class","a9s-rubberband-polygon-mask svelte-18wrg3t"),c(d,"class","a9s-outer"),c(d,"mask",`url(#${e[5]})`),c(d,"points",u=e[19]),c(g,"class","a9s-inner"),c(g,"points",h=e[19])},m(A,b){B(A,t,b),F(t,n),F(n,o),F(n,a),B(A,d,b),B(A,g,b),w&&w.m(A,b),B(A,p,b)},p(A,b){b&8&&i!==(i=A[3].x)&&c(o,"x",i),b&8&&s!==(s=A[3].y)&&c(o,"y",s),b&8&&l!==(l=A[3].w)&&c(o,"width",l),b&8&&r!==(r=A[3].h)&&c(o,"height",r),b&4&&f!==(f=A[19])&&c(a,"points",f),b&4&&u!==(u=A[19])&&c(d,"points",u),b&4&&h!==(h=A[19])&&c(g,"points",h),A[1]?w?w.p(A,b):(w=Do(A),w.c(),w.m(p.parentNode,p)):w&&(w.d(1),w=null)},d(A){A&&(N(t),N(d),N(g),N(p)),w&&w.d(A)}}}function Do(e){let t,n,o;return{c(){t=P("circle"),c(t,"class","a9s-handle svelte-18wrg3t"),c(t,"cx",n=e[0][0][0]),c(t,"cy",o=e[0][0][1]),c(t,"r",e[4])},m(i,s){B(i,t,s)},p(i,s){s&1&&n!==(n=i[0][0][0])&&c(t,"cx",n),s&1&&o!==(o=i[0][0][1])&&c(t,"cy",o),s&16&&c(t,"r",i[4])},d(i){i&&N(t)}}}function dr(e){let t,n=e[3]&&Oo(xt(e));return{c(){t=P("g"),n&&n.c(),c(t,"class","a9s-annotation a9s-rubberband")},m(o,i){B(o,t,i),n&&n.m(t,null)},p(o,[i]){o[3]?n?n.p(xt(o),i):(n=Oo(xt(o)),n.c(),n.m(t,null)):n&&(n.d(1),n=null)},i:q,o:q,d(o){o&&N(t),n&&n.d()}}}const gr=20,hr=1500;function mr(e,t,n){let o,i,s;const l=De();let{addEventListener:r}=t,{drawingMode:a}=t,{transform:f}=t,{viewportScale:d=1}=t,u,g=[],h,p,w=!1;const A=k=>{const T=k,{timeStamp:V,offsetX:D,offsetY:Q}=T;if(u={timeStamp:V,offsetX:D,offsetY:Q},a==="drag"&&g.length===0){const z=f.elementToImage(T.offsetX,T.offsetY);g.push(z),n(10,h=z)}},b=k=>{const T=k;if(p&&clearTimeout(p),g.length>0){if(n(10,h=f.elementToImage(T.offsetX,T.offsetY)),g.length>2){const V=it(h,g[0])*d;n(1,w=V<gr)}T.pointerType==="touch"&&(p=setTimeout(()=>{y()},hr))}},v=k=>{const T=k;if(p&&clearTimeout(p),a==="click"){const V=T.timeStamp-u.timeStamp,D=it([u.offsetX,u.offsetY],[T.offsetX,T.offsetY]);if(V>300||D>15)return;if(w)M();else if(g.length===0){const Q=f.elementToImage(T.offsetX,T.offsetY);g.push(Q),n(10,h=Q)}else h&&g.push(h)}else{if(!h)return;if(g.length===1&&it(g[0],h)<=4){n(0,g=[]),n(10,h=void 0);return}T.stopImmediatePropagation(),w?M():g.push(h)}},y=()=>{if(!h)return;const k=g.slice(0,-1);if(k.length<3)return;const T={type:x.POLYGON,geometry:{bounds:ue(g),points:k}};_t(T)>4&&(n(0,g=[]),n(10,h=void 0),l("create",T))},M=()=>{const k={type:x.POLYGON,geometry:{bounds:ue(g),points:[...g]}};n(0,g=[]),n(10,h=void 0),l("create",k)};Oe(()=>{r("pointerdown",A,!0),r("pointermove",b),r("pointerup",v,!0),r("dblclick",y,!0)});const L=`polygon-mask-${Math.random().toString(36).substring(2,12)}`;return e.$$set=k=>{"addEventListener"in k&&n(6,r=k.addEventListener),"drawingMode"in k&&n(7,a=k.drawingMode),"transform"in k&&n(8,f=k.transform),"viewportScale"in k&&n(9,d=k.viewportScale)},e.$$.update=()=>{e.$$.dirty&512&&n(4,o=4/d),e.$$.dirty&1027&&n(2,i=h?w?g:[...g,h]:[]),e.$$.dirty&516&&n(3,s=i.length>0?ct(ue(i),2/d):void 0)},[g,w,i,s,o,L,r,a,f,d,h]}class pr extends me{constructor(t){super(),he(this,t,mr,dr,re,{addEventListener:6,drawingMode:7,transform:8,viewportScale:9})}}const en=new Map([["rectangle",{tool:Co}],["polygon",{tool:pr}]]),tn=()=>[...en.keys()],nn=e=>en.get(e),Ro=(e,t,n={})=>en.set(e,{tool:t,opts:n});function _r(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("ellipse"),i=P("ellipse"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"cx",e[2]),c(n,"cy",e[3]),c(n,"rx",e[4]),c(n,"ry",e[5]),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"cx",e[2]),c(i,"cy",e[3]),c(i,"rx",e[4]),c(i,"ry",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),F(t,n),F(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&N(t)}}}function yr(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{cx:r,cy:a,rx:f,ry:d}=s;return e.$$set=u=>{"annotation"in u&&n(0,i=u.annotation),"geom"in u&&n(6,s=u.geom),"style"in u&&n(7,l=u.style)},e.$$.update=()=>{e.$$.dirty&129&&n(1,o=ze(i,l))},[i,o,r,a,f,d,s,l]}class wr extends me{constructor(t){super(),he(this,t,yr,_r,re,{annotation:0,geom:6,style:7})}}function br(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("line"),i=P("line"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"x1",e[2]),c(n,"y1",e[3]),c(n,"x2",e[4]),c(n,"y2",e[5]),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"x1",e[2]),c(i,"y1",e[3]),c(i,"x2",e[4]),c(i,"y2",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),F(t,n),F(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&N(t)}}}function Er(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{points:r}=s,[[a,f],[d,u]]=r;return e.$$set=g=>{"annotation"in g&&n(0,i=g.annotation),"geom"in g&&n(6,s=g.geom),"style"in g&&n(7,l=g.style)},e.$$.update=()=>{e.$$.dirty&129&&n(1,o=ze(i,l))},[i,o,a,f,d,u,s,l]}class vr extends me{constructor(t){super(),he(this,t,Er,br,re,{annotation:0,geom:6,style:7})}}function No(e,t,n){const o=e.slice();return o[5]=t[n],o}function Bo(e){let t,n,o;return{c(){t=P("path"),o=P("path"),c(t,"class","a9s-outer"),c(t,"style",n=e[1]?"display:none;":void 0),c(t,"fill-rule","evenodd"),c(t,"d",Le(e[5])),c(o,"class","a9s-inner"),c(o,"style",e[1]),c(o,"fill-rule","evenodd"),c(o,"d",Le(e[5]))},m(i,s){B(i,t,s),B(i,o,s)},p(i,s){s&2&&n!==(n=i[1]?"display:none;":void 0)&&c(t,"style",n),s&2&&c(o,"style",i[1])},d(i){i&&(N(t),N(o))}}}function Sr(e){let t,n,o=Se(e[2]),i=[];for(let s=0;s<o.length;s+=1)i[s]=Bo(No(e,o,s));return{c(){t=P("g");for(let s=0;s<i.length;s+=1)i[s].c();c(t,"class","a9s-annotation"),c(t,"data-id",n=e[0].id)},m(s,l){B(s,t,l);for(let r=0;r<i.length;r+=1)i[r]&&i[r].m(t,null)},p(s,[l]){if(l&6){o=Se(s[2]);let r;for(r=0;r<o.length;r+=1){const a=No(s,o,r);i[r]?i[r].p(a,l):(i[r]=Bo(a),i[r].c(),i[r].m(t,null))}for(;r<i.length;r+=1)i[r].d(1);i.length=o.length}l&1&&n!==(n=s[0].id)&&c(t,"data-id",n)},i:q,o:q,d(s){s&&N(t),Ge(i,s)}}}function Ar(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{polygons:r}=s;return e.$$set=a=>{"annotation"in a&&n(0,i=a.annotation),"geom"in a&&n(3,s=a.geom),"style"in a&&n(4,l=a.style)},e.$$.update=()=>{e.$$.dirty&17&&n(1,o=ze(i,l))},[i,o,r,s,l]}class Mr extends me{constructor(t){super(),he(this,t,Ar,Sr,re,{annotation:0,geom:3,style:4})}}function kr(e){let t,n,o,i,s;return{c(){t=P("g"),n=P("polygon"),i=P("polygon"),c(n,"class","a9s-outer"),c(n,"style",o=e[1]?"display:none;":void 0),c(n,"points",e[2].map(Tr).join(" ")),c(i,"class","a9s-inner"),c(i,"style",e[1]),c(i,"points",e[2].map(Pr).join(" ")),c(t,"class","a9s-annotation"),c(t,"data-id",s=e[0].id)},m(l,r){B(l,t,r),F(t,n),F(t,i)},p(l,[r]){r&2&&o!==(o=l[1]?"display:none;":void 0)&&c(n,"style",o),r&2&&c(i,"style",l[1]),r&1&&s!==(s=l[0].id)&&c(t,"data-id",s)},i:q,o:q,d(l){l&&N(t)}}}const Tr=e=>e.join(","),Pr=e=>e.join(",");function Lr(e,t,n){let o,{annotation:i}=t,{geom:s}=t,{style:l}=t;const{points:r}=s;return e.$$set=a=>{"annotation"in a&&n(0,i=a.annotation),"geom"in a&&n(3,s=a.geom),"style"in a&&n(4,l=a.style)},e.$$.update=()=>{e.$$.dirty&17&&n(1,o=ze(i,l))},[i,o,r,s,l]}class Ir extends me{constructor(t){super(),he(this,t,Lr,kr,re,{annotation:0,geom:3,style:4})}}function Cr(e){let t,n,o,i,s,l,r;return{c(){t=P("g"),n=P("path"),s=P("path"),c(n,"class",o=Ke(`a9s-outer ${e[1]}`)+" svelte-1w0132l"),c(n,"style",i=e[3]?"display:none;":void 0),c(n,"d",e[2]),c(s,"class",l=Ke(`a9s-inner ${e[1]}`)+" svelte-1w0132l"),c(s,"style",e[3]),c(s,"d",e[2]),c(t,"class","a9s-annotation"),c(t,"data-id",r=e[0].id)},m(a,f){B(a,t,f),F(t,n),F(t,s)},p(a,[f]){f&2&&o!==(o=Ke(`a9s-outer ${a[1]}`)+" svelte-1w0132l")&&c(n,"class",o),f&8&&i!==(i=a[3]?"display:none;":void 0)&&c(n,"style",i),f&4&&c(n,"d",a[2]),f&2&&l!==(l=Ke(`a9s-inner ${a[1]}`)+" svelte-1w0132l")&&c(s,"class",l),f&8&&c(s,"style",a[3]),f&4&&c(s,"d",a[2]),f&1&&r!==(r=a[0].id)&&c(t,"data-id",r)},i:q,o:q,d(a){a&&N(t)}}}function Or(e,t,n){let o,i,s,{annotation:l}=t,{geom:r}=t,{style:a}=t;return e.$$set=f=>{"annotation"in f&&n(0,l=f.annotation),"geom"in f&&n(4,r=f.geom),"style"in f&&n(5,a=f.style)},e.$$.update=()=>{e.$$.dirty&33&&n(3,o=ze(l,a)),e.$$.dirty&16&&n(2,i=Ut(r)),e.$$.dirty&16&&n(1,s=r.closed?"closed":"open")},[l,s,i,o,r,a]}class Dr extends me{constructor(t){super(),he(this,t,Or,Cr,re,{annotation:0,geom:4,style:5})}}function Rr(e){let t,n,o,i,s,l;return{c(){t=P("g"),n=P("g"),o=P("rect"),s=P("rect"),c(o,"class","a9s-outer"),c(o,"style",i=e[6]?"display:none;":void 0),c(o,"x",e[4]),c(o,"y",e[2]),c(o,"width",e[3]),c(o,"height",e[1]),c(s,"class","a9s-inner"),c(s,"style",e[6]),c(s,"x",e[4]),c(s,"y",e[2]),c(s,"width",e[3]),c(s,"height",e[1]),c(n,"transform",e[5]),c(t,"class","a9s-annotation"),c(t,"data-id",l=e[0].id)},m(r,a){B(r,t,a),F(t,n),F(n,o),F(n,s)},p(r,[a]){a&64&&i!==(i=r[6]?"display:none;":void 0)&&c(o,"style",i),a&16&&c(o,"x",r[4]),a&4&&c(o,"y",r[2]),a&8&&c(o,"width",r[3]),a&2&&c(o,"height",r[1]),a&64&&c(s,"style",r[6]),a&16&&c(s,"x",r[4]),a&4&&c(s,"y",r[2]),a&8&&c(s,"width",r[3]),a&2&&c(s,"height",r[1]),a&32&&c(n,"transform",r[5]),a&1&&l!==(l=r[0].id)&&c(t,"data-id",l)},i:q,o:q,d(r){r&&N(t)}}}function Nr(e,t,n){let o,i,s,l,r,a,f,{annotation:d}=t,{geom:u}=t,{style:g}=t;return e.$$set=h=>{"annotation"in h&&n(0,d=h.annotation),"geom"in h&&n(7,u=h.geom),"style"in h&&n(8,g=h.style)},e.$$.update=()=>{e.$$.dirty&257&&n(6,o=ze(d,g)),e.$$.dirty&128&&n(4,{x:i,y:s,w:l,h:r,rot:a}=u,i,(n(2,s),n(7,u)),(n(3,l),n(7,u)),(n(1,r),n(7,u)),(n(9,a),n(7,u))),e.$$.dirty&542&&n(5,f=(a??0)!==0?`translate(${i+l/2}, ${s+r/2}) rotate(${(a??0)*180/Math.PI}) translate(${-(i+l/2)}, ${-(s+r/2)})`:void 0)},[d,r,s,l,i,f,o,u,g,a]}class Br extends me{constructor(t){super(),he(this,t,Nr,Rr,re,{annotation:0,geom:7,style:8})}}const Yr={elementToImage:(e,t)=>[e,t]},Yo=e=>({elementToImage:(t,n)=>{const o=e.getBoundingClientRect(),i=e.createSVGPoint();i.x=t+o.x,i.y=n+o.y;const{x:s,y:l}=i.matrixTransform(e.getScreenCTM().inverse());return[s,l]}}),Ur=250,Uo=(e,t)=>{const n=De();let o;return{onPointerDown:()=>o=performance.now(),onPointerUp:l=>{if(performance.now()-o<Ur){const{x:a,y:f}=on(l,e),d=Ie?10:2,u=t.getAt(a,f,void 0,d);u?n("click",{originalEvent:l,annotation:u}):n("click",{originalEvent:l})}}}},on=(e,t)=>{const n=t.createSVGPoint(),o=t.getBoundingClientRect(),i=e.clientX-o.x,s=e.clientY-o.y,{left:l,top:r}=t.getBoundingClientRect();return n.x=i+l,n.y=s+r,n.matrixTransform(t.getScreenCTM().inverse())};function Vo(e,t,n){const o=e.slice();return o[39]=t[n],o}function Xo(e,t,n){const o=e.slice();return o[42]=t[n],o}function sn(e){const t=e.slice(),n=t[42].target.selector;return t[45]=n,t}function Ho(e){let t=e[42],n,o,i=Go(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&131072&&re(t,t=s[42])?(Ee(),G(i,1,1,q),ve(),i=Go(s),i.c(),U(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(U(i),o=!0)},o(s){G(i),o=!1},d(s){s&&N(n),i.d(s)}}}function Vr(e){let t,n;return t=new vr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Xr(e){let t,n;return t=new Dr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Hr(e){let t,n;return t=new Mr({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Gr(e){let t,n;return t=new Ir({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function jr(e){let t,n;return t=new Br({props:{annotation:e[42],geom:e[45].geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&131072&&(s.annotation=o[42]),i[0]&131072&&(s.geom=o[45].geometry),i[0]&2&&(s.style=o[1]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Fr(e){var o;let t,n;return t=new wr({props:{annotation:e[42],geom:(o=e[45])==null?void 0:o.geometry,style:e[1]}}),{c(){fe(t.$$.fragment)},m(i,s){le(t,i,s),n=!0},p(i,s){var r;const l={};s[0]&131072&&(l.annotation=i[42]),s[0]&131072&&(l.geom=(r=i[45])==null?void 0:r.geometry),s[0]&2&&(l.style=i[1]),t.$set(l)},i(i){n||(U(t.$$.fragment,i),n=!0)},o(i){G(t.$$.fragment,i),n=!1},d(i){ae(t,i)}}}function Go(e){let t,n,o,i;const s=[Fr,jr,Gr,Hr,Xr,Vr],l=[];function r(a,f){var d,u,g,h,p,w;return((d=a[45])==null?void 0:d.type)===x.ELLIPSE?0:((u=a[45])==null?void 0:u.type)===x.RECTANGLE?1:((g=a[45])==null?void 0:g.type)===x.POLYGON?2:((h=a[45])==null?void 0:h.type)===x.MULTIPOLYGON?3:((p=a[45])==null?void 0:p.type)===x.POLYLINE?4:((w=a[45])==null?void 0:w.type)===x.LINE?5:-1}return~(t=r(e))&&(n=l[t]=s[t](e)),{c(){n&&n.c(),o=Me()},m(a,f){~t&&l[t].m(a,f),B(a,o,f),i=!0},p(a,f){let d=t;t=r(a),t===d?~t&&l[t].p(a,f):(n&&(Ee(),G(l[d],1,1,()=>{l[d]=null}),ve()),~t?(n=l[t],n?n.p(a,f):(n=l[t]=s[t](a),n.c()),U(n,1),n.m(o.parentNode,o)):n=null)},i(a){i||(U(n),i=!0)},o(a){G(n),i=!1},d(a){a&&N(o),~t&&l[t].d(a)}}}function jo(e){let t=rt(e[42])&&!e[10](e[42]),n,o,i=t&&Ho(sn(e));return{c(){i&&i.c(),n=Me()},m(s,l){i&&i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&132096&&(t=rt(s[42])&&!s[10](s[42])),t?i?(i.p(sn(s),l),l[0]&132096&&U(i,1)):(i=Ho(sn(s)),i.c(),U(i,1),i.m(n.parentNode,n)):i&&(Ee(),G(i,1,1,()=>{i=null}),ve())},i(s){o||(U(i),o=!0)},o(s){G(i),o=!1},d(s){s&&N(n),i&&i.d(s)}}}function Fo(e){let t,n,o,i;const s=[qr,zr],l=[];function r(a,f){return a[6]?0:a[15]&&a[0]?1:-1}return~(t=r(e))&&(n=l[t]=s[t](e)),{c(){n&&n.c(),o=Me()},m(a,f){~t&&l[t].m(a,f),B(a,o,f),i=!0},p(a,f){let d=t;t=r(a),t===d?~t&&l[t].p(a,f):(n&&(Ee(),G(l[d],1,1,()=>{l[d]=null}),ve()),~t?(n=l[t],n?n.p(a,f):(n=l[t]=s[t](a),n.c()),U(n,1),n.m(o.parentNode,o)):n=null)},i(a){i||(U(n),i=!0)},o(a){G(n),i=!1},d(a){a&&N(o),~t&&l[t].d(a)}}}function zr(e){let t=`${e[2]}-${e[7]}`,n,o,i=zo(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&132&&re(t,t=`${s[2]}-${s[7]}`)?(Ee(),G(i,1,1,q),ve(),i=zo(s),i.c(),U(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(U(i),o=!0)},o(s){G(i),o=!1},d(s){s&&N(n),i.d(s)}}}function qr(e){let t,n,o=Se(e[6]),i=[];for(let l=0;l<o.length;l+=1)i[l]=Ko(Vo(e,o,l));const s=l=>G(i[l],1,1,()=>{i[l]=null});return{c(){for(let l=0;l<i.length;l+=1)i[l].c();t=Me()},m(l,r){for(let a=0;a<i.length;a+=1)i[a]&&i[a].m(l,r);B(l,t,r),n=!0},p(l,r){if(r[0]&8659266){o=Se(l[6]);let a;for(a=0;a<o.length;a+=1){const f=Vo(l,o,a);i[a]?(i[a].p(f,r),U(i[a],1)):(i[a]=Ko(f),i[a].c(),U(i[a],1),i[a].m(t.parentNode,t))}for(Ee(),a=o.length;a<i.length;a+=1)s(a);ve()}},i(l){if(!n){for(let r=0;r<o.length;r+=1)U(i[r]);n=!0}},o(l){i=i.filter(Boolean);for(let r=0;r<i.length;r+=1)G(i[r]);n=!1},d(l){l&&N(t),Ge(i,l)}}}function zo(e){let t,n;return t=new Lo({props:{target:e[8],tool:e[15],drawingMode:e[14],transform:e[13],viewportScale:e[18]}}),t.$on("create",e[22]),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){const s={};i[0]&256&&(s.target=o[8]),i[0]&32768&&(s.tool=o[15]),i[0]&16384&&(s.drawingMode=o[14]),i[0]&8192&&(s.transform=o[13]),i[0]&262144&&(s.viewportScale=o[18]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function qo(e){let t,n;return t=new Po({props:{target:e[8],editor:e[39].editor,annotation:e[39].annotation,style:e[1],transform:e[13],viewportScale:e[18]}}),t.$on("change",function(){se(e[23](e[39].annotation))&&e[23](e[39].annotation).apply(this,arguments)}),{c(){fe(t.$$.fragment)},m(o,i){le(t,o,i),n=!0},p(o,i){e=o;const s={};i[0]&256&&(s.target=e[8]),i[0]&64&&(s.editor=e[39].editor),i[0]&64&&(s.annotation=e[39].annotation),i[0]&2&&(s.style=e[1]),i[0]&8192&&(s.transform=e[13]),i[0]&262144&&(s.viewportScale=e[18]),t.$set(s)},i(o){n||(U(t.$$.fragment,o),n=!0)},o(o){G(t.$$.fragment,o),n=!1},d(o){ae(t,o)}}}function Ko(e){let t=e[39].annotation.id,n,o,i=qo(e);return{c(){i.c(),n=Me()},m(s,l){i.m(s,l),B(s,n,l),o=!0},p(s,l){l[0]&64&&re(t,t=s[39].annotation.id)?(Ee(),G(i,1,1,q),ve(),i=qo(s),i.c(),U(i,1),i.m(n.parentNode,n)):i.p(s,l)},i(s){o||(U(i),o=!0)},o(s){G(i),o=!1},d(s){s&&N(n),i.d(s)}}}function Kr(e){let t,n,o,i,s,l,r=Se(e[17].filter(e[34])),a=[];for(let u=0;u<r.length;u+=1)a[u]=jo(Xo(e,r,u));const f=u=>G(a[u],1,1,()=>{a[u]=null});let d=e[8]&&Fo(e);return{c(){t=P("svg"),n=P("g");for(let u=0;u<a.length;u+=1)a[u].c();o=P("g"),d&&d.c(),c(o,"class","drawing"),c(t,"role","application"),c(t,"tabindex",0),c(t,"class","a9s-annotationlayer"),Pe(t,"drawing",e[15]),Pe(t,"editing",e[5]),Pe(t,"hidden",!e[3]),Pe(t,"hover",e[16])},m(u,g){B(u,t,g),F(t,n);for(let h=0;h<a.length;h+=1)a[h]&&a[h].m(n,null);F(t,o),d&&d.m(o,null),e[35](o),e[36](t),i=!0,s||(l=[ee(t,"pointerup",function(){se(e[11])&&e[11].apply(this,arguments)}),ee(t,"pointerdown",function(){se(e[12])&&e[12].apply(this,arguments)}),ee(t,"pointermove",e[24])],s=!0)},p(u,g){if(e=u,g[0]&132098){r=Se(e[17].filter(e[34]));let h;for(h=0;h<r.length;h+=1){const p=Xo(e,r,h);a[h]?(a[h].p(p,g),U(a[h],1)):(a[h]=jo(p),a[h].c(),U(a[h],1),a[h].m(n,null))}for(Ee(),h=r.length;h<a.length;h+=1)f(h);ve()}e[8]?d?(d.p(e,g),g[0]&256&&U(d,1)):(d=Fo(e),d.c(),U(d,1),d.m(o,null)):d&&(Ee(),G(d,1,1,()=>{d=null}),ve()),(!i||g[0]&32768)&&Pe(t,"drawing",e[15]),(!i||g[0]&32)&&Pe(t,"editing",e[5]),(!i||g[0]&8)&&Pe(t,"hidden",!e[3]),(!i||g[0]&65536)&&Pe(t,"hover",e[16])},i(u){if(!i){for(let g=0;g<r.length;g+=1)U(a[g]);U(d),i=!0}},o(u){a=a.filter(Boolean);for(let g=0;g<a.length;g+=1)G(a[g]);G(d),i=!1},d(u){u&&N(t),Ge(a,u),d&&d.d(),e[35](null),e[36](null),s=!1,Ae(l)}}}function Wr(e,t,n){let o,i,s,l,r,a,f,d,u,g,h,p,w=q,A=()=>(w(),w=yn(_,X=>n(18,p=X)),_);e.$$.on_destroy.push(()=>w());let{drawingEnabled:b}=t,{image:v}=t,{preferredDrawingMode:y}=t,{state:M}=t,{style:L=void 0}=t,{toolName:k=tn()[0]}=t,{user:T}=t,{visible:V=!0}=t,D=0;const Q=()=>n(7,D+=1),z=()=>k,j=()=>b;let O,m,_;Oe(()=>A(n(9,_=Jn(v,m))));const{hover:E,selection:S,store:I}=M;Ot(e,E,X=>n(16,u=X)),Ot(e,S,X=>n(33,g=X)),Ot(e,I,X=>n(17,h=X));let H,Y;const K=X=>{H&&I.unobserve(H);const de=X.filter(({editable:ne})=>ne).map(({id:ne})=>ne);de.length>0?(n(5,Y=de.map(ne=>I.getAnnotation(ne)).filter(ne=>ne&&rt(ne))),H=ne=>{const{updated:we}=ne.changes;n(5,Y=we==null?void 0:we.map(ce=>ce.newValue))},I.observe(H,{annotations:de})):n(5,Y=void 0)},Z=X=>{const de=Gn(),ne={id:de,bodies:[],target:{annotation:de,selector:X.detail,creator:T,created:new Date}};I.addAnnotation(ne),S.setSelected(ne.id)},J=X=>de=>{var qe;const{target:ne}=X,we=10*60*1e3,ce=((qe=ne.creator)==null?void 0:qe.id)!==T.id||!ne.created||new Date().getTime()-ne.created.getTime()>we;I.updateTarget({...ne,selector:de.detail,created:ce?ne.created:new Date,updated:ce?new Date:void 0,updatedBy:ce?T:void 0})},te=X=>{const{x:de,y:ne}=on(X,m),we=I.getAt(de,ne,void 0,2);we?u!==we.id&&E.set(we.id):E.set(void 0)},ye=X=>rt(X);function ie(X){mt[X?"unshift":"push"](()=>{O=X,n(8,O)})}function ke(X){mt[X?"unshift":"push"](()=>{m=X,n(4,m)})}return e.$$set=X=>{"drawingEnabled"in X&&n(0,b=X.drawingEnabled),"image"in X&&n(25,v=X.image),"preferredDrawingMode"in X&&n(26,y=X.preferredDrawingMode),"state"in X&&n(27,M=X.state),"style"in X&&n(1,L=X.style),"toolName"in X&&n(2,k=X.toolName),"user"in X&&n(28,T=X.user),"visible"in X&&n(3,V=X.visible)},e.$$.update=()=>{e.$$.dirty[0]&4&&n(15,{tool:o,opts:i}=nn(k)||{tool:void 0,opts:void 0},o,(n(32,i),n(2,k))),e.$$.dirty[0]&67108864|e.$$.dirty[1]&2&&n(14,s=(i==null?void 0:i.drawingMode)||y),e.$$.dirty[0]&16&&n(13,l=Yo(m)),e.$$.dirty[0]&16&&n(12,{onPointerDown:r,onPointerUp:a}=Uo(m,I),r,(n(11,a),n(4,m))),e.$$.dirty[1]&4&&K(g.selected),e.$$.dirty[0]&32&&n(6,f=Y?Y.map(X=>({annotation:X,editor:ko(X.target.selector)})).filter(X=>X.editor):void 0),e.$$.dirty[0]&64&&n(10,d=X=>f&&f.some(de=>de.annotation.id===X.id))},[b,L,k,V,m,Y,f,D,O,_,d,a,r,l,s,o,u,h,p,E,S,I,Z,J,te,v,y,M,T,Q,z,j,i,g,ye,ie,ke]}class Wo extends me{constructor(t){super(),he(this,t,Wr,Kr,re,{drawingEnabled:0,image:25,preferredDrawingMode:26,state:27,style:1,toolName:2,user:28,visible:3,cancelDrawing:29,getDrawingTool:30,isDrawingEnabled:31},null,[-1,-1])}get cancelDrawing(){return this.$$.ctx[29]}get getDrawingTool(){return this.$$.ctx[30]}get isDrawingEnabled(){return this.$$.ctx[31]}}function Zo(e,t,n=0,o=e.length-1,i=Zr){for(;o>n;){if(o-n>600){const a=o-n+1,f=t-n+1,d=Math.log(a),u=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*u*(a-u)/a)*(f-a/2<0?-1:1),h=Math.max(n,Math.floor(t-f*u/a+g)),p=Math.min(o,Math.floor(t+(a-f)*u/a+g));Zo(e,t,h,p,i)}const s=e[t];let l=n,r=o;for(dt(e,n,t),i(e[o],s)>0&&dt(e,n,o);l<r;){for(dt(e,l,r),l++,r--;i(e[l],s)<0;)l++;for(;i(e[r],s)>0;)r--}i(e[n],s)===0?dt(e,n,r):(r++,dt(e,r,o)),r<=t&&(n=r+1),t<=r&&(o=r-1)}}function dt(e,t,n){const o=e[t];e[t]=e[n],e[n]=o}function Zr(e,t){return e<t?-1:e>t?1:0}class Jr{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(t){let n=this.data;const o=[];if(!St(t,n))return o;const i=this.toBBox,s=[];for(;n;){for(let l=0;l<n.children.length;l++){const r=n.children[l],a=n.leaf?i(r):r;St(t,a)&&(n.leaf?o.push(r):ln(t,a)?this._all(r,o):s.push(r))}n=s.pop()}return o}collides(t){let n=this.data;if(!St(t,n))return!1;const o=[];for(;n;){for(let i=0;i<n.children.length;i++){const s=n.children[i],l=n.leaf?this.toBBox(s):s;if(St(t,l)){if(n.leaf||ln(t,l))return!0;o.push(s)}}n=o.pop()}return!1}load(t){if(!(t&&t.length))return this;if(t.length<this._minEntries){for(let o=0;o<t.length;o++)this.insert(t[o]);return this}let n=this._build(t.slice(),0,t.length-1,0);if(!this.data.children.length)this.data=n;else if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){const o=this.data;this.data=n,n=o}this._insert(n,this.data.height-n.height-1,!0)}return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=xe([]),this}remove(t,n){if(!t)return this;let o=this.data;const i=this.toBBox(t),s=[],l=[];let r,a,f;for(;o||s.length;){if(o||(o=s.pop(),a=s[s.length-1],r=l.pop(),f=!0),o.leaf){const d=Qr(t,o.children,n);if(d!==-1)return o.children.splice(d,1),s.push(o),this._condense(s),this}!f&&!o.leaf&&ln(o,i)?(s.push(o),l.push(r),r=0,a=o,o=o.children[0]):a?(r++,o=a.children[r],f=!1):o=null}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,n){const o=[];for(;t;)t.leaf?n.push(...t.children):o.push(...t.children),t=o.pop();return n}_build(t,n,o,i){const s=o-n+1;let l=this._maxEntries,r;if(s<=l)return r=xe(t.slice(n,o+1)),$e(r,this.toBBox),r;i||(i=Math.ceil(Math.log(s)/Math.log(l)),l=Math.ceil(s/Math.pow(l,i-1))),r=xe([]),r.leaf=!1,r.height=i;const a=Math.ceil(s/l),f=a*Math.ceil(Math.sqrt(l));Jo(t,n,o,f,this.compareMinX);for(let d=n;d<=o;d+=f){const u=Math.min(d+f-1,o);Jo(t,d,u,a,this.compareMinY);for(let g=d;g<=u;g+=a){const h=Math.min(g+a-1,u);r.children.push(this._build(t,g,h,i-1))}}return $e(r,this.toBBox),r}_chooseSubtree(t,n,o,i){for(;i.push(n),!(n.leaf||i.length-1===o);){let s=1/0,l=1/0,r;for(let a=0;a<n.children.length;a++){const f=n.children[a],d=rn(f),u=el(t,f)-d;u<l?(l=u,s=d<s?d:s,r=f):u===l&&d<s&&(s=d,r=f)}n=r||n.children[0]}return n}_insert(t,n,o){const i=o?t:this.toBBox(t),s=[],l=this._chooseSubtree(i,this.data,n,s);for(l.children.push(t),ht(l,i);n>=0&&s[n].children.length>this._maxEntries;)this._split(s,n),n--;this._adjustParentBBoxes(i,s,n)}_split(t,n){const o=t[n],i=o.children.length,s=this._minEntries;this._chooseSplitAxis(o,s,i);const l=this._chooseSplitIndex(o,s,i),r=xe(o.children.splice(l,o.children.length-l));r.height=o.height,r.leaf=o.leaf,$e(o,this.toBBox),$e(r,this.toBBox),n?t[n-1].children.push(r):this._splitRoot(o,r)}_splitRoot(t,n){this.data=xe([t,n]),this.data.height=t.height+1,this.data.leaf=!1,$e(this.data,this.toBBox)}_chooseSplitIndex(t,n,o){let i,s=1/0,l=1/0;for(let r=n;r<=o-n;r++){const a=gt(t,0,r,this.toBBox),f=gt(t,r,o,this.toBBox),d=tl(a,f),u=rn(a)+rn(f);d<s?(s=d,i=r,l=u<l?u:l):d===s&&u<l&&(l=u,i=r)}return i||o-n}_chooseSplitAxis(t,n,o){const i=t.leaf?this.compareMinX:$r,s=t.leaf?this.compareMinY:xr,l=this._allDistMargin(t,n,o,i),r=this._allDistMargin(t,n,o,s);l<r&&t.children.sort(i)}_allDistMargin(t,n,o,i){t.children.sort(i);const s=this.toBBox,l=gt(t,0,n,s),r=gt(t,o-n,o,s);let a=vt(l)+vt(r);for(let f=n;f<o-n;f++){const d=t.children[f];ht(l,t.leaf?s(d):d),a+=vt(l)}for(let f=o-n-1;f>=n;f--){const d=t.children[f];ht(r,t.leaf?s(d):d),a+=vt(r)}return a}_adjustParentBBoxes(t,n,o){for(let i=o;i>=0;i--)ht(n[i],t)}_condense(t){for(let n=t.length-1,o;n>=0;n--)t[n].children.length===0?n>0?(o=t[n-1].children,o.splice(o.indexOf(t[n]),1)):this.clear():$e(t[n],this.toBBox)}}function Qr(e,t,n){if(!n)return t.indexOf(e);for(let o=0;o<t.length;o++)if(n(e,t[o]))return o;return-1}function $e(e,t){gt(e,0,e.children.length,t,e)}function gt(e,t,n,o,i){i||(i=xe(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=t;s<n;s++){const l=e.children[s];ht(i,e.leaf?o(l):l)}return i}function ht(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function $r(e,t){return e.minX-t.minX}function xr(e,t){return e.minY-t.minY}function rn(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function vt(e){return e.maxX-e.minX+(e.maxY-e.minY)}function el(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function tl(e,t){const n=Math.max(e.minX,t.minX),o=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),s=Math.min(e.maxY,t.maxY);return Math.max(0,i-n)*Math.max(0,s-o)}function ln(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function St(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function xe(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Jo(e,t,n,o,i){const s=[t,n];for(;s.length;){if(n=s.pop(),t=s.pop(),n-t<=o)continue;const l=t+Math.ceil((n-t)/o/2)*o;Zo(e,l,t,n,i),s.push(t,l,l,n)}}const nl=()=>{const e=new Jr,t=new Map,n=()=>[...t.values()],o=()=>{e.clear(),t.clear()},i=u=>{if(!lt(u))return;const{minX:g,minY:h,maxX:p,maxY:w}=u.selector.geometry.bounds,A={minX:g,minY:h,maxX:p,maxY:w,target:u};e.insert(A),t.set(u.annotation,A)},s=u=>{if(!lt(u))return;const g=t.get(u.annotation);g&&e.remove(g),t.delete(u.annotation)};return{all:n,clear:o,getAt:(u,g,h=0)=>{const w=e.search({minX:u-h,minY:g-h,maxX:u+h,maxY:g+h}).map(A=>A.target).filter(({selector:A})=>Ln(A,u,g,h));return w.length>0?(w.sort((A,b)=>_t(A.selector)-_t(b.selector)),w):[]},getIntersecting:(u,g,h,p)=>e.search({minX:u,minY:g,maxX:u+h,maxY:g+p}).map(w=>w.target),insert:i,remove:s,set:(u,g=!0)=>{g&&o();const h=u.reduce((p,w)=>{if(lt(w)){const{minX:A,minY:b,maxX:v,maxY:y}=w.selector.geometry.bounds;return[...p,{minX:A,minY:b,maxX:v,maxY:y,target:w}]}else return p},[]);h.forEach(p=>t.set(p.target.annotation,p)),e.load(h)},size:()=>e.all().length,update:(u,g)=>{s(u),i(g)}}},Qo=e=>({...e,subscribe:n=>{const o=i=>n(i.state);return e.observe(o),n(e.all()),()=>e.unobserve(o)}}),$o=e=>{const t=ss(),n=nl(),o=zi(t,e.userSelectAction,e.adapter),i=Fi(t),s=cs();return t.observe(({changes:a})=>{n.set((a.created||[]).map(f=>f.target),!1),(a.deleted||[]).forEach(f=>n.remove(f.target)),(a.updated||[]).forEach(({oldValue:f,newValue:d})=>n.update(f.target,d.target))}),{store:{...t,getAt:(a,f,d,u)=>{const g=n.getAt(a,f,u);if(d)return g.map(p=>t.getAnnotation(p.annotation)).filter(Boolean).filter(d)[0];{const h=g[0];return h?t.getAnnotation(h.annotation):void 0}},getIntersecting:(a,f,d,u)=>n.getIntersecting(a,f,d,u).map(g=>t.getAnnotation(g.annotation)).filter(Boolean)},selection:o,hover:i,viewport:s}},xo=e=>{const t=$o(e);return{...t,store:Qo(t.store)}},ei=e=>{let t,n;if(e.nodeName==="CANVAS")t=e,n=t.getContext("2d",{willReadFrequently:!0});else{const i=e;t=document.createElement("canvas"),t.width=i.width,t.height=i.height,n=t.getContext("2d",{willReadFrequently:!0}),n.drawImage(i,0,0,i.width,i.height)}let o=0;for(let i=1;i<10;i++)for(let s=1;s<10;s++){const l=Math.round(s*t.width/10),r=Math.round(i*t.height/10),a=n.getImageData(l,r,1,1).data,f=(.299*a[0]+.587*a[1]+.114*a[2])/255;o+=f}return o/81},ti=e=>{const t=ei(e),n=t>.6?"dark":"light";return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${n} theme.`),n},an=(e,t,n)=>t.setAttribute("data-theme",n==="auto"?ti(e):n),ni=(e,t)=>({...e,drawingEnabled:e.drawingEnabled===void 0?t.drawingEnabled:e.drawingEnabled,drawingMode:e.drawingMode||t.drawingMode,userSelectAction:e.userSelectAction||t.userSelectAction,theme:e.theme||t.theme}),cn=typeof navigator>"u"?!1:navigator.userAgent.indexOf("Mac OS X")!==-1,oi=(e,t)=>{const n=t||document,o=l=>{const r=l;r.key==="z"&&r.ctrlKey?e.undo():r.key==="y"&&r.ctrlKey&&e.redo()},i=l=>{const r=l;r.key==="z"&&r.metaKey&&(r.shiftKey?e.redo():e.undo())},s=()=>{cn?n.removeEventListener("keydown",i):n.removeEventListener("keydown",o)};return cn?n.addEventListener("keydown",i):n.addEventListener("keydown",o),{destroy:s}},ol=(e,t={})=>{if(!e)throw"Missing argument: image";const n=typeof e=="string"?document.getElementById(e):e,o=ni(t,{drawingEnabled:!0,drawingMode:"drag",userSelectAction:Ht.EDIT,theme:"light"}),i=xo(o),{selection:s,store:l}=i,r=as(l,o.initialHistory),a=fs(i,r,o.adapter,o.autoSave),f=document.createElement("DIV");f.style.position="relative",f.style.display="inline-block",n.style.display="block",n.parentNode.insertBefore(f,n),f.appendChild(n);const d=oi(r);let u=bs();an(n,f,o.theme);const g=new Wo({target:f,props:{drawingEnabled:!!o.drawingEnabled,image:n,preferredDrawingMode:o.drawingMode,state:i,style:o.style,user:u}});g.$on("click",O=>{const{originalEvent:m,annotation:_}=O.detail;_?s.userSelect(_.id,m):s.isEmpty()||s.clear()});const h=ds(i,r,o.adapter),p=()=>g.cancelDrawing(),w=()=>{g.$destroy(),f.parentNode.insertBefore(n,f),f.parentNode.removeChild(f),d.destroy(),r.destroy()},A=()=>g.getDrawingTool(),b=()=>u,v=()=>g.isDrawingEnabled(),y=(O,m,_)=>Ro(O,m,_),M=(O,m)=>To(O,m),L=O=>{if(!nn(O))throw`No drawing tool named ${O}`;g.$set({toolName:O})},k=O=>g.$set({drawingEnabled:O}),T=O=>g.$set({preferredDrawingMode:O}),V=O=>{console.warn("Filter not implemented yet")},D=O=>g.$set({style:O}),Q=O=>an(n,f,O),z=O=>{u=O,g.$set({user:O})},j=O=>g.$set({visible:O});return{...h,cancelDrawing:p,destroy:w,getDrawingTool:A,getUser:b,isDrawingEnabled:v,listDrawingTools:tn,on:a.on,off:a.off,registerDrawingTool:y,registerShapeEditor:M,setDrawingEnabled:k,setDrawingMode:T,setDrawingTool:L,setFilter:V,setStyle:D,setTheme:Q,setUser:z,setVisible:j,element:f,state:i}};C.Editor=Et,C.EditorMount=Po,C.Handle=Ye,C.IdentityTransform=Yr,C.MidpointHandle=zt,C.PolygonEditor=lo,C.RectangleEditor=ho,C.RectangleUtil=Rn,C.RubberbandRectangle=Co,C.SVGAnnotationLayer=Wo,C.ShapeType=x,C.ToolMount=Lo,C.UserSelectAction=Ht,C.W3CImageFormat=ks,C.addEventListeners=Uo,C.approximateAsPolygon=yt,C.boundsFromMultiPolygonElements=st,C.boundsFromPoints=ue,C.chainStyles=hs,C.computeArea=_t,C.computePolygonArea=nt,C.computeSVGPath=Ut,C.computeStyle=gs,C.createBody=Qi,C.createImageAnnotator=ol,C.createImageAnnotatorState=$o,C.createSVGTransform=Yo,C.createSvelteImageAnnotatorState=xo,C.defaultColorProvider=Ms,C.detectTheme=ti,C.distance=it,C.enableResponsive=Jn,C.fillDefaults=ni,C.getAllCorners=Cn,C.getEditor=ko,C.getMaskDimensions=ct,C.getSVGPoint=on,C.getTool=nn,C.initKeyboardCommands=oi,C.intersects=Ln,C.isFragmentSelector=wt,C.isImageAnnotation=rt,C.isImageAnnotationTarget=lt,C.isMac=cn,C.isPointInPolygon=ot,C.isTouch=Ie,C.listDrawingTools=tn,C.multipolygonElementToPath=Le,C.parseFragmentSelector=Bn,C.parseSVGSelector=Xn,C.parseW3CImageAnnotation=Wn,C.pointsToPath=In,C.registerEditor=To,C.registerShapeUtil=Fe,C.registerTool=Ro,C.sampleBrightness=ei,C.serializeFragmentSelector=Yn,C.serializeSVGSelector=Hn,C.serializeW3CImageAnnotation=Zn,C.setTheme=an,C.simplifyMultiPolygon=vi,C.simplifyPoints=Yt,C.simplifyPolygon=Ai,C.toSvelteStore=Qo,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=annotorious.js.map
|