@ue-too/board 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +19 -0
- package/board.tsbuildinfo +1 -0
- package/boardify/index.d.ts +192 -0
- package/camera/base.d.ts +189 -0
- package/camera/camera-mux/animation-and-lock/animation-and-lock.d.ts +50 -0
- package/camera/camera-mux/animation-and-lock/index.d.ts +4 -0
- package/camera/camera-mux/animation-and-lock/pan-control-state-machine.d.ts +137 -0
- package/camera/camera-mux/animation-and-lock/rotation-control-state-machine.d.ts +131 -0
- package/camera/camera-mux/animation-and-lock/zoom-control-state-machine.d.ts +143 -0
- package/camera/camera-mux/index.d.ts +3 -0
- package/camera/camera-mux/interface.d.ts +12 -0
- package/camera/camera-mux/relay.d.ts +27 -0
- package/camera/camera-rig/camera-rig.d.ts +207 -0
- package/camera/camera-rig/index.d.ts +5 -0
- package/camera/camera-rig/pan-handler.d.ts +113 -0
- package/camera/camera-rig/rotation-handler.d.ts +78 -0
- package/camera/camera-rig/update-batcher/index.d.ts +3 -0
- package/camera/camera-rig/update-batcher/position-update-batcher.d.ts +58 -0
- package/camera/camera-rig/update-batcher/rotation-update-batcher.d.ts +54 -0
- package/camera/camera-rig/update-batcher/zoom-udpate-batcher.d.ts +60 -0
- package/camera/camera-rig/zoom-handler.d.ts +77 -0
- package/camera/default-camera.d.ts +170 -0
- package/camera/index.d.ts +8 -0
- package/camera/interface.d.ts +59 -0
- package/camera/update-publisher.d.ts +172 -0
- package/camera/utils/coordinate-conversion.d.ts +75 -0
- package/camera/utils/index.d.ts +5 -0
- package/camera/utils/matrix.d.ts +114 -0
- package/camera/utils/position.d.ts +71 -0
- package/camera/utils/rotation.d.ts +64 -0
- package/camera/utils/zoom.d.ts +25 -0
- package/index.d.ts +5 -0
- package/index.js +2 -0
- package/index.js.map +1 -0
- package/input-interpretation/index.d.ts +3 -0
- package/input-interpretation/input-state-machine/index.d.ts +4 -0
- package/input-interpretation/input-state-machine/kmt-input-context.d.ts +130 -0
- package/input-interpretation/input-state-machine/kmt-input-state-machine.d.ts +194 -0
- package/input-interpretation/input-state-machine/touch-input-context.d.ts +44 -0
- package/input-interpretation/input-state-machine/touch-input-state-machine.d.ts +64 -0
- package/input-interpretation/raw-input-parser/index.d.ts +2 -0
- package/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.d.ts +87 -0
- package/input-interpretation/raw-input-parser/vanilla-touch-event-parser.d.ts +55 -0
- package/input-interpretation/raw-input-publisher/index.d.ts +1 -0
- package/input-interpretation/raw-input-publisher/raw-input-publisher.d.ts +130 -0
- package/package.json +39 -0
- package/utils/canvas-position-dimension.d.ts +18 -0
- package/utils/coorindate-conversion.d.ts +5 -0
- package/utils/drawing-utils.d.ts +55 -0
- package/utils/drawing.d.ts +30 -0
- package/utils/handler-pipeline.d.ts +30 -0
- package/utils/index.d.ts +8 -0
- package/utils/observable.d.ts +9 -0
- package/utils/ruler.d.ts +1 -0
- package/utils/zoomlevel-adjustment.d.ts +28 -0
package/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{PointCal as t}from"@ue-too/math";import{TemplateStateMachine as e,TemplateState as o,NO_OP as i}from"@ue-too/being";class n{constructor(){this.observers=[]}subscribe(t,e){if(this.observers.push(t),e?.signal){if(e.signal.aborted)return this.observers=this.observers.filter((e=>e!==t)),()=>{};const o=()=>{this.observers=this.observers.filter((e=>e!==t)),e.signal?.removeEventListener("abort",o)};e.signal.addEventListener("abort",o)}return()=>{this.observers=this.observers.filter((e=>e!==t))}}notify(...t){this.observers.forEach((e=>queueMicrotask((()=>e(...t)))))}}class a{constructor(){this.pan=new n,this.zoom=new n,this.rotate=new n,this.all=new n}notifyPan(t,e){this.pan.notify(t,e),this.all.notify({type:"pan",diff:t.diff},e)}notifyZoom(t,e){this.zoom.notify(t,e),this.all.notify({type:"zoom",deltaZoomAmount:t.deltaZoomAmount},e)}notifyRotate(t,e){this.rotate.notify(t,e),this.all.notify({type:"rotate",deltaRotation:t.deltaRotation},e)}on(t,e,o){switch(t){case"pan":return this.pan.subscribe(e,o);case"zoom":return this.zoom.subscribe(e,o);case"rotate":return this.rotate.subscribe(e,o);case"all":return this.all.subscribe(e,o);default:throw new Error(`Invalid event name: ${t}`)}}}function s(t,e,o,i){const n=t.a,a=t.b;t.c,t.d;const s=t.e,r=t.f,h=-Math.atan2(a,n),c=Math.sqrt(n*n+a*a)/e;let l=[s,r];l=[l[0]/e,l[1]/e],l=[l[0]-o/2,l[1]-i/2];const u=Math.cos(h),d=Math.sin(h);l=[u*l[0]-d*l[1],d*l[0]+u*l[1]],l=[l[0]/c,l[1]/c];return{position:{x:-l[0],y:-l[1]},zoom:c,rotation:h}}function r(t,e,o,i,n,a){const s=h({a:i,b:0,c:0,d:i,e:0,f:0},{a:1,b:0,c:0,d:1,e:n/2,f:a/2}),r=Math.cos(-o),c=Math.sin(-o),l=h(s,{a:r,b:c,c:-c,d:r,e:0,f:0}),u=h(l,{a:e,b:0,c:0,d:e,e:0,f:0});return h(u,{a:1,b:0,c:0,d:1,e:-t.x,f:-t.y})}function h(t,e){const o=t.a,i=t.b,n=t.c,a=t.d,s=t.e,r=t.f,h=e.a,c=e.b,l=e.c,u=e.d,d=e.e,m=e.f;return{a:o*h+n*c,b:i*h+a*c,c:o*l+n*u,d:i*l+a*u,e:o*d+n*m+s,f:i*d+a*m+r}}function c(t){const{a:e,b:o,c:i,d:n,e:a,f:s}=t,r={x:a,y:s},h=e*n-o*i;if(Math.abs(h)<1e-10)throw new Error("Matrix is singular and cannot be decomposed");const c=Math.atan2(o,e),l=Math.cos(c),u=Math.sin(c),d=e*l+o*u,m=i*-u+n*l;let p=c,_=d,y=m;for(d<0&&(_=-d,p+=Math.PI),m<0&&(y=-m,p+=Math.PI);p>Math.PI;)p-=2*Math.PI;for(;p<-Math.PI;)p+=2*Math.PI;return{translation:r,rotation:p,scale:{x:_,y:y}}}function l(t,e,o){const i=Math.cos(e),n=Math.sin(e);return{a:o.x*i,b:o.x*n,c:-o.y*n,d:o.y*i,e:t.x,f:t.y}}function u(t){const{a:e,b:o,c:i,d:n,e:a,f:s}=t,r={x:a,y:s},h=e,c=i,l=o,u=n,d=h*h+l*l,m=h*c+l*u,p=m,_=c*c+u*u,y=d+_,f=y*y-4*(d*_-m*p);if(f<0)throw new Error("Invalid transformation matrix");const v=Math.sqrt(f),T=(y+v)/2,g=(y-v)/2,P=Math.sqrt(Math.max(0,T)),x={x:P,y:Math.sqrt(Math.max(0,g))};let b=0;if(P>1e-10){const t=m,e=T-d,o=g-_,i=p,n=Math.sqrt(t*t+o*o),a=Math.sqrt(e*e+i*i);if(n>1e-10&&a>1e-10){const e=t/n,i=o/n,a=(h*e+c*i)/P,s=(l*e+u*i)/P;b=Math.atan2(s,a)}}return{translation:r,rotation:b,scale:x}}function d(e,o,i,n,a,s){let r={x:i/2,y:n/2},h=t.subVector(o,r);return h=t.multiplyVectorByScalar(h,1/a),h=t.rotatePoint(h,s),t.addVector(e,h)}function m(e,o,i,n,a,s){let r={x:o/2,y:i/2},h=t.subVector(e,r);return h=t.multiplyVectorByScalar(h,1/a),h=t.rotatePoint(h,s),t.addVector(n,h)}function p(e,o,i,n){const a=t.multiplyVectorByScalar(e,1/i),s=t.rotatePoint(a,n);return t.addVector(s,o)}function _(e,o,i,n){const a=t.subVector(e,o),s=t.multiplyVectorByScalar(a,i);return t.rotatePoint(s,-n)}function y(e,o,i,n,a,s){let r={x:o/2,y:i/2},h=t.subVector(e,n);return h=t.rotatePoint(h,-s),h=t.multiplyVectorByScalar(h,a),t.addVector(r,h)}function f(t,e,o,i,n,a){const s=y(t,e,o,i,n,a);return!(s.x<0||s.x>e||s.y<0||s.y>o)}function v(e,o,i){return t.multiplyVectorByScalar(t.rotatePoint(e,i),1/o)}function T(e,o,i){return t.multiplyVectorByScalar(t.rotatePoint(e,-i),o)}function g(e,o,i,n){const a=t.multiplyVectorByScalar(o,1/i),s=t.rotatePoint(a,n);return t.subVector(e,s)}function P(t,e,o){const i=Math.cos(o),n=Math.sin(o),a=h({a:1,b:0,c:0,d:1,e:t.x,f:t.y},{a:i,b:n,c:-n,d:i,e:0,f:0});return h(a,{a:1/e,b:0,c:0,d:1/e,e:0,f:0})}function x(t,e){return{x:t.x*e.a+t.y*e.c+e.e,y:t.x*e.b+t.y*e.d+e.f}}function b(t,e){if(null==e)return!0;let o=!1,i=!1,n=!1,a=!1;return(null==e.max||null==e.max.x||t.x<=e.max.x)&&(i=!0),(null==e.min||null==e.min.x||t.x>=e.min.x)&&(o=!0),(null==e.max||null==e.max.y||t.y<=e.max.y)&&(n=!0),(null==e.min||null==e.min.y||t.y>=e.min.y)&&(a=!0),o&&i&&n&&a}function w(t){if(null==t)return!0;const e=t.min?.x,o=t.max?.x;if(null!=e&&null!=o&&e>=o)return!1;const i=t.min?.y,n=t.max?.y;return!(null!=i&&null!=n&&i>=n)}function B(t){return null!=t&&(null!=t.max&&null!=t.min&&(null!=t.max.x&&null!=t.max.y&&null!=t.min.x&&null!=t.min.y))}function C(t,e){if(b(t,e)||null==e)return t;let o={x:t.x,y:t.y},i=e.min;return null!=i&&(null!=i.x&&(o.x=Math.max(o.x,i.x)),null!=i.y&&(o.y=Math.max(o.y,i.y))),i=e.max,null!=i&&(null!=i.x&&(o.x=Math.min(o.x,i.x)),null!=i.y&&(o.y=Math.min(o.y,i.y))),o}function I(t){if(null!=t&&null!=t.min&&null!=t.max&&null!=t.min.x&&null!=t.max.x)return t.max.x-t.min.x}function R(t){const e=I(t);return null!=e?e/2:void 0}function S(t){if(null!=t&&null!=t.min&&null!=t.max&&null!=t.min.y&&null!=t.max.y)return t.max.y-t.min.y}function M(t){const e=S(t);return null!=e?e/2:void 0}function O(e,o,i,n,a,s){if(null==n)return e;let r=d(e,{x:0,y:i},o,i,a,s),h=d(e,{x:0,y:0},o,i,a,s),c=d(e,{x:o,y:i},o,i,a,s),l=d(e,{x:o,y:0},o,i,a,s),u=C(r,n),m=C(c,n),p=C(h,n),_=C(l,n),y=[t.subVector(u,r),t.subVector(m,c),t.subVector(p,h),t.subVector(_,l)],f=Math.abs(y[0].x),v=Math.abs(y[0].y),T=y[0];return y.forEach((t=>{Math.abs(t.x)>f&&(f=Math.abs(t.x),T.x=t.x),Math.abs(t.y)>v&&(v=Math.abs(t.y),T.y=t.y)})),t.addVector(e,T)}function A(t){return void 0===t||!(void 0!==t.min&&void 0!==t.max&&t.min>t.max)}function E(t,e){return V(t,e)||void 0===e||(e.max&&(t=Math.min(e.max,t)),e.min&&(t=Math.max(e.min,t))),t}function V(t,e){return void 0===e||!(t<=0||void 0!==e&&(void 0!==e.max&&e.max<t||void 0!==e.min&&e.min>t))}function z(t,e){if(k(t,e)||void 0===e)return t;t=H(t);const o=Z(e.start,t),i=Z(e.end,t);if(e.ccw&&(o<0||i>0)||!e.ccw&&(o>0||i<0)){if(Math.abs(o)===Math.abs(i))return e.startAsTieBreaker?e.start:e.end;return Math.abs(o)<Math.abs(i)?e.start:e.end}return t}function k(t,e){if(void 0===e)return!0;if(H(e.start)===H(e.end))return!0;if(H(e.start+.01)===H(e.end+.01))return!0;const o=H(t),i=Z(e.start,o),n=Z(e.end,o);return!(e.ccw&&(i<0||n>0)||!e.ccw&&(i>0||n<0))}function U(t,e){if(H(e.start)===H(e.end))return!0;if(H(e.start+.01)===H(e.end+.01))return!0;let o=H(t)-H(e.start);o<0&&(o+=2*Math.PI),!e.positiveDirection&&o>0&&(o=2*Math.PI-o);let i=H(e.end)-H(e.start);return i<0&&(i+=2*Math.PI),!e.positiveDirection&&i>0&&(i=2*Math.PI-i),i>=o}function H(t){return t=((t%=2*Math.PI)+2*Math.PI)%(2*Math.PI)}function Z(t,e){t=H(t);let o=(e=H(e))-t;return o>Math.PI&&(o=-(2*Math.PI-o)),o<-Math.PI&&(o+=2*Math.PI),o}function L(t){return t*Math.PI/180}function N(t){return 180*t/Math.PI}class W{constructor(t=1e3,e=1e3,o={x:0,y:0},i=0,n=1,a={min:{x:-1e4,y:-1e4},max:{x:1e4,y:1e4}},s={min:.1,max:10},r=void 0){this._position=o,this._zoomLevel=n,this._rotation=i,this._viewPortHeight=e,this._viewPortWidth=t,this._zoomBoundaries=s,this._rotationBoundaries=r,this._boundaries=a}get boundaries(){return this._boundaries}set boundaries(t){this._boundaries=t}get viewPortWidth(){return this._viewPortWidth}set viewPortWidth(t){this._viewPortWidth=t}get viewPortHeight(){return this._viewPortHeight}set viewPortHeight(t){this._viewPortHeight=t}get position(){return this._position}setPosition(e){if(!b(e,this._boundaries))return!1;const o=t.subVector(e,this._position);return!(t.magnitude(o)<1e-9&&t.magnitude(o)<1/this._zoomLevel)&&(this._position=e,!0)}get zoomLevel(){return this._zoomLevel}get zoomBoundaries(){return this._zoomBoundaries}set zoomBoundaries(t){if(void 0!==t&&void 0!==t.min&&void 0!==t.max&&t.min>t.max){let e=t.max;t.max=t.min,t.min=e}this._zoomBoundaries=t}setMaxZoomLevel(t){return null==this._zoomBoundaries&&(this._zoomBoundaries={min:void 0,max:void 0}),!(null!=this._zoomBoundaries.min&&this._zoomBoundaries.min>t||this._zoomLevel>t)&&(this._zoomBoundaries.max=t,!0)}setMinZoomLevel(t){return null==this._zoomBoundaries&&(this._zoomBoundaries={min:void 0,max:void 0}),!(null!=this._zoomBoundaries.max&&this._zoomBoundaries.max<t)&&(this._zoomBoundaries.min=t,this._zoomLevel<t&&(this._zoomLevel=t),!0)}setZoomLevel(t){return!!V(t,this._zoomBoundaries)&&((void 0===this._zoomBoundaries||void 0===this._zoomBoundaries.max||E(t,this._zoomBoundaries)!=this._zoomBoundaries.max||this._zoomLevel!=this._zoomBoundaries.max)&&((void 0===this._zoomBoundaries||void 0===this._zoomBoundaries.min||E(t,this._zoomBoundaries)!=this._zoomBoundaries.min||this._zoomLevel!=this._zoomBoundaries.min)&&(this._zoomLevel=t,!0)))}get rotation(){return this._rotation}get rotationBoundaries(){return this._rotationBoundaries}set rotationBoundaries(t){if(void 0!==t&&void 0!==t.start&&void 0!==t.end&&t.start>t.end){let e=t.end;t.end=t.start,t.start=e}this._rotationBoundaries=t}getTransform(t,e){if(void 0!==this.currentCachedTransform&&this.currentCachedTransform.devicePixelRatio===t&&this.currentCachedTransform.alignCoorindate===e&&this.currentCachedTransform.position.x===this._position.x&&this.currentCachedTransform.position.y===this._position.y&&this.currentCachedTransform.rotation===this._rotation&&this.currentCachedTransform.zoomLevel===this._zoomLevel&&this.currentCachedTransform.viewPortWidth===this._viewPortWidth&&this.currentCachedTransform.viewPortHeight===this._viewPortHeight)return{...this.currentCachedTransform.transform,cached:!0};const o=t*this._viewPortWidth/2,i=t*this._viewPortHeight/2,n=-this._position.x,a=e?-this._position.y:this._position.y,s=t,r=this._zoomLevel,h=e?-this._rotation:this._rotation,c=Math.sin(h),l=Math.cos(h),u=r*s*l,d=r*s*c,m=-s*r*c,p=r*s*l,_=s*r*l*n-s*r*c*a+o,y=s*r*c*n+s*r*l*a+i;return this.currentCachedTransform={transform:{a:u,b:d,c:m,d:p,e:_,f:y},position:this._position,rotation:this._rotation,zoomLevel:this._zoomLevel,alignCoorindate:e,devicePixelRatio:t,viewPortWidth:this._viewPortWidth,viewPortHeight:this._viewPortHeight},{a:u,b:d,c:m,d:p,e:_,f:y,cached:!1}}getTRS(t,e){return c(this.getTransform(t,e))}setUsingTransformationMatrix(t){const e=s(t,this._viewPortWidth,this._viewPortHeight,this._zoomLevel);this.setPosition(e.position),this.setRotation(e.rotation),this.setZoomLevel(e.zoom)}setRotation(t){return!!k(t,this._rotationBoundaries)&&(t=H(t),(void 0===this._rotationBoundaries||void 0===this._rotationBoundaries.end||z(t,this._rotationBoundaries)!=this._rotationBoundaries.end||this._rotation!=this._rotationBoundaries.end)&&((void 0===this._rotationBoundaries||void 0===this.rotationBoundaries.start||z(t,this._rotationBoundaries)!=this._rotationBoundaries.start||this._rotation!=this._rotationBoundaries.start)&&(this._rotation=t,!0)))}getCameraOriginInWindow(t){return t}convertFromViewPort2WorldSpace(t){return p(t,this._position,this._zoomLevel,this._rotation)}convertFromWorld2ViewPort(t){return _(t,this._position,this._zoomLevel,this._rotation)}invertFromWorldSpace2ViewPort(e){let o={x:this.viewPortWidth/2,y:this._viewPortHeight/2},i=t.subVector(e,this._position);return i=t.rotatePoint(i,-this._rotation),i=t.multiplyVectorByScalar(i,this._zoomLevel),t.addVector(o,i)}setHorizontalBoundaries(t,e){if(t>e){let o=e;e=t,t=o}null==this._boundaries&&(this._boundaries={min:{x:void 0,y:void 0},max:{x:void 0,y:void 0}}),this._boundaries.min.x=t,this._boundaries.max.x=e}setVerticalBoundaries(t,e){if(t>e){let o=e;e=t,t=o}null==this._boundaries&&(this._boundaries={min:{x:void 0,y:void 0},max:{x:void 0,y:void 0}}),this._boundaries.min.y=t,this._boundaries.max.y=e}}const D=1e3,F=1e3,q={min:.1,max:10},j={min:{x:-1e4,y:-1e4},max:{x:1e4,y:1e4}},G=void 0;class Y{constructor(t=1e3,e=1e3,o={x:0,y:0},i=0,n=1,s=j,r=q,h=G){this._baseCamera=new W(t,e,o,i,n,s,r,h),this._observer=new a}get boundaries(){return this._baseCamera.boundaries}set boundaries(t){this._baseCamera.boundaries=t}get viewPortWidth(){return this._baseCamera.viewPortWidth}set viewPortWidth(t){this._baseCamera.viewPortWidth=t}get viewPortHeight(){return this._baseCamera.viewPortHeight}set viewPortHeight(t){this._baseCamera.viewPortHeight=t}get position(){return this._baseCamera.position}setPosition(e){const o={...this._baseCamera.position};return!!this._baseCamera.setPosition(e)&&(this._observer.notifyPan({diff:t.subVector(e,o)},{position:this._baseCamera.position,rotation:this._baseCamera.rotation,zoomLevel:this._baseCamera.zoomLevel}),!0)}get zoomLevel(){return this._baseCamera.zoomLevel}get zoomBoundaries(){return this._baseCamera.zoomBoundaries}set zoomBoundaries(t){this._baseCamera.zoomBoundaries=t}setMaxZoomLevel(t){const e=this._baseCamera.zoomLevel;return!!this._baseCamera.setMaxZoomLevel(t)&&(this._observer.notifyZoom({deltaZoomAmount:t-e},{position:this._baseCamera.position,rotation:this._baseCamera.rotation,zoomLevel:this._baseCamera.zoomLevel}),!0)}setMinZoomLevel(t){return!!this._baseCamera.setMinZoomLevel(t)}setZoomLevel(t){return!!this._baseCamera.setZoomLevel(t)}get rotation(){return this._baseCamera.rotation}get rotationBoundaries(){return this._baseCamera.rotationBoundaries}set rotationBoundaries(t){this._baseCamera.rotationBoundaries=t}getTransform(t,e){return this._baseCamera.getTransform(t,e)}setRotation(t){const e=this._baseCamera.rotation;return!!this._baseCamera.setRotation(t)&&(this._observer.notifyRotate({deltaRotation:t-e},{position:this._baseCamera.position,rotation:this._baseCamera.rotation,zoomLevel:this._baseCamera.zoomLevel}),!0)}getCameraOriginInWindow(t){return t}convertFromViewPort2WorldSpace(t){return p(t,this._baseCamera.position,this._baseCamera.zoomLevel,this._baseCamera.rotation)}convertFromWorld2ViewPort(t){return _(t,this._baseCamera.position,this._baseCamera.zoomLevel,this._baseCamera.rotation)}invertFromWorldSpace2ViewPort(e){let o={x:this._baseCamera.viewPortWidth/2,y:this._baseCamera.viewPortHeight/2},i=t.subVector(e,this._baseCamera.position);return i=t.rotatePoint(i,-this._baseCamera.rotation),i=t.multiplyVectorByScalar(i,this._baseCamera.zoomLevel),t.addVector(o,i)}setHorizontalBoundaries(t,e){if(t>e){let o=e;e=t,t=o}null==this._baseCamera.boundaries&&(this._baseCamera.boundaries={min:{x:void 0,y:void 0},max:{x:void 0,y:void 0}}),this._baseCamera.boundaries.min.x=t,this._baseCamera.boundaries.max.x=e}setVerticalBoundaries(t,e){if(t>e){let o=e;e=t,t=o}null==this._baseCamera.boundaries&&(this._baseCamera.boundaries={min:{x:void 0,y:void 0},max:{x:void 0,y:void 0}}),this._baseCamera.boundaries.min.y=t,this._baseCamera.boundaries.max.y=e}on(t,e,o){return this._observer.on(t,e,o)}getTRS(t,e){return this._baseCamera.getTRS(t,e)}}class X{constructor(t,e){this._canvas=t,this.bindFunctions(),this._abortController=new AbortController,this._stateMachine=e,this._keyfirstPressed=new Map}get disabled(){return this._disabled}set disabled(t){this._disabled=t}get stateMachine(){return this._stateMachine}addEventListeners(t){this._canvas.addEventListener("pointerdown",this.pointerDownHandler,{signal:t}),this._canvas.addEventListener("pointerup",this.pointerUpHandler,{signal:t}),this._canvas.addEventListener("pointermove",this.pointerMoveHandler,{signal:t}),this._canvas.addEventListener("wheel",this.scrollHandler,{signal:t}),window.addEventListener("keydown",this.keypressHandler,{signal:t}),window.addEventListener("keyup",this.keyupHandler,{signal:t})}setUp(){this.addEventListeners(this._abortController.signal)}tearDown(){this._abortController.abort(),this._abortController=new AbortController}bindFunctions(){this.pointerDownHandler=this.pointerDownHandler.bind(this),this.pointerUpHandler=this.pointerUpHandler.bind(this),this.pointerMoveHandler=this.pointerMoveHandler.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.keypressHandler=this.keypressHandler.bind(this),this.keyupHandler=this.keyupHandler.bind(this)}pointerDownHandler(t){this._disabled||(0!==t.button||"mouse"!==t.pointerType?1!==t.button||"mouse"!==t.pointerType||this.stateMachine.happens("middlePointerDown",{x:t.clientX,y:t.clientY}):this.stateMachine.happens("leftPointerDown",{x:t.clientX,y:t.clientY}))}pointerUpHandler(t){this._disabled||(0!==t.button||"mouse"!==t.pointerType?1!==t.button||"mouse"!==t.pointerType||this.stateMachine.happens("middlePointerUp",{x:t.clientX,y:t.clientY}):this.stateMachine.happens("leftPointerUp",{x:t.clientX,y:t.clientY}))}pointerMoveHandler(t){this._disabled||(1!==t.buttons||"mouse"!==t.pointerType?4!==t.buttons||"mouse"!==t.pointerType||this.stateMachine.happens("middlePointerMove",{x:t.clientX,y:t.clientY}):this.stateMachine.happens("leftPointerMove",{x:t.clientX,y:t.clientY}))}scrollHandler(t){this._disabled||(t.preventDefault(),t.ctrlKey?this.stateMachine.happens("scrollWithCtrl",{x:t.clientX,y:t.clientY,deltaX:t.deltaX,deltaY:t.deltaY}):this.stateMachine.happens("scroll",{deltaX:t.deltaX,deltaY:t.deltaY}))}keypressHandler(t){t.target===document.body&&(this._keyfirstPressed.has(t.key)||(this._keyfirstPressed.set(t.key,!0)," "===t.key&&this.stateMachine.happens("spacebarDown",{})))}keyupHandler(t){this._keyfirstPressed.has(t.key)&&this._keyfirstPressed.delete(t.key)," "===t.key&&this.stateMachine.happens("spacebarUp",{})}attach(t){this.tearDown(),this._canvas=t,this.setUp()}}class K{constructor(t,e){this._panDisabled=!1,this._zoomDisabled=!1,this._rotateDisabled=!1,this._canvas=t,this._disabled=!1,this.touchSM=e,this._abortController=new AbortController,this.bindListeners()}get touchStateMachine(){return this.touchSM}bindListeners(){this.touchstartHandler=this.touchstartHandler.bind(this),this.touchendHandler=this.touchendHandler.bind(this),this.touchcancelHandler=this.touchcancelHandler.bind(this),this.touchmoveHandler=this.touchmoveHandler.bind(this)}enableStrategy(){this._disabled=!1}disableStrategy(){this._disabled=!0}setUp(){this._canvas.addEventListener("touchstart",this.touchstartHandler,{signal:this._abortController.signal}),this._canvas.addEventListener("touchend",this.touchendHandler,{signal:this._abortController.signal}),this._canvas.addEventListener("touchcancel",this.touchcancelHandler,{signal:this._abortController.signal}),this._canvas.addEventListener("touchmove",this.touchmoveHandler,{signal:this._abortController.signal})}tearDown(){this._abortController.abort(),this._abortController=new AbortController}get disabled(){return this._disabled}get alignCoordinateSystem(){return this._touchInputTracker.alignCoordinateSystem}set alignCoordinateSystem(t){this._touchInputTracker.alignCoordinateSystem=t}get panDisabled(){return this._panDisabled}set panDisabled(t){this._panDisabled=t}get zoomDisabled(){return this._zoomDisabled}set zoomDisabled(t){this._zoomDisabled=t}get rotateDisabled(){return this._rotateDisabled}set rotateDisabled(t){this._rotateDisabled=t}touchstartHandler(t){if(this._disabled)return;const e=[];for(let o=0;o<t.changedTouches.length;o++)e.push({ident:t.changedTouches[o].identifier,x:t.changedTouches[o].clientX,y:t.changedTouches[o].clientY});this.touchSM.happens("touchstart",{points:e}),t.preventDefault()}touchcancelHandler(t){if(this._disabled)return;const e=[];for(let o=0;o<t.changedTouches.length;o++)e.push({ident:t.changedTouches[o].identifier,x:t.changedTouches[o].clientX,y:t.changedTouches[o].clientY});this.touchSM.happens("touchend",{points:e})}touchendHandler(t){if(this._disabled)return;const e=[];for(let o=0;o<t.changedTouches.length;o++)e.push({ident:t.changedTouches[o].identifier,x:t.changedTouches[o].clientX,y:t.changedTouches[o].clientY});this.touchSM.happens("touchend",{points:e})}touchmoveHandler(t){if(this._disabled)return;t.preventDefault();const e=[];for(let o=0;o<t.targetTouches.length;o++)e.push({ident:t.targetTouches[o].identifier,x:t.targetTouches[o].clientX,y:t.targetTouches[o].clientY});this.touchSM.happens("touchmove",{points:e})}attach(t){this.tearDown(),this._canvas=t,this.setUp()}}function $(t){const e=Math.cos(Math.PI/6),o=Math.cos(Math.PI/3);return{x:t.x*e-t.y*e,y:t.x*o+t.y*o+(t.z??0)}}function J(t){if(t<=0)return 0;let e=0;if(t<1){let o=1;for(;o>t;)o/=10,e--}else{let o=1;for(;10*o<=t;)o*=10,e++}return e}function Q(...t){const e=Array.isArray(t[0])?t[0]:t;return(t,...o)=>e.reduce(((t,e)=>e(t,...o)),t)}class tt{constructor(t){this._observers=new n,this.lastRect=t.getBoundingClientRect(),this.resizeObserver=new ResizeObserver((t=>{for(const e of t){const t=et(e.target.getBoundingClientRect(),window.getComputedStyle(e.target));ot(this.lastRect,t)&&(this.publishPositionUpdate(t),this.lastRect=t)}})),this.intersectionObserver=new IntersectionObserver((t=>{for(const e of t)if(e.isIntersecting){const t=et(e.boundingClientRect,window.getComputedStyle(e.target));ot(this.lastRect,t)&&(this.publishPositionUpdate(t),this.lastRect=t)}})),this.scrollHandler=(()=>{const e=et(t.getBoundingClientRect(),window.getComputedStyle(t));ot(this.lastRect,e)&&(this.publishPositionUpdate(e),this.lastRect=e)}).bind(this),this.resizeHandler=(()=>{const e=et(t.getBoundingClientRect(),window.getComputedStyle(t));ot(this.lastRect,e)&&(this.publishPositionUpdate(e),this.lastRect=e)}).bind(this),this.resizeObserver.observe(t),this.intersectionObserver.observe(t),window.addEventListener("scroll",this.scrollHandler,{passive:!0}),window.addEventListener("resize",this.resizeHandler,{passive:!0})}dispose(){this.resizeObserver.disconnect(),this.intersectionObserver.disconnect(),window.removeEventListener("scroll",this.scrollHandler),window.removeEventListener("resize",this.resizeHandler)}attach(t){this.dispose(),this.resizeObserver.observe(t),this.intersectionObserver.observe(t),this.scrollHandler=(()=>{const e=et(t.getBoundingClientRect(),window.getComputedStyle(t));ot(this.lastRect,e)&&(this.publishPositionUpdate(e),this.lastRect=e)}).bind(this),this.resizeHandler=(()=>{const e=et(t.getBoundingClientRect(),window.getComputedStyle(t));ot(this.lastRect,e)&&(this.publishPositionUpdate(e),this.lastRect=e)}).bind(this),window.addEventListener("scroll",this.scrollHandler,{passive:!0}),window.addEventListener("resize",this.resizeHandler,{passive:!0})}publishPositionUpdate(t){this._observers.notify(t)}onPositionUpdate(t,e){this._observers.subscribe(t,e)}}function et(t,e){const o=parseFloat(e.paddingLeft),i=parseFloat(e.paddingTop),n=parseFloat(e.paddingRight),a=parseFloat(e.paddingBottom),s=parseFloat(e.borderLeftWidth),r=parseFloat(e.borderTopWidth),h=parseFloat(e.borderRightWidth),c=parseFloat(e.borderBottomWidth),l=t.left+o+s,u=t.top+i+r,d=t.width-o-n-s-h,m=t.height-i-a-r-c;return new DOMRect(l,u,d,m)}function ot(t,e){return t.top!==e.top||t.left!==e.left||t.width!==e.width||t.height!==e.height}const it={fillRect:[1],strokeRect:[1],fillText:[2],strokeText:[1],lineTo:[1],moveTo:[1],quadraticCurveTo:[1,3],bezierCurveTo:[1,3,5],arc:[1],drawImage:[2],rect:[1],roundRect:[1]};function nt(t){return new Proxy(t,{get(t,e,o){const i=Reflect.get(t,e,t);return"string"==typeof e&&e in it&&"function"==typeof i?function(...o){const n=[...o];if("drawImage"===e&&9===o.length){const e=at(o);return i.apply(t,e)}{const t=it[e];for(const e of t)e<n.length&&(n[e]=-n[e]);"drawImage"===e&&5===o.length&&(n[2]-=n[4])}return i.apply(t,n)}:"function"==typeof i?function(...e){return i.apply(t,e)}:i},set:(t,e,o)=>Reflect.set(t,e,o)})}function at(t){if(9!==t.length)return t;const e=[...t],o=t[0].height;return void 0!==o&&(e[2]=o-e[2],e[6]=-e[6],e[6]-=e[8],e[4]=-e[4]),e}function st(t,e,o,i,n,a="red"){let s=n/2;s/=o,t.beginPath(),t.strokeStyle=a,t.lineWidth=2/o,i?(t.moveTo(e.x-s,e.y),t.lineTo(e.x+s,e.y),t.moveTo(e.x,e.y-s),t.lineTo(e.x,e.y+s)):(t.moveTo(e.x-s,-e.y),t.lineTo(e.x+s,-e.y),t.moveTo(e.x,-e.y-s),t.lineTo(e.x,-e.y+s)),t.stroke(),t.lineWidth=3}function rt(t,e,o){if(!B(e))return;const i=I(e),n=S(e),a=null==e?void 0:e.min,s=null==a?void 0:a.x,r=null==a?void 0:a.y;null!=s&&null!=r&&null!=i&&null!=n&&(t.beginPath(),t.strokeStyle="blue",t.lineWidth=100,o?t.roundRect(s,r,i,n,5):t.roundRect(s,-r,i,-n,5),t.stroke(),t.lineWidth=3,t.strokeStyle="black")}function ht(t,e,o,i){if(!B(e))return;const n=I(e),a=S(e),s=null==e?void 0:e.min,r=null==s?void 0:s.x,h=null==s?void 0:s.y;null!=r&&null!=h&&null!=n&&null!=a&&(t.lineWidth=1/o,t.beginPath(),t.strokeStyle="rgba(87, 173, 72, 0.8)",t.moveTo(0,0),i?t.lineTo(0,h+a):t.lineTo(0,-h-a),t.stroke(),t.beginPath(),t.strokeStyle="rgba(220, 59, 59, 0.8)",t.moveTo(0,0),t.lineTo(r+n,0),t.stroke(),t.strokeStyle="black")}function ct(e,o,i,n,a,s,r){let h=t.unitVectorFromA2B(o,i),c=t.unitVectorFromA2B(n,o),l=t.distanceBetweenPoints(o,i);t.distanceBetweenPoints(o,n);let u=J(l),d=Math.pow(10,u)/10,m=Math.ceil(o.x/d)*d,p=Math.floor(i.x/d)*d,_=s?Math.floor(o.y/d)*d:Math.ceil(n.y/d)*d,y=s?Math.ceil(n.y/d)*d:Math.floor(o.y/d)*d;for(let i=m;i<=p;i+=d){const a=t.addVector({x:i,y:o.y},t.multiplyVectorByScalar(h,d)),s=t.addVector({x:i,y:n.y},t.multiplyVectorByScalar(h,d));e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=.5/r,e.moveTo(a.x,a.y),e.lineTo(s.x,s.y),e.stroke()}for(let n=_;n<=y;n+=d){const a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(c,d)),s=t.addVector({x:i.x,y:n},t.multiplyVectorByScalar(c,d));e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=.5/r,e.moveTo(a.x,a.y),e.lineTo(s.x,s.y),e.stroke()}}function lt(e,o,i,n,a,s,r){let h=t.unitVectorFromA2B(o,i),c=t.unitVectorFromA2B(n,o),l=J(t.distanceBetweenPoints(o,i)),u=Math.pow(10,l),d=u/2,m=u/10,p=1;l<=0&&(p=Math.pow(10,1-l));let _=Math.ceil(o.x/u)*u,y=Math.floor(i.x/u)*u,f=s?Math.ceil(o.y/u)*u:Math.floor(n.y/u)*u;s?Math.floor(n.y/u):Math.ceil(o.y/u);let v=Math.ceil(o.x/d)*d,T=Math.floor(i.x/d)*d,g=s?Math.ceil(o.y/d)*d:Math.floor(n.y/d)*d,P=s?Math.floor(n.y/d)*d:Math.ceil(o.y/d)*d,x=Math.ceil(o.x/m)*m,b=Math.floor(i.x/m)*m,w=s?Math.ceil(o.y/m)*m:Math.floor(n.y/m)*m,B=s?Math.floor(n.y/m)*m:Math.ceil(o.y/m)*m,C=d*r,I=m*r;e.font=`bold ${20/r}px Helvetica`;const R=e.measureText(""+-(d+v)),S=R.fontBoundingBoxAscent+R.fontBoundingBoxDescent,M=e.measureText(""+-(m+x)),O=M.fontBoundingBoxAscent+M.fontBoundingBoxDescent,A=Math.ceil((y-_)/u);for(let i=0;i<=A;i++){const n=_+i*u;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=5/r;let a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,50/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,-50/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.textAlign="center",e.textBaseline="middle",e.font=`bold ${20/r}px Helvetica`;const h=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`),l=h.fontBoundingBoxAscent+h.fontBoundingBoxDescent;s?(a=t.addVector(a,{x:0,y:l/2+.2*l}),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y)):(a=t.addVector(a,{x:0,y:-l/2-.2*l}),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,-a.y)),e.stroke()}const E=Math.ceil((y-_)/u);for(let i=0;i<=E;i++){const n=f+i*u;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=5/r;let a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,-50/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,50/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.textAlign="center",e.textBaseline="middle",e.font=`bold ${20/r}px Helvetica`;const c=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`);a=t.addVector(a,{x:c.width/2+.3*c.width,y:0}),s?e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y):e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,-a.y),e.stroke()}const V=Math.ceil((T-v)/d);for(let i=0;i<=V;i++){const n=v+i*d;if(Math.floor(n*p)%Math.floor(u*p)==0)continue;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=3/r;let a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,25/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,-25/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.font=15/r+"px Helvetica";const h=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`);if(C>2*R.width){e.textAlign="center",e.textBaseline="middle";const o=h.fontBoundingBoxAscent+h.fontBoundingBoxDescent;s?a=t.addVector(a,{x:0,y:o/2+.2*o}):(a=t.addVector(a,{x:0,y:-o/2-.2*o}),a=t.flipYAxis(a)),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y)}e.stroke()}const z=Math.ceil((P-g)/d);for(let i=0;i<=z;i++){const n=g+i*d;if(Math.floor(n*p)%Math.floor(u*p)==0)continue;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=3/r;let a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,-25/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,25/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.font=18/r+"px Helvetica";const c=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`);c.fontBoundingBoxAscent,c.fontBoundingBoxDescent,C>2*S&&(e.textAlign="center",e.textBaseline="middle",a=t.addVector(a,{x:c.width/2+.3*c.width,y:0}),s||(a=t.flipYAxis(a)),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y)),e.stroke()}const k=Math.ceil((b-x)/m);for(let i=0;i<=k;i++){const n=x+i*m;if(Math.floor(n*p)%Math.floor(u*p)==0||Math.floor(n*p)%Math.floor(d*p)==0)continue;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=1/r;let a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,12.5/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:n,y:o.y},t.multiplyVectorByScalar(c,-12.5/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.font=10/r+"px Helvetica";const h=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`);if(I>2*M.width){e.textAlign="center",e.textBaseline="middle";const o=h.fontBoundingBoxAscent+h.fontBoundingBoxDescent;s?a=t.addVector(a,{x:0,y:o/2+.2*o}):(a=t.addVector(a,{x:0,y:-o/2-.2*o}),a=t.flipYAxis(a)),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y)}e.stroke()}const U=Math.ceil((B-w)/m);for(let i=0;i<=U;i++){const n=w+i*m;if(Math.floor(n*p)%Math.floor(u*p)==0||Math.floor(n*p)%Math.floor(d*p)==0)continue;e.beginPath(),e.strokeStyle="black",e.fillStyle="black",e.lineWidth=1/r;let a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,-12.5/r));s?e.moveTo(a.x,a.y):e.moveTo(a.x,-a.y),a=t.addVector({x:o.x,y:n},t.multiplyVectorByScalar(h,12.5/r)),s?e.lineTo(a.x,a.y):e.lineTo(a.x,-a.y),e.font=12/r+"px Helvetica";const c=e.measureText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`);c.fontBoundingBoxAscent,c.fontBoundingBoxDescent,I>2*O&&(e.textAlign="center",e.textBaseline="middle",a=t.addVector(a,{x:c.width/2+.3*c.width,y:0}),s||(a=t.flipYAxis(a)),e.fillText(`${Math.abs(n)%1==0?n.toFixed(0):n.toFixed(2)}`,a.x,a.y)),e.stroke()}}function ut(t,e,o,i,n=20,a="red"){n/=o,t.font=20/o+"px Arial",t.fillStyle=a,i?t.fillText(`x: ${e.x.toFixed(2)}, y: ${e.y.toFixed(2)}`,e.x+n,e.y+n):t.fillText(`x: ${e.x.toFixed(2)}, y: ${e.y.toFixed(2)}`,e.x+n,-e.y-n),t.fillStyle="black"}function dt(t,e,o){t.beginPath(),t.strokeStyle="rgba(87, 173, 72, 0.8)",o?t.arc(e.x,e.y,5,0,2*Math.PI):t.arc(e.x,-e.y,5,0,2*Math.PI),t.stroke(),t.strokeStyle="black"}function mt(e,o,i,n,a=1,s=.3){const r=t.distanceBetweenPoints(i,n),h=10<r*o*.5?10/o:.5*r,c=r-h,l=t.linearInterpolation(i,n,c/r);e.beginPath(),e.lineWidth=a/o,e.moveTo(i.x,i.y),e.lineTo(l.x,l.y),e.stroke();const u=t.rotatePoint(t.unitVectorFromA2B(n,i),Math.PI/2),d=t.addVector(l,t.multiplyVectorByScalar(u,.5*h)),m=t.subVector(l,t.multiplyVectorByScalar(u,.5*h));e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(d.x,d.y),e.lineTo(m.x,m.y),e.closePath(),e.fill()}const pt=30,_t=9,yt=15,ft=10,vt=2.5,Tt=20,gt=10;function Pt(t,e,o,i,n,a){const{minMajorTickValue:s,maxMajorTickValue:r,majorTickStep:h,minMinTickValue:c,maxMaxTickValue:l,minTickStep:u,minHalfTickValue:d,maxHalfTickValue:m,halfTickStep:p,calibrationMultiplier:_,normalizedOrderOfMagnitude:y}=wt(e.x,o.x);t.save(),t.strokeStyle="red";for(let o=s;o<=r;o+=h){bt(t,a,{x:o*_,y:e.y},n?30/a:-30/a,o*_,{textOffset:n?10/a:-10/a,fontSize:20})}for(let o=c;o<=l;o+=u){if(o%h==0)continue;if(o%p==0)continue;bt(t,a,{x:o*_,y:e.y},n?9/a:-9/a,o)}for(let o=d;o<=m;o+=p){if(o%h==0)continue;bt(t,a,{x:o*_,y:e.y},n?15/a:-15/a,o*_,{textOffset:n?2.5/a:-2.5/a,fontSize:10,color:"red"})}t.restore();const{minMajorTickValue:f,maxMajorTickValue:v,majorTickStep:T,minMinTickValue:g,maxMaxTickValue:P,minTickStep:x,minHalfTickValue:b,maxHalfTickValue:w,halfTickStep:B,calibrationMultiplier:C}=wt(e.y,i.y,y);t.save(),t.strokeStyle="green";for(let o=f;o<=v;o+=T){xt(t,a,{x:e.x,y:o*C},30/a,o,{textOffset:10/a,fontSize:20})}for(let o=b;o<=w;o+=B){if(o%T==0)continue;xt(t,a,{x:e.x,y:o*C},15/a,o,{textOffset:2.5/a,fontSize:10})}for(let o=g;o<=P;o+=x){if(o%T==0)continue;xt(t,a,{x:e.x,y:o*C},9/a,o)}t.restore()}function xt(t,e,o,i,n,a){const s=void 0!==a;if(t.save(),t.lineWidth=1/e,t.beginPath(),t.moveTo(o.x,o.y),t.lineTo(o.x+i,o.y),t.stroke(),t.restore(),!s)return;const r=a.color??"green";t.save(),t.textAlign="left",t.textBaseline="middle",t.fillStyle=r,t.font=a.fontSize/e+"px Arial";const h=n%1==0?n:n.toFixed(2);t.fillText(`${h}`,o.x+i+a.textOffset,o.y),t.restore()}function bt(t,e,o,i,n,a){const s=void 0!==a;if(t.save(),t.lineWidth=1/e,t.beginPath(),t.moveTo(o.x,o.y),t.lineTo(o.x,o.y+i),t.stroke(),t.restore(),!s)return;const r=a.color??"red";t.save(),t.textAlign="center",t.textBaseline="top",t.fillStyle=r,t.font=a.fontSize/e+"px Arial";const h=n%1==0?n:n.toFixed(2);t.fillText(`${h}`,o.x,o.y+i+a.textOffset),t.restore()}function wt(t,e,o){const i=Math.min(t,e),n=Math.max(t,e),a=o||J(n-i),s=Math.max(1,a),r=Math.pow(10,s-a),h=(t>0?Math.floor(i*r/Math.pow(10,s)):Math.ceil(i*r/Math.pow(10,s)))*Math.pow(10,s),c=(e>0?Math.floor(n*r/Math.pow(10,s)):Math.ceil(n*r/Math.pow(10,s)))*Math.pow(10,s),l=Math.pow(10,s),u=s-1,d=l/2;return{minMajorTickValue:h,maxMajorTickValue:c,majorTickStep:l,minMinTickValue:(t>0?Math.floor(i*r/Math.pow(10,u)):Math.ceil(i*r/Math.pow(10,u)))*Math.pow(10,u),maxMaxTickValue:(e>0?Math.floor(n*r/Math.pow(10,u)):Math.ceil(n*r/Math.pow(10,u)))*Math.pow(10,u),minTickStep:Math.pow(10,u),minHalfTickValue:(t>0?Math.floor(i*r/d):Math.ceil(i*r/d))*d,maxHalfTickValue:(e>0?Math.floor(n*r/d):Math.ceil(n*r/d))*d,halfTickStep:d,calibrationMultiplier:1/r,normalizedOrderOfMagnitude:s}}function Bt(t,e,o,i){const n=I(t),a=S(t);if(null==n||null==a)return;let s=e/Math.abs(n*Math.cos(i)),r=e/Math.abs(a*Math.cos(i)),h=o/Math.abs(n*Math.sin(i)),c=o/Math.abs(a*Math.sin(i));s==1/0&&(s=0),r==1/0&&(r=0),h==1/0&&(h=0),c==1/0&&(c=0);const l=o/a,u=e/n;return Math.max(l,u,s,r,h,c)}function Ct(t,e){return null!=e&&(null==t||e!=1/0&&(void 0!==t&&(null==t.min||e>t.min)))}function It(t,e,o,i){const n=I(t);if(null==n)return;const a=Math.abs(n*Math.cos(i)),s=Math.abs(n*Math.sin(i));if(e/a==1/0)return o/s;return Math.max(e/a,o/s)}function Rt(t,e,o,i){const n=S(t);if(null==n)return;const a=e/Math.abs(n*Math.cos(i)),s=o/Math.abs(n*Math.sin(i));if(s==1/0)return a;return Math.max(a,s)}function St(t,e,o){return o.clampZoom?E(t,e.zoomBoundaries):t}function Mt(t,e,o){if(!o.clampZoom)return t;let i=e.zoomLevel+t;return i=E(i,e.zoomBoundaries),t=i-e.zoomLevel}function Ot(t,e,o){return o.restrictZoom?e.zoomLevel:t}function At(t,e,o){return o.restrictZoom?0:t}function Et(){return Q(St,Ot)}function Vt(){return Q(Mt,At)}function zt(){return Q(Ut,Zt)}function kt(){return Q(Ht,Lt)}function Ut(e,o,i){let n=t.subVector(e,o.position);if(n=Nt(n,o,i),0===n.x&&0===n.y)return e;return t.addVector(o.position,n)}function Ht(t,e,o){return t=Nt(t,e,o)}function Zt(t,e,o){if(!o.clampTranslation)return t;let i=C(t,e.boundaries);return o.limitEntireViewPort&&(i=O(t,e.viewPortWidth,e.viewPortHeight,e.boundaries,e.zoomLevel,e.rotation)),i}function Lt(e,o,i){if(!i.clampTranslation)return e;let n=t.subVector(C(t.addVector(o.position,e),o.boundaries),o.position);return i.limitEntireViewPort&&(n=t.subVector(O(t.addVector(o.position,e),o.viewPortWidth,o.viewPortHeight,o.boundaries,o.zoomLevel,o.rotation),o.position)),n}function Nt(e,o,i){if(i.restrictXTranslation&&i.restrictYTranslation)return{x:0,y:0};if(i.restrictRelativeXTranslation&&i.restrictRelativeYTranslation)return{x:0,y:0};if(i.restrictXTranslation&&(e.x=0),i.restrictYTranslation&&(e.y=0),i.restrictRelativeXTranslation){const i=t.rotatePoint({x:0,y:1},o.rotation),n=t.dotProduct(i,e);e=t.multiplyVectorByScalar(i,n)}if(i.restrictRelativeYTranslation){const i=t.rotatePoint({x:1,y:0},o.rotation),n=t.dotProduct(i,e);e=t.multiplyVectorByScalar(i,n)}return e}function Wt(e,o){return t.multiplyVectorByScalar(t.rotatePoint(e,o.rotation),1/o.zoomLevel)}function Dt(t,e,o){if(!o.clampRotation)return t;const i=z(H(e.rotation+t),e.rotationBoundaries);return Z(e.rotation,i)}function Ft(t,e,o){return o.restrictRotation?0:t}function qt(t,e,o){if(!o.clampRotation)return t;return z(t,e.rotationBoundaries)}function jt(t,e,o){return o.restrictRotation?e.rotation:t}function Gt(){return Q(Ft,Dt)}function Yt(){return Q(jt,qt)}class Xt{constructor(){this.nextPosition=null,this.delta={x:0,y:0},this.queuePositionUpdateCount=0,this.queuePositionUpdateToCount=0,this.queuePositionUpdateByCount=0,this.lastUpdateCount=0,this.observable=new n}queuePositionUpdate(t,e){this.queuePositionUpdateCount++,this.queuePositionUpdateTo({x:t,y:e})}queuePositionUpdateTo(t){this.queuePositionUpdateToCount++,this.nextPosition={...t},this.delta={x:0,y:0}}queuePositionUpdateBy(t){this.queuePositionUpdateByCount++,null===this.nextPosition?this.delta={x:this.delta.x+t.x,y:this.delta.y+t.y}:this.nextPosition={x:this.nextPosition.x+t.x,y:this.nextPosition.y+t.y}}processQueuedUpdates(){if(this.lastUpdateCount=this.queuePositionUpdateCount+this.queuePositionUpdateToCount+this.queuePositionUpdateByCount,this.queuePositionUpdateCount=0,this.queuePositionUpdateToCount=0,this.queuePositionUpdateByCount=0,null!==this.nextPosition){const t={...this.nextPosition,type:"destination"};return this.nextPosition=null,this.delta={x:0,y:0},this.observable.notify(t),t}if(0!==this.delta.x||0!==this.delta.y){const t={...this.delta,type:"delta"};return this.delta={x:0,y:0},this.observable.notify(t),t}return null}subscribe(t,e){return this.observable.subscribe(t,e)}getDebugInfo(){return{lastUpdateTotalCalls:this.lastUpdateCount,queuePositionUpdateCalls:this.queuePositionUpdateCount,queuePositionUpdateToCalls:this.queuePositionUpdateToCount,queuePositionUpdateByCalls:this.queuePositionUpdateByCount}}}class Kt{constructor(){this.nextRotation=null,this.delta=0,this.queueRotationUpdateCount=0,this.queueRotationUpdateToCount=0,this.queueRotationUpdateByCount=0,this.lastUpdateCount=0,this.observable=new n}queueRotationUpdate(t){this.queueRotationUpdateCount++,this.queueRotationUpdateTo(t)}queueRotationUpdateTo(t){this.queueRotationUpdateToCount++,this.nextRotation=t,this.delta=0}queueRotationUpdateBy(t){this.queueRotationUpdateByCount++,null===this.nextRotation?this.delta=this.delta+t:this.nextRotation=this.nextRotation+t}processQueuedUpdates(){if(this.lastUpdateCount=this.queueRotationUpdateCount+this.queueRotationUpdateToCount+this.queueRotationUpdateByCount,this.queueRotationUpdateCount=0,this.queueRotationUpdateToCount=0,this.queueRotationUpdateByCount=0,null!==this.nextRotation){const t={destination:this.nextRotation,type:"destination"};return this.nextRotation=null,this.delta=0,this.observable.notify(t),t}if(0!==this.delta){const t={delta:this.delta,type:"delta"};return this.delta=0,this.observable.notify(t),t}return null}subscribe(t,e){return this.observable.subscribe(t,e)}getDebugInfo(){return{lastUpdateTotalCalls:this.lastUpdateCount,queueRotationUpdateCalls:this.queueRotationUpdateCount,queueRotationUpdateToCalls:this.queueRotationUpdateToCount,queueRotationUpdateByCalls:this.queueRotationUpdateByCount}}}class $t{constructor(){this.nextZoom=null,this.anchor=null,this.delta=0,this.anchorCoordinateSystem="viewport",this.queueZoomUpdateCount=0,this.queueZoomUpdateToCount=0,this.lastUpdateCount=0,this.observable=new n}queueZoomUpdateTo(t,e){"world"===this.anchorCoordinateSystem&&(this.anchorCoordinateSystem="viewport",this.nextZoom=null,this.delta=0),this.anchor=e,this.nextZoom=t,0!==this.delta&&(this.delta=0)}queueZoomUpdateBy(t,e){"world"===this.anchorCoordinateSystem&&(this.anchorCoordinateSystem="viewport",this.nextZoom=null,this.delta=0),null===this.nextZoom?this.delta+=t:this.nextZoom+=t,this.anchor=e}queueZoomByAtWorld(t,e){"viewport"===this.anchorCoordinateSystem&&(this.anchorCoordinateSystem="world",this.nextZoom=null,this.delta=0),this.anchor=e,null===this.nextZoom?this.delta+=t:this.nextZoom+=t}queueZoomToAtWorld(t,e){"viewport"===this.anchorCoordinateSystem&&(this.anchorCoordinateSystem="world",this.nextZoom=null,this.delta=0),this.anchor=e,this.nextZoom=t,0!==this.delta&&(this.delta=0)}processQueuedUpdates(){if(null===this.nextZoom&&0===this.delta)return null;const t=this.delta,e=this.nextZoom,o=this.anchor;return this.delta=0,this.nextZoom=null,this.anchor=null,0!==t?{anchorCoordinateSystem:this.anchorCoordinateSystem,update:{type:"delta",delta:t,anchor:o}}:{anchorCoordinateSystem:this.anchorCoordinateSystem,update:{type:"destination",destination:e,anchor:o}}}subscribe(t,e){return this.observable.subscribe(t,e)}getDebugInfo(){return{lastUpdateTotalCalls:this.lastUpdateCount,queueZoomUpdateCalls:this.queueZoomUpdateCount,queueZoomUpdateToCalls:this.queueZoomUpdateToCount}}}class Jt{constructor(t,e=new Y){this._panBy=kt(),this._panTo=zt(),this._zoomTo=Et(),this._zoomBy=Vt(),this._rotateBy=Gt(),this._rotateTo=Yt(),this._config={...t,restrictRotation:!1,clampRotation:!0},this._camera=e,this._positionBatcher=new Xt,this._zoomBatcher=new $t,this._rotationBatcher=new Kt}zoomToAt(t,e){this._zoomBatcher.queueZoomUpdateTo(t,e)}zoomByAt(t,e){this._zoomBatcher.queueZoomUpdateBy(t,e)}zoomTo(t){this._zoomBatcher.queueZoomUpdateTo(t)}zoomBy(t){this._zoomBatcher.queueZoomUpdateBy(t)}zoomToAtWorld(t,e){this._zoomBatcher.queueZoomToAtWorld(t,e)}zoomByAtWorld(t,e){this._zoomBatcher.queueZoomByAtWorld(t,e)}_actualPanByWorld(e){const o=this._panBy(e,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,o))}_actualPanToWorld(t){const e=this._panTo(t,this._camera,this._config);this._camera.setPosition(e)}panByWorld(t){this._positionBatcher.queuePositionUpdateBy(t)}panByViewPort(e){const o=t.multiplyVectorByScalar(t.rotatePoint(e,this._camera.rotation),1/this._camera.zoomLevel);this._positionBatcher.queuePositionUpdateBy(o)}panToWorld(t){this._positionBatcher.queuePositionUpdateTo(t)}panToViewPort(t){const e=this._camera.convertFromViewPort2WorldSpace(t);this._positionBatcher.queuePositionUpdateTo(e)}rotateBy(t){this._rotationBatcher.queueRotationUpdateBy(t)}rotateTo(t){this._rotationBatcher.queueRotationUpdateTo(t)}set limitEntireViewPort(t){this._config.limitEntireViewPort=t}get limitEntireViewPort(){return this._config.limitEntireViewPort}get camera(){return this._camera}get config(){return this._config}set config(t){this._config={...t}}updatePosition(){const t=this._positionBatcher.processQueuedUpdates();if(null!=t)switch(t.type){case"destination":this._actualPanToWorld(t);break;case"delta":this._actualPanByWorld(t);break;default:throw new Error("Invalid position update type")}}updateZoom(){const t=this._zoomBatcher.processQueuedUpdates();if(null!=t)if("world"===t.anchorCoordinateSystem)switch(t.update.type){case"destination":if(t.update.anchor)this._zoomToAtWorld(t.update.destination,t.update.anchor);else{const e=this._zoomTo(t.update.destination,this._camera,this._config);this._camera.setZoomLevel(e)}break;case"delta":if(t.update.anchor)this._zoomByAtWorld(t.update.delta,t.update.anchor);else{const e=this._zoomBy(t.update.delta,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+e)}}else switch(t.update.type){case"destination":if(t.update.anchor)this._zoomToAtViewPort(t.update.destination,t.update.anchor);else{const e=this._zoomTo(t.update.destination,this._camera,this._config);this._camera.setZoomLevel(e)}break;case"delta":if(t.update.anchor)this._zoomByAtViewPort(t.update.delta,t.update.anchor);else{const e=this._zoomBy(t.update.delta,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+e)}}}updateRotation(){const t=this._rotationBatcher.processQueuedUpdates();if(null!=t)switch(t.type){case"destination":const e=this._rotateTo(t.destination,this._camera,this._config);this._camera.setRotation(e);break;case"delta":const o=this._rotateBy(t.delta,this._camera,this._config);this._camera.setRotation(this._camera.rotation+o);break;default:throw new Error("Invalid rotation update type")}}update(){this.updateZoom(),this.updatePosition(),this.updateRotation()}_zoomToAtViewPort(e,o){const i=this._camera.convertFromViewPort2WorldSpace(o),n=this._zoomTo(e,this._camera,this._config);this._camera.setZoomLevel(n);const a=this._camera.convertFromViewPort2WorldSpace(o),s=t.subVector(i,a),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}_zoomToAtWorld(e,o){let i=this._camera.convertFromWorld2ViewPort(o);const n=this._zoomTo(e,this._camera,this._config);this._camera.setZoomLevel(n);let a=this._camera.convertFromWorld2ViewPort(o);const s=t.subVector(i,a),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}_zoomByAtViewPort(e,o){const i=this._camera.convertFromViewPort2WorldSpace(o),n=this._zoomBy(e,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+n);const a=this._camera.convertFromViewPort2WorldSpace(o),s=t.subVector(i,a),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}_zoomByAtWorld(e,o){let i=this._camera.convertFromWorld2ViewPort(o);const n=this._zoomBy(e,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+n);let a=this._camera.convertFromWorld2ViewPort(o);const s=v(t.subVector(i,a),this._camera.zoomLevel,this._camera.rotation),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}configure(t){this._config={...this._config,...t}}cleanup(){}setup(){}}function Qt(t){return new Jt({limitEntireViewPort:!0,restrictRelativeXTranslation:!1,restrictRelativeYTranslation:!1,restrictXTranslation:!1,restrictYTranslation:!1,restrictZoom:!1,clampTranslation:!0,clampZoom:!0},t)}class te{constructor(t,e=new Y){this._panBy=kt(),this._panTo=zt(),this._zoomTo=Et(),this._zoomBy=Vt(),this._rotateBy=Gt(),this._rotateTo=Yt(),this._config={...t,restrictRotation:!1,clampRotation:!0},this._camera=e}zoomToAt(e,o){let i=this._camera.convertFromViewPort2WorldSpace(o);const n=this._zoomTo(e,this._camera,this._config);this._camera.setZoomLevel(n);let a=this._camera.convertFromViewPort2WorldSpace(o);const s=t.subVector(i,a),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}zoomByAt(e,o){let i=this._camera.convertFromViewPort2WorldSpace(o);const n=this._zoomBy(e,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+n);let a=this._camera.convertFromViewPort2WorldSpace(o);const s=t.subVector(i,a),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}zoomTo(t){this._zoomTo(t,this._camera,this._config)}zoomBy(t){this._zoomBy(t,this._camera,this._config)}zoomToAtWorld(e,o){let i=this._camera.convertFromWorld2ViewPort(o);const n=this._zoomTo(e,this._camera,this._config);this._camera.setZoomLevel(n);let a=this._camera.convertFromWorld2ViewPort(o);const s=v(t.subVector(a,i),this._camera.zoomLevel,this._camera.rotation),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}zoomByAtWorld(e,o){let i=this._camera.convertFromWorld2ViewPort(o);const n=this._zoomBy(e,this._camera,this._config);this._camera.setZoomLevel(this._camera.zoomLevel+n);let a=this._camera.convertFromWorld2ViewPort(o);const s=v(t.subVector(a,i),this._camera.zoomLevel,this._camera.rotation),r=this._panBy(s,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,r))}panByViewPort(e){const o=t.multiplyVectorByScalar(t.rotatePoint(e,this._camera.rotation),1/this._camera.zoomLevel),i=this._panBy(o,this._camera,this._config);this._camera.setPosition(t.addVector(this._camera.position,i))}panByWorld(t){const e=this._camera.convertFromWorld2ViewPort(t);this.panByViewPort(e)}panToWorld(t){const e=this._panTo(t,this._camera,this._config);this._camera.setPosition(e)}panToViewPort(t){const e=this._camera.convertFromViewPort2WorldSpace(t);this.panToWorld(e)}rotateBy(t){const e=this._rotateBy(t,this._camera,this._config);this._camera.setRotation(this._camera.rotation+e)}rotateTo(t){const e=this._rotateTo(t,this._camera,this._config);this._camera.setRotation(e)}set limitEntireViewPort(t){this._config.limitEntireViewPort=t}get limitEntireViewPort(){return this._config.limitEntireViewPort}get camera(){return this._camera}get config(){return this._config}set config(t){this._config={...t}}configure(t){this._config={...this._config,...t}}cleanup(){}setup(){}update(){}}function ee(t){return new te({limitEntireViewPort:!0,restrictRelativeXTranslation:!1,restrictRelativeYTranslation:!1,restrictXTranslation:!1,restrictYTranslation:!1,restrictZoom:!1,clampTranslation:!0,clampZoom:!0},t)}class oe{constructor(t=ee(new Y)){this._cameraRig=t}notifyPanInput(t){this._cameraRig.panByViewPort(t)}notifyZoomInput(t,e){this._cameraRig.zoomByAt(t,e)}notifyRotationInput(t){this._cameraRig.rotateBy(t)}}function ie(t){const e=ee(t);return new oe(e)}function ne(t){return new oe(t)}class ae extends e{constructor(t,e,o){super(t,e,o)}notifyPanInput(t){this.happens("userPanByInput",{diff:t})}notifyPanToAnimationInput(t){this.happens("transitionPanToInput",{target:t})}initateTransition(){this.happens("initateTransition",{})}set limitEntireViewPort(t){this._context.limitEntireViewPort=t}get limitEntireViewPort(){return this._context.limitEntireViewPort}}class se extends o{constructor(){super(),this.eventReactions={userPanByInput:{action:this.userPanByInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},userPanToInput:{action:this.userPanToInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},lockedOnObjectPanByInput:{action:this.lockedOnObjectPanByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectPanToInput:{action:this.lockedOnObjectPanToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},initateTransition:{action:i,defaultTargetState:"TRANSITION"}}}userPanByInputHandler(t,e){t.panByViewPort(e.diff)}userPanToInputHandler(t,e){t.panToWorld(e.target)}lockedOnObjectPanByInputHandler(t,e){t.panByViewPort(e.diff)}lockedOnObjectPanToInputHandler(t,e){t.panToWorld(e.target)}}class re extends o{constructor(){super(),this.eventReactions={userPanByInput:{action:this.userPanByInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},userPanToInput:{action:this.userPanToInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},transitionPanByInput:{action:this.transitionPanByInputHandler,defaultTargetState:"TRANSITION"},transitionPanToInput:{action:this.transitionPanToInputHandler,defaultTargetState:"TRANSITION"},lockedOnObjectPanByInput:{action:this.lockedOnObjectPanByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectPanToInput:{action:this.lockedOnObjectPanToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"}}}userPanByInputHandler(t,e){return t.panByViewPort(e.diff),"ACCEPTING_USER_INPUT"}userPanToInputHandler(t,e){return t.panToWorld(e.target),"ACCEPTING_USER_INPUT"}transitionPanByInputHandler(t,e){return t.panByViewPort(e.diff),"TRANSITION"}transitionPanToInputHandler(t,e){return t.panToWorld(e.target),"TRANSITION"}lockedOnObjectPanByInputHandler(t,e){return t.panByViewPort(e.diff),"LOCKED_ON_OBJECT"}lockedOnObjectPanToInputHandler(t,e){return t.panToWorld(e.target),"LOCKED_ON_OBJECT"}}class he extends o{constructor(){super(),this.eventReactions={unlock:{action:i,defaultTargetState:"ACCEPTING_USER_INPUT"},lockedOnObjectPanByInput:{action:this.lockedOnObjectPanByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectPanToInput:{action:this.lockedOnObjectPanToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"}}}lockedOnObjectPanByInputHandler(t,e){t.panByViewPort(e.diff)}lockedOnObjectPanToInputHandler(t,e){t.panToWorld(e.target)}}function ce(){return{ACCEPTING_USER_INPUT:new se,TRANSITION:new re,LOCKED_ON_OBJECT:new he}}function le(t){return new ae(ce(),"ACCEPTING_USER_INPUT",t)}class ue extends o{constructor(){super(...arguments),this._eventReactions={userZoomByAtInput:{action:this.userZoomByAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"},userZoomToAtInput:{action:this.userZoomToAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"},initiateTransition:{action:i,defaultTargetState:"TRANSITION"}}}get eventReactions(){return this._eventReactions}userZoomByAtInput(t,e){t.zoomByAt(e.deltaZoom,e.anchorPoint)}userZoomToAtInput(t,e){t.zoomToAt(e.targetZoom,e.anchorPoint)}}class de extends o{constructor(){super(),this._eventReactions={lockedOnObjectZoomByAtInput:{action:this.lockedOnObjectZoomByAtInput,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectZoomToAtInput:{action:this.lockedOnObjectZoomToAtInput,defaultTargetState:"LOCKED_ON_OBJECT"},transitionZoomByAtInput:{action:this.transitionZoomByAtInput,defaultTargetState:"TRANSITION"},transitionZoomToAtInput:{action:this.transitionZoomToAtInput,defaultTargetState:"TRANSITION"},transitionZoomToAtCenterInput:{action:this.transitionZoomToAtCenterInput,defaultTargetState:"TRANSITION"},transitionZoomToAtWorldInput:{action:this.transitionZoomToAtWorldInput,defaultTargetState:"TRANSITION"},userZoomByAtInput:{action:this.userZoomByAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"},userZoomToAtInput:{action:this.userZoomToAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"}}}get eventReactions(){return this._eventReactions}lockedOnObjectZoomByAtInput(t,e){t.zoomBy(e.deltaZoom)}lockedOnObjectZoomToAtInput(t,e){t.zoomTo(e.targetZoom)}userZoomByAtInput(t,e){t.zoomByAt(e.deltaZoom,e.anchorPoint)}userZoomToAtInput(t,e){t.zoomToAt(e.targetZoom,e.anchorPoint)}transitionZoomByAtInput(t,e){t.zoomByAt(e.deltaZoom,e.anchorPoint)}transitionZoomByAtCenterInput(t,e){t.zoomBy(e.deltaZoom)}transitionZoomToAtInput(t,e){t.zoomToAt(e.targetZoom,e.anchorPoint)}transitionZoomToAtCenterInput(t,e){t.zoomTo(e.targetZoom)}transitionZoomToAtWorldInput(t,e){t.zoomToAtWorld(e.targetZoom,e.anchorPoint)}}class me extends o{constructor(){super(),this._eventReactions={lockedOnObjectZoomByAtInput:{action:this.lockedOnObjectZoomByAtInput,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectZoomToAtInput:{action:this.lockedOnObjectZoomToAtInput,defaultTargetState:"LOCKED_ON_OBJECT"},userZoomByAtInput:{action:this.userZoomByAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"},userZoomToAtInput:{action:this.userZoomToAtInput,defaultTargetState:"ACCEPTING_USER_INPUT"}}}get eventReactions(){return this._eventReactions}lockedOnObjectZoomByAtInput(t,e){t.zoomByAt(e.deltaZoom,e.anchorPoint)}lockedOnObjectZoomToAtInput(t,e){t.zoomToAt(e.targetZoom,e.anchorPoint)}userZoomByAtInput(t,e){t.zoomByAt(e.deltaZoom,e.anchorPoint)}userZoomToAtInput(t,e){t.zoomToAt(e.targetZoom,e.anchorPoint)}}class pe extends e{constructor(t,e,o){super(t,e,o)}notifyZoomByAtInput(t,e){this.happens("userZoomByAtInput",{deltaZoom:t,anchorPoint:e})}notifyZoomByAtInputAnimation(t,e){this.happens("transitionZoomByAtInput",{deltaZoom:t,anchorPoint:e})}notifyZoomToAtCenterInput(t,e){this.happens("transitionZoomToAtCenterInput",{targetZoom:t,anchorPoint:e})}notifyZoomToAtWorldInput(t,e){this.happens("transitionZoomToAtWorldInput",{targetZoom:t,anchorPoint:e})}initateTransition(){this.happens("initiateTransition",{})}}function _e(){return{ACCEPTING_USER_INPUT:new ue,TRANSITION:new de,LOCKED_ON_OBJECT:new me}}function ye(t){return new pe(_e(),"ACCEPTING_USER_INPUT",t)}class fe extends e{constructor(t,e,o){super(t,e,o)}notifyRotateByInput(t){this.happens("userRotateByInput",{diff:t})}notifyRotateToAnimationInput(t){this.happens("transitionRotateToInput",{target:t})}initateTransition(){this.happens("initateTransition",{})}}class ve extends o{constructor(){super(),this.eventReactions={userRotateByInput:{action:this.userRotateByInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},userRotateToInput:{action:this.userRotateToInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},lockedOnObjectRotateByInput:{action:this.lockedOnObjectRotateByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectRotateToInput:{action:this.lockedOnObjectRotateToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},initateTransition:{action:i,defaultTargetState:"TRANSITION"}}}userRotateByInputHandler(t,e){t.rotateBy(e.diff)}userRotateToInputHandler(t,e){t.rotateTo(e.target)}lockedOnObjectRotateByInputHandler(t,e){t.rotateBy(e.diff)}lockedOnObjectRotateToInputHandler(t,e){t.rotateTo(e.target)}}class Te extends o{constructor(){super(),this.eventReactions={userRotateByInput:{action:this.userRotateByInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},userRotateToInput:{action:this.userRotateToInputHandler,defaultTargetState:"ACCEPTING_USER_INPUT"},transitionRotateByInput:{action:this.transitionRotateByInputHandler,defaultTargetState:"TRANSITION"},transitionRotateToInput:{action:this.transitionRotateToInputHandler,defaultTargetState:"TRANSITION"},lockedOnObjectRotateByInput:{action:this.lockedOnObjectRotateByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectRotateToInput:{action:this.lockedOnObjectRotateToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"}}}userRotateByInputHandler(t,e){return t.rotateBy(e.diff),"ACCEPTING_USER_INPUT"}userRotateToInputHandler(t,e){return t.rotateTo(e.target),"ACCEPTING_USER_INPUT"}transitionRotateByInputHandler(t,e){return t.rotateBy(e.diff),"TRANSITION"}transitionRotateToInputHandler(t,e){return t.rotateTo(e.target),"TRANSITION"}lockedOnObjectRotateByInputHandler(t,e){return t.rotateBy(e.diff),"LOCKED_ON_OBJECT"}lockedOnObjectRotateToInputHandler(t,e){return t.rotateTo(e.target),"LOCKED_ON_OBJECT"}}class ge extends o{constructor(){super(),this.eventReactions={unlock:{action:i,defaultTargetState:"ACCEPTING_USER_INPUT"},lockedOnObjectRotateByInput:{action:this.lockedOnObjectRotateByInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"},lockedOnObjectRotateToInput:{action:this.lockedOnObjectRotateToInputHandler,defaultTargetState:"LOCKED_ON_OBJECT"}}}lockedOnObjectRotateByInputHandler(t,e){t.rotateBy(e.diff)}lockedOnObjectRotateToInputHandler(t,e){t.rotateTo(e.target)}}function Pe(){return{ACCEPTING_USER_INPUT:new ve,TRANSITION:new Te,LOCKED_ON_OBJECT:new ge}}function xe(t){return new fe(Pe(),"ACCEPTING_USER_INPUT",t)}class be{constructor(t,e,o){this._panStateMachine=t,this._zoomStateMachine=e,this._rotateStateMachine=o}notifyPanToAnimationInput(t){this._panStateMachine.notifyPanToAnimationInput(t)}notifyPanInput(t){this._panStateMachine.notifyPanInput(t)}notifyZoomInput(t,e){this._zoomStateMachine.notifyZoomByAtInput(t,e)}notifyRotateByInput(t){this._rotateStateMachine.notifyRotateByInput(t)}notifyRotateToAnimationInput(t){this._rotateStateMachine.notifyRotateToAnimationInput(t)}notifyZoomInputAnimation(t,e={x:0,y:0}){this._zoomStateMachine.notifyZoomToAtCenterInput(t,e)}notifyZoomInputAnimationWorld(t,e={x:0,y:0}){this._zoomStateMachine.notifyZoomToAtWorldInput(t,e)}notifyRotationInput(t){console.error("Rotation input is not implemented")}initatePanTransition(){this._panStateMachine.initateTransition()}initateZoomTransition(){this._zoomStateMachine.initateTransition()}initateRotateTransition(){this._rotateStateMachine.initateTransition()}get rotateStateMachine(){return this._rotateStateMachine}get panStateMachine(){return this._panStateMachine}get zoomStateMachine(){return this._zoomStateMachine}}function we(t){const e=ee(t),o=le(e),i=ye(e),n=xe(e);return new be(o,i,n)}function Be(t){const e=le(t),o=ye(t),i=xe(t);return new be(e,o,i)}class Ce{constructor(t){this.pan=new n,this.zoom=new n,this.rotate=new n,this.all=new n,this._cameraMux=t}notifyPan(t){this._cameraMux.notifyPanInput(t),this.pan.notify({diff:t}),this.all.notify({type:"pan",diff:t})}notifyZoom(t,e){this._cameraMux.notifyZoomInput(t,e),this.zoom.notify({deltaZoomAmount:t,anchorPoint:e}),this.all.notify({type:"zoom",deltaZoomAmount:t,anchorPoint:e})}notifyRotate(t){this._cameraMux.notifyRotationInput(t),this.rotate.notify({deltaRotation:t}),this.all.notify({type:"rotate",deltaRotation:t})}on(t,e){switch(t){case"pan":return this.pan.subscribe(e);case"zoom":return this.zoom.subscribe(e);case"rotate":return this.rotate.subscribe(e);case"all":return this.all.subscribe(e);default:throw new Error("Invalid raw user input event name")}}get cameraMux(){return this._cameraMux}set cameraMux(t){this._cameraMux=t}}function Ie(t){return new Ce(ie(t))}class Re{constructor(t){this.pan=new n,this.zoom=new n,this.rotate=new n,this.all=new n,this.webWorker=t}notifyPan(t){this.webWorker.postMessage({type:"notifyUserInput",payload:{type:"pan",diff:t}}),this.pan.notify({diff:t}),this.all.notify({type:"pan",diff:t})}notifyZoom(t,e){this.webWorker.postMessage({type:"notifyUserInput",payload:{type:"zoom",deltaZoomAmount:t,anchorPoint:e}}),this.zoom.notify({deltaZoomAmount:t,anchorPoint:e}),this.all.notify({type:"zoom",deltaZoomAmount:t,anchorPoint:e})}notifyRotate(t){this.webWorker.postMessage({type:"notifyUserInput",payload:{type:"rotate",deltaRotation:t}}),this.rotate.notify({deltaRotation:t}),this.all.notify({type:"rotate",deltaRotation:t})}on(t,e){switch(t){case"pan":return this.pan.subscribe(e);case"zoom":return this.zoom.subscribe(e);case"rotate":return this.rotate.subscribe(e);case"all":return this.all.subscribe(e);default:throw new Error("Invalid raw user input event name")}}}var Se;!function(t){t.GRAB="grab",t.DEFAULT="default",t.GRABBING="grabbing"}(Se||(Se={}));class Me{constructor(){this.width=0,this.height=0,this.position={x:0,y:0},this.setCursor=i}}class Oe{constructor(t){this._width=0,this._height=0,this._position={x:0,y:0},this._postMessageFunction=t}set width(t){this._width=t}set height(t){this._height=t}set position(t){this._position=t}get width(){return this._width}get height(){return this._height}get position(){return this._position}setCursor(t){this._postMessageFunction({type:"setCursor",style:t})}}class Ae{constructor(t,e=new tt(t)){const o=et(t.getBoundingClientRect(),window.getComputedStyle(t));this._width=o.width,this._height=o.height,this._position={x:o.left,y:o.top},this._canvas=t,this._canvasPositionDimensionPublisher=e,this._canvasPositionDimensionPublisher.onPositionUpdate((t=>{this._width=t.width,this._height=t.height,this._position={x:t.left,y:t.top}}))}get width(){return this._width}get height(){return this._height}get position(){return this._position}setCursor(t){this._canvas.style.cursor=t}attach(t){this._canvasPositionDimensionPublisher.attach(t),this._canvas=t;const e=et(t.getBoundingClientRect(),window.getComputedStyle(t));this._width=e.width,this._height=e.height,this._position={x:e.left,y:e.top}}}class Ee{constructor(t,e,o){const i=t.getBoundingClientRect();this._canvas=t,this._webWorker=e;const n=et(i,window.getComputedStyle(t));this._width=n.width,this._height=n.height,this._position={x:n.left,y:n.top},this._webWorker.postMessage({type:"setCanvasDimensions",width:i.width,height:i.height,position:{x:i.left,y:i.top}}),o.onPositionUpdate((t=>{this._width=t.width,this._height=t.height,this._position={x:t.left,y:t.top},this._webWorker.postMessage({type:"updateCanvasDimensions",width:t.width,height:t.height,position:{x:t.left,y:t.top}})}))}get width(){return this._width}get height(){return this._height}get position(){return this._position}setCursor(t){this._canvas.style.cursor=t}}class Ve{constructor(){this.alignCoordinateSystem=!1,this.canvas=new Me,this.initialCursorPosition={x:0,y:0}}notifyOnPan(t){}notifyOnZoom(t,e){}notifyOnRotate(t){}setInitialCursorPosition(t){}cleanup(){}setup(){}}class ze{constructor(t,e){this._alignCoordinateSystem=!0,this._canvasOperator=t,this._inputPublisher=e,this._initialCursorPosition={x:0,y:0}}get alignCoordinateSystem(){return this._alignCoordinateSystem}get canvas(){return this._canvasOperator}get initialCursorPosition(){return this._initialCursorPosition}set alignCoordinateSystem(t){this._alignCoordinateSystem=t}notifyOnPan(t){this._inputPublisher.notifyPan(t)}notifyOnZoom(t,e){this._inputPublisher.notifyZoom(t,e)}notifyOnRotate(t){this._inputPublisher.notifyRotate(t)}setInitialCursorPosition(t){this._initialCursorPosition=t}cleanup(){}setup(){}}class ke{constructor(t,e){this._touchPointsMap=new Map,this._canvas=t,this._inputPublisher=e,this._alignCoordinateSystem=!0}addTouchPoints(t){t.forEach((t=>{this._touchPointsMap.set(t.ident,{...t})}))}removeTouchPoints(t){t.forEach((t=>{this._touchPointsMap.has(t)&&this._touchPointsMap.delete(t)}))}getCurrentTouchPointsCount(){return this._touchPointsMap.size}getInitialTouchPointsPositions(t){const e=[];return t.forEach((t=>{if(this._touchPointsMap.has(t)){const o=this._touchPointsMap.get(t);o&&e.push(o)}})),e}updateTouchPoints(t){t.forEach((t=>{this._touchPointsMap.has(t.ident)&&this._touchPointsMap.set(t.ident,{...t})}))}notifyOnPan(t){this._inputPublisher.notifyPan(t)}notifyOnZoom(t,e){this._inputPublisher.notifyZoom(t,e)}get alignCoordinateSystem(){return this._alignCoordinateSystem}set alignCoordinateSystem(t){this._alignCoordinateSystem=t}get canvas(){return this._canvas}cleanup(){}setup(){}}class Ue extends o{constructor(){super(...arguments),this._eventReactions={touchstart:{action:this.touchstart,defaultTargetState:"IDLE"},touchend:{action:this.touchend,defaultTargetState:"IDLE"}},this._guards={touchPointsCount:(t=>2===t.getCurrentTouchPointsCount()).bind(this)},this._eventGuards={touchstart:[{guard:"touchPointsCount",target:"PENDING"}],touchend:[{guard:"touchPointsCount",target:"PENDING"}]}}get eventReactions(){return this._eventReactions}touchstart(t,e){t.addTouchPoints(e.points)}touchend(t,e){t.removeTouchPoints(e.points.map((t=>t.ident)))}}class He extends o{constructor(){super(...arguments),this._eventReactions={touchstart:{action:this.touchstart,defaultTargetState:"IDLE"},touchend:{action:this.touchend,defaultTargetState:"IDLE"},touchmove:{action:this.touchmove,defaultTargetState:"IN_PROGRESS"}}}get eventReactions(){return this._eventReactions}touchstart(t,e){t.addTouchPoints(e.points)}touchend(t,e){t.removeTouchPoints(e.points.map((t=>t.ident)))}touchmove(e,o){const i=o.points.map((t=>t.ident)),n=e.getInitialTouchPointsPositions(i),a=o.points,s=t.distanceBetweenPoints(n[0],n[1]),r=t.distanceBetweenPoints(a[0],a[1]),h=t.linearInterpolation(n[0],n[1],.5),c=t.linearInterpolation(a[0],a[1],.5),l=t.subVector(h,c),u={x:e.canvas.position.x+e.canvas.width/2,y:e.canvas.position.y+e.canvas.height/2},d=t.subVector(h,u);let m=Math.abs(r-s)>t.distanceBetweenPoints(h,c)?"ZOOMING":"PANNING";switch(e.updateTouchPoints(a),m){case"ZOOMING":e.notifyOnZoom(.005*(r-s),d);break;case"PANNING":e.notifyOnPan(l);break;default:console.warn("Unknown panZoom state",m)}}}class Ze extends o{constructor(){super(...arguments),this._eventReactions={touchmove:{action:this.touchmove,defaultTargetState:"IN_PROGRESS"},touchend:{action:this.touchend,defaultTargetState:"IDLE"},touchstart:{action:()=>"IDLE",defaultTargetState:"IDLE"}}}get eventReactions(){return this._eventReactions}touchmove(e,o){const i=o.points.map((t=>t.ident)),n=e.getInitialTouchPointsPositions(i),a=o.points,s=t.distanceBetweenPoints(n[0],n[1]),r=t.distanceBetweenPoints(a[0],a[1]),h=t.linearInterpolation(n[0],n[1],.5),c=t.linearInterpolation(a[0],a[1],.5),l=t.subVector(h,c),u={x:e.canvas.position.x+e.canvas.width/2,y:e.canvas.position.y+e.canvas.height/2},d=t.subVector(h,u);let m=Math.abs(r-s)>t.distanceBetweenPoints(h,c)?"ZOOMING":"PANNING";switch(e.updateTouchPoints(a),m){case"ZOOMING":e.alignCoordinateSystem||(d.y=-d.y),e.notifyOnZoom(.005*-(s-r),d);break;case"PANNING":e.alignCoordinateSystem||(l.y=-l.y),e.notifyOnPan(l);break;default:console.warn("Unknown panZoom state",m)}}touchend(t,e){t.removeTouchPoints(e.points.map((t=>t.ident)))}}function Le(t){return new e({IDLE:new Ue,PENDING:new He,IN_PROGRESS:new Ze},"IDLE",t)}function Ne(e,o){const i=o.getBoundingClientRect(),n={x:i.left+(i.right-i.left)/2,y:i.top+(i.bottom-i.top)/2};return t.subVector(e,n)}function We(e,o){const i={x:o.position.x+o.width/2,y:o.position.y+o.height/2};return t.subVector(e,i)}function De(e,o){const i={x:o.position.x+o.width/2,y:o.position.y+o.height/2};return t.subVector(e,i)}class Fe extends o{constructor(){super(),this._guards={isIdle:()=>!0},this._eventGuards={},this._eventReactions={spacebarDown:{action:this.spacebarDownHandler,defaultTargetState:"READY_TO_PAN_VIA_SPACEBAR"},scroll:{action:this.scrollHandler,defaultTargetState:"IDLE"},scrollWithCtrl:{action:this.scrollWithCtrlHandler,defaultTargetState:"IDLE"},middlePointerDown:{action:this.middlePointerDownHandler,defaultTargetState:"READY_TO_PAN_VIA_SCROLL_WHEEL"}}}get eventReactions(){return this._eventReactions}scrollHandler(t,e){const o={...e};t.alignCoordinateSystem||(o.deltaY=-o.deltaY),t.notifyOnPan({x:o.deltaX,y:o.deltaY})}scrollWithCtrlHandler(t,e){let o=.005;Math.abs(e.deltaY)>100&&(o=5e-4);const i=e.deltaY*o,n=De({x:e.x,y:e.y},t.canvas);t.alignCoordinateSystem||(n.y=-n.y),t.notifyOnZoom(-5*i,n)}spacebarDownHandler(t,e){t.canvas.setCursor(Se.GRAB)}middlePointerDownHandler(t,e){t.setInitialCursorPosition({x:e.x,y:e.y}),t.canvas.setCursor(Se.GRABBING)}}class qe extends o{constructor(){super(),this.leftPointerMove=((t,e)=>{const o=Ne({x:e.x,y:e.y},t.canvas);t.setSelectionEndPoint(o),t.toggleSelectionBox(!0)}).bind(this),this._eventReactions={leftPointerUp:{action:()=>"IDLE",defaultTargetState:"IDLE"},leftPointerMove:{action:this.leftPointerMove,defaultTargetState:"SELECTING"}}}get eventReactions(){return this._eventReactions}}class je extends o{constructor(){super(),this._eventReactions={spacebarUp:{action:this.spacebarUpHandler,defaultTargetState:"IDLE"},leftPointerDown:{action:this.leftPointerDownHandler,defaultTargetState:"INITIAL_PAN"}}}get eventReactions(){return this._eventReactions}leftPointerDownHandler(t,e){t.setInitialCursorPosition({x:e.x,y:e.y}),t.canvas.setCursor(Se.GRABBING)}spacebarUpHandler(t,e){t.canvas.setCursor(Se.DEFAULT)}}class Ge extends o{constructor(){super(),this._eventReactions={leftPointerUp:{action:this.leftPointerUpHandler,defaultTargetState:"READY_TO_PAN_VIA_SPACEBAR"},leftPointerMove:{action:this.leftPointerMoveHandler,defaultTargetState:"PAN"},spacebarUp:{action:()=>"IDLE",defaultTargetState:"IDLE"},leftPointerDown:{action:()=>"PAN",defaultTargetState:"PAN"}}}get eventReactions(){return this._eventReactions}leftPointerMoveHandler(t,e){const o={x:t.initialCursorPosition.x-e.x,y:t.initialCursorPosition.y-e.y};t.alignCoordinateSystem||(o.y=-o.y),t.notifyOnPan(o),t.setInitialCursorPosition({x:e.x,y:e.y})}leftPointerUpHandler(t,e){t.canvas.setCursor(Se.GRAB)}}class Ye extends o{constructor(){super(),this._eventReactions={middlePointerUp:{action:this.middlePointerUpHandler,defaultTargetState:"IDLE"},middlePointerMove:{action:this.middlePointerMoveHandler,defaultTargetState:"PAN_VIA_SCROLL_WHEEL"}}}get eventReactions(){return this._eventReactions}middlePointerMoveHandler(t,e){t.canvas.setCursor(Se.GRABBING)}middlePointerUpHandler(t,e){t.canvas.setCursor(Se.DEFAULT)}}class Xe extends o{constructor(){super(),this._eventReactions={leftPointerUp:{action:this.leftPointerUpHandler,defaultTargetState:"READY_TO_PAN_VIA_SPACEBAR"},leftPointerMove:{action:this.leftPointerMoveHandler,defaultTargetState:"PAN"},spacebarUp:{action:this.spacebarUpHandler,defaultTargetState:"IDLE"}}}get eventReactions(){return this._eventReactions}leftPointerMoveHandler(t,e){const o={x:t.initialCursorPosition.x-e.x,y:t.initialCursorPosition.y-e.y};t.alignCoordinateSystem||(o.y=-o.y),t.notifyOnPan(o),t.setInitialCursorPosition({x:e.x,y:e.y})}spacebarUpHandler(t,e){t.canvas.setCursor(Se.DEFAULT)}leftPointerUpHandler(t,e){t.canvas.setCursor(Se.GRAB)}}class Ke extends o{constructor(){super(...arguments),this._eventReactions={middlePointerUp:{action:this.middlePointerUpHandler,defaultTargetState:"IDLE"},middlePointerMove:{action:this.middlePointerMoveHandler,defaultTargetState:"PAN_VIA_SCROLL_WHEEL"}}}get eventReactions(){return this._eventReactions}middlePointerMoveHandler(t,e){const o={x:t.initialCursorPosition.x-e.x,y:t.initialCursorPosition.y-e.y};t.alignCoordinateSystem||(o.y=-o.y),t.notifyOnPan(o),t.setInitialCursorPosition({x:e.x,y:e.y})}middlePointerUpHandler(t,e){t.canvas.setCursor(Se.DEFAULT)}}class $e extends o{constructor(){super()}get eventReactions(){return{}}}function Je(t){const o={IDLE:new Fe,READY_TO_PAN_VIA_SPACEBAR:new je,INITIAL_PAN:new Ge,PAN:new Xe,READY_TO_PAN_VIA_SCROLL_WHEEL:new Ye,PAN_VIA_SCROLL_WHEEL:new Ke};return new e(o,"IDLE",t)}class Qe extends e{constructor(t){super({IDLE:new $e,READY_TO_PAN_VIA_SPACEBAR:new $e,INITIAL_PAN:new $e,PAN:new $e,READY_TO_PAN_VIA_SCROLL_WHEEL:new $e,PAN_VIA_SCROLL_WHEEL:new $e},"IDLE",new Ve),this._webworker=t}happens(t,e){return this._webworker.postMessage({type:"kmtInputStateMachine",event:t,payload:e}),"IDLE"}}class to{constructor(t,e=t){this._alignCoordinateSystem=!0,this._fullScreen=!1,this.lastUpdateTime=0,this._canvas=t;const o=new Y;o.viewPortHeight=t.height,o.viewPortWidth=t.width,o.boundaries={min:{x:-5e3,y:-5e3},max:{x:5e3,y:5e3}};const i=t.getContext("2d");if(null==i)throw new Error("Canvas 2d context is null");this._context=i,this._reversedContext=nt(i),this.bindFunctions(),this.attributeObserver=new MutationObserver(this.attributeCallBack),this.attributeObserver.observe(this._canvas,{attributes:!0}),this._canvasProxy=new Ae(t),this.cameraRig=new te({limitEntireViewPort:!0,restrictRelativeXTranslation:!1,restrictRelativeYTranslation:!1,restrictXTranslation:!1,restrictYTranslation:!1,restrictZoom:!1,clampTranslation:!0,clampZoom:!0},o),this.boardInputPublisher=new Ce(Be(this.cameraRig)),this._observableInputTracker=new ze(this._canvasProxy,this.boardInputPublisher),this._touchInputTracker=new ke(this._canvasProxy,this.boardInputPublisher);const n=Je(this._observableInputTracker),a=Le(this._touchInputTracker);this._kmtParser=new X(t,n),this._touchParser=new K(t,a),this.calibrateCanvasDimensions(),this.setup()}calibrateCanvasDimensions(){this._canvas.style.width=this._canvas.width+"px",this._canvas.style.height=this._canvas.height+"px",this._canvas.width=window.devicePixelRatio*this._canvas.width,this._canvas.height=window.devicePixelRatio*this._canvas.height}registerEventListeners(){this._kmtParser.setUp(),this._touchParser.setUp()}removeEventListeners(){this._touchParser.tearDown(),this._kmtParser.tearDown()}attach(t){this._canvas!=t&&(this._canvas=t,this.calibrateCanvasDimensions(),this._kmtParser.attach(t),this._touchParser.attach(t),this._canvasProxy.attach(t),this.attributeObserver.disconnect(),this.attributeObserver.observe(t,{attributes:!0}),this._context=t.getContext("2d"),this._reversedContext=nt(this._context))}setup(){this.registerEventListeners(),this.attributeObserver.observe(this._canvas,{attributes:!0})}tearDown(){this.removeEventListeners(),this.attributeObserver.disconnect()}bindFunctions(){this.step=this.step.bind(this),this.attributeCallBack=this.attributeCallBack.bind(this)}set width(t){if(this._canvas.width=t*window.devicePixelRatio,this._canvas.style.width=t+"px",this.camera.viewPortWidth=t,this.limitEntireViewPort){const t=It(this.camera.boundaries,this._canvas.width/window.devicePixelRatio,this._canvas.height/window.devicePixelRatio,this.camera.rotation);null!=t&&Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}get width(){return this._canvas.width/window.devicePixelRatio}set height(t){if(this._canvas.height=t*window.devicePixelRatio,this._canvas.style.height=t+"px",this.camera.viewPortHeight=t,this.limitEntireViewPort){const t=Rt(this.camera.boundaries,this._canvas.width/window.devicePixelRatio,this._canvas.height/window.devicePixelRatio,this.camera.rotation);null!=t&&Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}get height(){return this._canvas.height/window.devicePixelRatio}set alignCoordinateSystem(t){this._alignCoordinateSystem=t,this._observableInputTracker.alignCoordinateSystem=t,this._touchInputTracker.alignCoordinateSystem=t}get alignCoordinateSystem(){return this._alignCoordinateSystem}get fullScreen(){return this._fullScreen}set fullScreen(t){this._fullScreen=t,this._fullScreen&&(this.width=window.innerWidth,this.height=window.innerHeight)}get context(){return this._alignCoordinateSystem?this._context:this._reversedContext}set limitEntireViewPort(t){if(this.cameraRig.limitEntireViewPort=t,t){const t=Bt(this.camera.boundaries,this._canvas.width,this._canvas.height,this.camera.rotation);null!=t&&Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}get limitEntireViewPort(){return this.cameraRig.limitEntireViewPort}set kmtParser(t){this._kmtParser.tearDown(),t.setUp(),this._kmtParser=t}get kmtParser(){return this._kmtParser}set touchParser(t){this._touchParser.tearDown(),t.setUp(),this._touchParser=t}get touchParser(){return this._touchParser}get camera(){return this.cameraRig.camera}set camera(t){t.viewPortHeight=this._canvas.height/window.devicePixelRatio,t.viewPortWidth=this._canvas.width/window.devicePixelRatio,this.camera=t}get cameraMux(){return this.boardInputPublisher.cameraMux}set cameraMux(t){this.boardInputPublisher.cameraMux=t}step(t){!this._fullScreen||this.width==window.innerWidth&&this.height==window.innerHeight||(this.width=window.innerWidth,this.height=window.innerHeight),this.cameraRig.update(),this.lastUpdateTime,this.lastUpdateTime=t,this._context.reset(),this._context.clearRect(0,0,this._canvas.width,this._canvas.height);const e=this.camera.getTransform(window.devicePixelRatio,this._alignCoordinateSystem);this._context.setTransform(e.a,e.b,e.c,e.d,e.e,e.f)}convertWindowPoint2WorldCoord(e){const o=this._canvas.getBoundingClientRect(),i={x:o.left+(o.right-o.left)/2,y:o.top+(o.bottom-o.top)/2},n=t.subVector(e,i);return this._alignCoordinateSystem||(n.y=-n.y),this.camera.convertFromViewPort2WorldSpace(n)}on(t,e){return this.camera.on(t,e)}onInput(t,e){return this.boardInputPublisher.on(t,e)}get maxHalfTransHeight(){return M(this.camera.boundaries)}get maxHalfTransWidth(){return R(this.camera.boundaries)}attributeCallBack(t,e){for(let e of t)if("attributes"===e.type)if("width"===e.attributeName){if(this._canvas.style.width=this._canvas.width/window.devicePixelRatio+"px",this.camera.viewPortWidth=this._canvas.width/window.devicePixelRatio,this.limitEntireViewPort){const t=It(this.camera.boundaries,this.camera.viewPortWidth,this.camera.viewPortHeight,this.camera.rotation);Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}else if("height"===e.attributeName){if(this._canvas.style.height=this._canvas.height/window.devicePixelRatio+"px",this.camera.viewPortHeight=this._canvas.height/window.devicePixelRatio,this.limitEntireViewPort){const t=Rt(this.camera.boundaries,this.camera.viewPortWidth,this.camera.viewPortHeight,this.camera.rotation);Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}else if("style"===e.attributeName){const t=parseFloat(this._canvas.style.width),e=parseFloat(this._canvas.style.height),o=t*window.devicePixelRatio;o!=this._canvas.width&&(this._canvas.width=o,this.camera.viewPortWidth=t);const i=e*window.devicePixelRatio;if(i!=this._canvas.height&&(this._canvas.height=i,this.camera.viewPortHeight=e),this.limitEntireViewPort){const t=Bt(this.camera.boundaries,this.camera.viewPortWidth,this.camera.viewPortHeight,this.camera.rotation);Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}}setMaxTransWidthWithFixedMinBoundary(t){const e=this.camera.boundaries,o=null==e?void 0:e.min,i=null==o?void 0:o.x;if(null==i?this.camera.setHorizontalBoundaries(-t,t):this.camera.setHorizontalBoundaries(i,i+2*t),this.limitEntireViewPort){const t=It(this.camera.boundaries,this.camera.viewPortWidth,this.camera.viewPortHeight,this.camera.rotation);Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}setMaxTransWidthWithFixedMaxBoundary(t){const e=this.camera.boundaries,o=null==e?void 0:e.max,i=null==o?void 0:o.x;if(null==i?this.camera.setHorizontalBoundaries(-t,t):this.camera.setHorizontalBoundaries(i-2*t,i),this.limitEntireViewPort){const t=It(this.camera.boundaries,this.camera.viewPortWidth,this.camera.viewPortHeight,this.camera.rotation);Ct(this.camera.zoomBoundaries,t)&&this.camera.setMinZoomLevel(t)}}get restrictRelativeXTranslation(){return this.cameraRig.config.restrictRelativeXTranslation}get restrictRelativeYTranslation(){return this.cameraRig.config.restrictRelativeYTranslation}get restrictXTranslation(){return this.cameraRig.config.restrictXTranslation}get restrictYTranslation(){return this.cameraRig.config.restrictYTranslation}set restrictRelativeXTranslation(t){this.cameraRig.config.restrictRelativeXTranslation=t}set restrictRelativeYTranslation(t){this.cameraRig.configure({restrictRelativeYTranslation:t})}set restrictXTranslation(t){this.cameraRig.configure({restrictXTranslation:t})}set restrictYTranslation(t){this.cameraRig.configure({restrictYTranslation:t})}get restrictZoom(){return this.cameraRig.config.restrictZoom}set restrictZoom(t){this.cameraRig.configure({restrictZoom:t})}get restrictRotation(){return this.cameraRig.config.restrictRotation}set restrictRotation(t){this.cameraRig.configure({restrictRotation:t})}get clampTranslation(){return this.cameraRig.config.clampTranslation}set clampTranslation(t){this.cameraRig.configure({clampTranslation:t})}get clampZoom(){return this.cameraRig.config.clampZoom}set clampZoom(t){this.cameraRig.configure({clampZoom:t})}get clampRotation(){return this.cameraRig.config.clampRotation}set clampRotation(t){this.cameraRig.configure({clampRotation:t})}getCameraRig(){return this.cameraRig}}export{se as AcceptingUserInputState,to as Board,be as CameraMuxWithAnimationAndLock,Xt as CameraPositionUpdateBatcher,Jt as CameraRigWithUpdateBatcher,Kt as CameraRotationUpdateBatcher,a as CameraUpdatePublisher,$t as CameraZoomUpdateBatcher,Oe as CanvasCacheInWebWorker,tt as CanvasPositionDimensionPublisher,Ae as CanvasProxy,Ee as CanvasProxyWorkerRelay,Se as CursorStyle,j as DEFAULT_BOARD_CAMERA_BOUNDARIES,G as DEFAULT_BOARD_CAMERA_ROTATION_BOUNDARIES,F as DEFAULT_BOARD_CAMERA_VIEWPORT_HEIGHT,D as DEFAULT_BOARD_CAMERA_VIEWPORT_WIDTH,q as DEFAULT_BOARD_CAMERA_ZOOM_BOUNDARIES,Y as DefaultBoardCamera,te as DefaultCameraRig,Me as DummyCanvasOperator,Ve as DummyKmtInputContext,yt as HALF_TICK_LENGTH,Ue as IdleState,Ze as InProgressState,Ge as InitialPanState,$e as KmtEmptyState,Fe as KmtIdleState,Qe as KmtInputStateMachineWebWorkerProxy,he as LockedOnObjectState,pt as MAJOR_TICK_LENGTH,_t as MINOR_TICK_LENGTH,n as Observable,ze as ObservableInputTracker,ae as PanControlStateMachine,Xe as PanState,Ke as PanViaScrollWheelState,He as PendingState,Ce as RawUserInputPublisher,Re as RawUserInputPublisherWithWebWorkerRelay,Ye as ReadyToPanViaScrollWheelState,je as ReadyToPanViaSpaceBarState,qe as ReadyToSelectState,oe as Relay,fe as RotateControlStateMachine,ve as RotationAcceptingUserInputState,ge as RotationLockedOnObjectState,Te as RotationTransitionState,gt as TEXT_HALF_TICK_FONT_SIZE,vt as TEXT_HALF_TICK_OFFSET,Tt as TEXT_MAJOR_TICK_FONT_SIZE,ft as TEXT_MAJOR_TICK_OFFSET,ke as TouchInputTracker,re as TransitionState,X as VanillaKMTEventParser,K as VanillaTouchEventParser,ue as ZoomAcceptingUserInputState,pe as ZoomControlStateMachine,me as ZoomLockedOnObjectState,de as ZoomTransitionState,Z as angleSpan,B as boundariesFullyDefined,J as calculateOrderOfMagnitude,wt as calculateTickValues,g as cameraPositionToGet,Lt as clampByHandler,C as clampPoint,O as clampPointEntireViewPort,Dt as clampRotateByHandler,qt as clampRotateToHandler,z as clampRotation,Zt as clampToHandler,Mt as clampZoomByHandler,E as clampZoomLevel,St as clampZoomToHandler,_ as convert2ViewPortSpaceAnchorAtCenter,m as convert2WorldSpace,p as convert2WorldSpaceAnchorAtCenter,d as convert2WorldSpaceWRT,x as convert2WorldSpaceWithTransformationMatrix,v as convertDeltaInViewPortToWorldSpace,T as convertDeltaInWorldToViewPortSpace,Nt as convertDeltaToComplyWithRestriction,Ne as convertFromWindow2ViewPort,De as convertFromWindow2ViewPortCanvasOperator,We as convertFromWindow2ViewPortWithCanvasOperator,Wt as convertUserInputDeltaToCameraDelta,r as createCameraMatrix,we as createCameraMuxWithAnimationAndLock,Be as createCameraMuxWithAnimationAndLockWithCameraRig,ie as createDefaultCameraMux,ne as createDefaultCameraMuxWithCameraRig,ee as createDefaultCameraRig,Qt as createDefaultCameraRigWithUpdateBatcher,kt as createDefaultPanByHandler,le as createDefaultPanControlStateMachine,ce as createDefaultPanControlStates,zt as createDefaultPanToHandler,Ie as createDefaultRawUserInputPublisher,Gt as createDefaultRotateByHandler,xe as createDefaultRotateControlStateMachine,Pe as createDefaultRotateControlStates,Yt as createDefaultRotateToHandler,Vt as createDefaultZoomByOnlyHandler,ye as createDefaultZoomControlStateMachine,_e as createDefaultZoomControlStates,Et as createDefaultZoomToOnlyHandler,Q as createHandlerChain,Je as createKmtInputStateMachine,l as createTRSMatrix,Le as createTouchInputStateMachine,s as decomposeCameraMatrix,c as decomposeTRS,u as decomposeTRSSVD,L as deg2rad,mt as drawArrow,ht as drawAxis,rt as drawBoundingBox,st as drawCrossHair,ct as drawGrid,ut as drawPositionText,dt as drawReferenceCircle,Pt as drawRuler,lt as drawRulerLegacy,et as getTrueRect,M as halfTranslationHeightOf,R as halfTranslationWidthOf,y as invertFromWorldSpace,at as invertYAxisForDrawImageWith9Args,w as isValidBoundaries,A as isValidZoomLevelLimits,Bt as minZoomLevelBaseOnDimensions,Rt as minZoomLevelBaseOnHeight,It as minZoomLevelBaseOnWidth,h as multiplyMatrix,H as normalizeAngleZero2TwoPI,$ as pointConversion,f as pointIsInViewPort,N as rad2deg,Ht as restrictPanByHandler,Ut as restrictPanToHandler,Ft as restrictRotateByHandler,jt as restrictRotateToHandler,At as restrictZoomByHandler,Ot as restrictZoomToHandler,nt as reverseYAxis,U as rotationWithinBoundary,k as rotationWithinLimits,P as transformationMatrixFromCamera,S as translationHeightOf,I as translationWidthOf,b as withinBoundaries,Ct as zoomLevelBoundariesShouldUpdate,V as zoomLevelWithinLimits};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/observable.ts","../src/camera/update-publisher.ts","../src/camera/utils/matrix.ts","../src/camera/utils/coordinate-conversion.ts","../src/camera/utils/position.ts","../src/camera/utils/zoom.ts","../src/camera/utils/rotation.ts","../src/camera/base.ts","../src/camera/default-camera.ts","../src/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.ts","../src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts","../src/utils/coorindate-conversion.ts","../src/utils/ruler.ts","../src/utils/handler-pipeline.ts","../src/utils/canvas-position-dimension.ts","../src/utils/drawing-utils.ts","../src/utils/drawing.ts","../src/utils/zoomlevel-adjustment.ts","../src/camera/camera-rig/zoom-handler.ts","../src/camera/camera-rig/pan-handler.ts","../src/camera/camera-rig/rotation-handler.ts","../src/camera/camera-rig/update-batcher/position-update-batcher.ts","../src/camera/camera-rig/update-batcher/rotation-update-batcher.ts","../src/camera/camera-rig/update-batcher/zoom-udpate-batcher.ts","../src/camera/camera-rig/camera-rig.ts","../src/camera/camera-mux/relay.ts","../src/camera/camera-mux/animation-and-lock/pan-control-state-machine.ts","../src/camera/camera-mux/animation-and-lock/zoom-control-state-machine.ts","../src/camera/camera-mux/animation-and-lock/rotation-control-state-machine.ts","../src/camera/camera-mux/animation-and-lock/animation-and-lock.ts","../src/input-interpretation/raw-input-publisher/raw-input-publisher.ts","../src/input-interpretation/input-state-machine/kmt-input-context.ts","../src/input-interpretation/input-state-machine/touch-input-context.ts","../src/input-interpretation/input-state-machine/touch-input-state-machine.ts","../src/input-interpretation/input-state-machine/kmt-input-state-machine.ts","../src/boardify/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Observable","constructor","this","observers","subscribe","observer","options","push","signal","aborted","filter","o","abortHandler","removeEventListener","addEventListener","notify","data","forEach","queueMicrotask","CameraUpdatePublisher","pan","zoom","rotate","all","notifyPan","event","cameraState","type","diff","notifyZoom","deltaZoomAmount","notifyRotate","deltaRotation","on","eventName","callback","Error","decomposeCameraMatrix","transformMatrix","devicePixelRatio","canvasWidth","canvasHeight","a","b","c","d","tx","e","ty","f","rotation","Math","atan2","sqrt","reverse","cos_r","cos","sin_r","sin","position","x","y","createCameraMatrix","cameraPos","multipliedMatrix","multiplyMatrix","rotatedMatrix","zoomedMatrix","m1","m2","a1","b1","c1","d1","tx1","ty1","a2","b2","c2","d2","tx2","ty2","decomposeTRS","matrix","translation","det","abs","scaleX","scaleY","finalRotation","finalScaleX","finalScaleY","PI","scale","createTRSMatrix","decomposeTRSSVD","m11","m12","m21","m22","mtm11","mtm12","mtm21","mtm22","trace","discriminant","sqrtDisc","lambda1","lambda2","s1","max","v11","v12","v21","v22","vNorm1","vNorm2","v11n","v21n","u11","u21","convert2WorldSpaceWRT","targetPosition","interestPoint","viewPortWidth","viewPortHeight","cameraZoomLevel","cameraRotation","cameraFrameCenter","delta2Point","PointCal","subVector","multiplyVectorByScalar","rotatePoint","addVector","convert2WorldSpace","point","cameraPosition","convert2WorldSpaceAnchorAtCenter","scaledBack","rotatedBack","convert2ViewPortSpaceAnchorAtCenter","withOffset","scaled","invertFromWorldSpace","pointIsInViewPort","pointInCameraFrame","convertDeltaInViewPortToWorldSpace","delta","convertDeltaInWorldToViewPortSpace","cameraPositionToGet","pointInWorld","toPointInViewPort","rotated","transformationMatrixFromCamera","trMatrix","convert2WorldSpaceWithTransformationMatrix","transformationMatrix","withinBoundaries","boundaries","undefined","leftSide","rightSide","topSide","bottomSide","min","isValidBoundaries","minX","maxX","minY","maxY","boundariesFullyDefined","clampPoint","manipulatePoint","limit","translationWidthOf","halfTranslationWidthOf","translationWidth","translationHeightOf","halfTranslationHeightOf","translationHeight","clampPointEntireViewPort","topLeftCorner","bottomLeftCorner","topRightCorner","bottomRightCorner","topLeftCornerClamped","topRightCornerClamped","bottomLeftCornerClamped","bottomRightCornerClamped","diffs","maxXDiff","maxYDiff","isValidZoomLevelLimits","zoomLevelLimits","clampZoomLevel","zoomLevel","zoomLevelWithinLimits","clampRotation","rotationLimits","rotationWithinLimits","normalizeAngleZero2TwoPI","angleSpanFromStart","angleSpan","start","angleSpanFromEnd","end","ccw","startAsTieBreaker","normalizedRotation","rotationWithinBoundary","rotationBoundary","angleFromStart","positiveDirection","angleRange","angle","from","to","angleDiff","deg2rad","deg","rad2deg","rad","BaseCamera","zoomLevelBoundaries","rotationBoundaries","_position","_zoomLevel","_rotation","_viewPortHeight","_viewPortWidth","_zoomBoundaries","_rotationBoundaries","_boundaries","width","height","setPosition","destination","magnitude","zoomBoundaries","temp","setMaxZoomLevel","maxZoomLevel","setMinZoomLevel","minZoomLevel","setZoomLevel","getTransform","alignCoorindate","currentCachedTransform","transform","cached","s","s2","getTRS","setUsingTransformationMatrix","decomposed","setRotation","getCameraOriginInWindow","centerInWindow","convertFromViewPort2WorldSpace","convertFromWorld2ViewPort","invertFromWorldSpace2ViewPort","setHorizontalBoundaries","setVerticalBoundaries","DEFAULT_BOARD_CAMERA_VIEWPORT_WIDTH","DEFAULT_BOARD_CAMERA_VIEWPORT_HEIGHT","DEFAULT_BOARD_CAMERA_ZOOM_BOUNDARIES","DEFAULT_BOARD_CAMERA_BOUNDARIES","DEFAULT_BOARD_CAMERA_ROTATION_BOUNDARIES","DefaultBoardCamera","_baseCamera","_observer","currentPosition","currentZoomLevel","currentRotation","alignCoordinateSystem","VanillaKMTEventParser","canvas","kmtInputStateMachine","_canvas","bindFunctions","_abortController","AbortController","_stateMachine","_keyfirstPressed","Map","disabled","_disabled","value","stateMachine","addEventListeners","pointerDownHandler","pointerUpHandler","pointerMoveHandler","scrollHandler","window","keypressHandler","keyupHandler","setUp","tearDown","abort","bind","button","pointerType","happens","clientX","clientY","buttons","preventDefault","ctrlKey","deltaX","deltaY","target","document","body","has","key","set","delete","attach","VanillaTouchEventParser","touchInputStateMachine","_panDisabled","_zoomDisabled","_rotateDisabled","touchSM","bindListeners","touchStateMachine","touchstartHandler","touchendHandler","touchcancelHandler","touchmoveHandler","enableStrategy","disableStrategy","_touchInputTracker","panDisabled","zoomDisabled","rotateDisabled","pointsAdded","i","changedTouches","length","ident","identifier","points","pointsRemoved","pointsMoved","targetTouches","pointConversion","cos30","cos60","z","calculateOrderOfMagnitude","count","divisor","createHandlerChain","handlers","normalizedHandlers","Array","isArray","args","reduce","acc","handler","CanvasPositionDimensionPublisher","_observers","lastRect","getBoundingClientRect","resizeObserver","ResizeObserver","entries","entry","trueRect","getTrueRect","getComputedStyle","rectChanged","publishPositionUpdate","intersectionObserver","IntersectionObserver","isIntersecting","boundingClientRect","resizeHandler","observe","passive","dispose","disconnect","rect","onPositionUpdate","computedStyle","paddingLeft","parseFloat","paddingTop","paddingRight","paddingBottom","borderLeft","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","trueLeft","left","trueTop","top","trueWidth","trueHeight","DOMRect","r1","r2","methodsToFlip","fillRect","strokeRect","fillText","strokeText","lineTo","moveTo","quadraticCurveTo","bezierCurveTo","arc","drawImage","roundRect","reverseYAxis","context","Proxy","get","prop","receiver","Reflect","newArgs","convertedArgs","invertYAxisForDrawImageWith9Args","apply","yIndices","index","imageHeight","drawCrossHair","pos","size","color","halfSize","beginPath","strokeStyle","lineWidth","stroke","drawBoundingBox","curMin","curMinX","curMinY","drawAxis","drawGrid","leftRightDirection","unitVectorFromA2B","topDownDirection","distanceBetweenPoints","orderOfMagnitude","subDivisor","pow","minHorizontalSmallTick","ceil","maxHorizontalSmallTick","floor","minVerticalSmallTick","maxVerticalSmallTick","startPoint","endPoint","fillStyle","drawRulerLegacy","halfDivisor","scaling","minHorizontalLargeTick","maxHorizontalLargeTick","minVerticalLargeTick","minHorizontalMediumTick","maxHorizontalMediumTick","minVerticalMediumTick","maxVerticalMediumTick","halfDivisorInActualPixel","subDivisorInActualPixel","font","midBaseLineTextDimensions","measureText","midBaseLineHeight","fontBoundingBoxAscent","fontBoundingBoxDescent","subBaseLineTextDimensions","subBaseLineHeight","largeHorizontalStep","resPoint","textAlign","textBaseline","textDimensions","toFixed","largeVerticalStep","mediumHorizontalStep","flipYAxis","mediumVerticalStep","smallHorizontalStep","smallVerticalStep","drawPositionText","offset","drawReferenceCircle","drawArrow","arrowRatio","arrowHeight","offsetLength","offsetPoint","linearInterpolation","unitVector","arrowPoint1","arrowPoint2","closePath","fill","MAJOR_TICK_LENGTH","MINOR_TICK_LENGTH","HALF_TICK_LENGTH","TEXT_MAJOR_TICK_OFFSET","TEXT_HALF_TICK_OFFSET","TEXT_MAJOR_TICK_FONT_SIZE","TEXT_HALF_TICK_FONT_SIZE","drawRuler","minMajorTickValue","maxMajorTickValue","majorTickStep","minMinTickValue","maxMaxTickValue","minTickStep","minHalfTickValue","maxHalfTickValue","halfTickStep","calibrationMultiplier","normalizedOrderOfMagnitude","calculateTickValues","save","drawXAxisTick","textOffset","fontSize","restore","vMinMajorTickValue","vMaxMajorTickValue","vMajorTickStep","vMinMinTickValue","vMaxMaxTickValue","vMinTickStep","vMinHalfTickValue","vMaxHalfTickValue","vHalfTickStep","vCalibrationMultiplier","drawYAxisTick","majorTickPoint","majorTickLength","tickValue","textOption","drawText","tickValueText","minValue","maxValue","trueMinValue","trueMaxValue","trueOrderOfMagnitude","minTickOrderOfMagnitude","minZoomLevelBaseOnDimensions","minZoomLevelWidthWidth","minZoomLevelHeightWidth","minZoomLevelWidthHeight","minZoomLevelHeightHeight","Infinity","minZoomLevelHeight","minZoomLevelWidth","zoomLevelBoundariesShouldUpdate","targetMinZoomLevel","minZoomLevelBaseOnWidth","widthWidthProjection","widthHeightProjection","minZoomLevelBaseOnHeight","clampZoomToHandler","camera","config","clampZoom","clampZoomByHandler","targetZoom","restrictZoomToHandler","restrictZoom","restrictZoomByHandler","createDefaultZoomToOnlyHandler","createDefaultZoomByOnlyHandler","createDefaultPanToHandler","restrictPanToHandler","clampToHandler","createDefaultPanByHandler","restrictPanByHandler","clampByHandler","convertDeltaToComplyWithRestriction","clampTranslation","actualDest","limitEntireViewPort","actualDelta","restrictXTranslation","restrictYTranslation","restrictRelativeXTranslation","restrictRelativeYTranslation","upDirection","dotProduct","rightDirection","convertUserInputDeltaToCameraDelta","clampRotateByHandler","clampedRotation","restrictRotateByHandler","restrictRotation","clampRotateToHandler","targetRotation","restrictRotateToHandler","createDefaultRotateByHandler","createDefaultRotateToHandler","CameraPositionUpdateBatcher","nextPosition","queuePositionUpdateCount","queuePositionUpdateToCount","queuePositionUpdateByCount","lastUpdateCount","observable","queuePositionUpdate","queuePositionUpdateTo","queuePositionUpdateBy","processQueuedUpdates","update","getDebugInfo","lastUpdateTotalCalls","queuePositionUpdateCalls","queuePositionUpdateToCalls","queuePositionUpdateByCalls","CameraRotationUpdateBatcher","nextRotation","queueRotationUpdateCount","queueRotationUpdateToCount","queueRotationUpdateByCount","queueRotationUpdate","queueRotationUpdateTo","queueRotationUpdateBy","queueRotationUpdateCalls","queueRotationUpdateToCalls","queueRotationUpdateByCalls","CameraZoomUpdateBatcher","nextZoom","anchor","anchorCoordinateSystem","queueZoomUpdateCount","queueZoomUpdateToCount","queueZoomUpdateTo","queueZoomUpdateBy","queueZoomByAtWorld","worldAnchor","queueZoomToAtWorld","queueZoomUpdateCalls","queueZoomUpdateToCalls","CameraRigWithUpdateBatcher","_panBy","_panTo","_zoomTo","_zoomBy","_rotateBy","_rotateTo","_config","_camera","_positionBatcher","_zoomBatcher","_rotationBatcher","zoomToAt","at","zoomByAt","zoomTo","zoomBy","zoomToAtWorld","zoomByAtWorld","_actualPanByWorld","transformedDelta","_actualPanToWorld","transformedTarget","panByWorld","panByViewPort","diffInWorld","panToWorld","panToViewPort","targetInWorld","rotateBy","rotateTo","updatePosition","positionUpdate","updateZoom","op","_zoomToAtWorld","_zoomByAtWorld","_zoomToAtViewPort","_zoomByAtViewPort","updateRotation","originalAnchorInWorld","anchorInWorldAfterZoom","cameraPositionDiff","transformedCameraPositionDiff","originalAnchorInViewPort","anchorInViewPortAfterZoom","anchorInViewPortBeforeZoom","transformedDiff","configure","cleanup","setup","createDefaultCameraRigWithUpdateBatcher","DefaultCameraRig","transformTarget","cameraPositionDiffInWorld","diffInViewPort","createDefaultCameraRig","Relay","cameraRig","_cameraRig","notifyPanInput","notifyZoomInput","anchorPoint","notifyRotationInput","createDefaultCameraMux","createDefaultCameraMuxWithCameraRig","PanControlStateMachine","TemplateStateMachine","states","initialState","super","notifyPanToAnimationInput","initateTransition","_context","AcceptingUserInputState","TemplateState","eventReactions","userPanByInput","action","userPanByInputHandler","defaultTargetState","userPanToInput","userPanToInputHandler","lockedOnObjectPanByInput","lockedOnObjectPanByInputHandler","lockedOnObjectPanToInput","lockedOnObjectPanToInputHandler","NO_OP","payload","TransitionState","transitionPanByInput","transitionPanByInputHandler","transitionPanToInput","transitionPanToInputHandler","LockedOnObjectState","unlock","createDefaultPanControlStates","ACCEPTING_USER_INPUT","TRANSITION","LOCKED_ON_OBJECT","createDefaultPanControlStateMachine","ZoomAcceptingUserInputState","_eventReactions","userZoomByAtInput","userZoomToAtInput","initiateTransition","deltaZoom","ZoomTransitionState","lockedOnObjectZoomByAtInput","lockedOnObjectZoomToAtInput","transitionZoomByAtInput","transitionZoomToAtInput","transitionZoomToAtCenterInput","transitionZoomToAtWorldInput","transitionZoomByAtCenterInput","ZoomLockedOnObjectState","ZoomControlStateMachine","notifyZoomByAtInput","notifyZoomByAtInputAnimation","notifyZoomToAtCenterInput","notifyZoomToAtWorldInput","createDefaultZoomControlStates","createDefaultZoomControlStateMachine","RotateControlStateMachine","notifyRotateByInput","notifyRotateToAnimationInput","RotationAcceptingUserInputState","userRotateByInput","userRotateByInputHandler","userRotateToInput","userRotateToInputHandler","lockedOnObjectRotateByInput","lockedOnObjectRotateByInputHandler","lockedOnObjectRotateToInput","lockedOnObjectRotateToInputHandler","RotationTransitionState","transitionRotateByInput","transitionRotateByInputHandler","transitionRotateToInput","transitionRotateToInputHandler","RotationLockedOnObjectState","createDefaultRotateControlStates","createDefaultRotateControlStateMachine","CameraMuxWithAnimationAndLock","panStateMachine","zoomStateMachine","rotateStateMachine","_panStateMachine","_zoomStateMachine","_rotateStateMachine","notifyZoomInputAnimation","notifyZoomInputAnimationWorld","console","error","initatePanTransition","initateZoomTransition","initateRotateTransition","createCameraMuxWithAnimationAndLock","createCameraMuxWithAnimationAndLockWithCameraRig","RawUserInputPublisher","cameraMux","_cameraMux","createDefaultRawUserInputPublisher","RawUserInputPublisherWithWebWorkerRelay","webWorker","postMessage","CursorStyle","DummyCanvasOperator","setCursor","CanvasCacheInWebWorker","postMessageFunction","_width","_height","_postMessageFunction","style","CanvasProxy","canvasPositionDimensionPublisher","_canvasPositionDimensionPublisher","cursor","CanvasProxyWorkerRelay","canvasDiemsionPublisher","boundingRect","_webWorker","DummyKmtInputContext","initialCursorPosition","notifyOnPan","notifyOnZoom","zoomAmount","notifyOnRotate","setInitialCursorPosition","ObservableInputTracker","canvasOperator","inputPublisher","_alignCoordinateSystem","_canvasOperator","_inputPublisher","_initialCursorPosition","TouchInputTracker","_touchPointsMap","addTouchPoints","removeTouchPoints","identifiers","getCurrentTouchPointsCount","getInitialTouchPointsPositions","idents","res","updateTouchPoints","IdleState","touchstart","touchend","_guards","touchPointsCount","_eventGuards","guard","map","p","PendingState","touchmove","initialPositions","currentPositions","initialStartAndEndDistance","currentStartAndEndDistance","midPoint","currentMidPoint","midPointDelta","cameraCenterInWindow","midPointInViewPort","panZoom","warn","InProgressState","createTouchInputStateMachine","IDLE","PENDING","IN_PROGRESS","convertFromWindow2ViewPort","canvasBoundingRect","right","bottom","convertFromWindow2ViewPortWithCanvasOperator","convertFromWindow2ViewPortCanvasOperator","KmtIdleState","isIdle","spacebarDown","spacebarDownHandler","scroll","scrollWithCtrl","scrollWithCtrlHandler","middlePointerDown","middlePointerDownHandler","scrollSensitivity","GRAB","GRABBING","ReadyToSelectState","leftPointerMove","viewportPoint","setSelectionEndPoint","toggleSelectionBox","leftPointerUp","ReadyToPanViaSpaceBarState","spacebarUp","spacebarUpHandler","leftPointerDown","leftPointerDownHandler","DEFAULT","InitialPanState","leftPointerUpHandler","leftPointerMoveHandler","ReadyToPanViaScrollWheelState","middlePointerUp","middlePointerUpHandler","middlePointerMove","middlePointerMoveHandler","PanState","PanViaScrollWheelState","KmtEmptyState","createKmtInputStateMachine","READY_TO_PAN_VIA_SPACEBAR","INITIAL_PAN","PAN","READY_TO_PAN_VIA_SCROLL_WHEEL","PAN_VIA_SCROLL_WHEEL","KmtInputStateMachineWebWorkerProxy","webworker","_webworker","Board","eventTarget","_fullScreen","lastUpdateTime","getContext","_reversedContext","attributeObserver","MutationObserver","attributeCallBack","attributes","_canvasProxy","boardInputPublisher","_observableInputTracker","_kmtParser","_touchParser","calibrateCanvasDimensions","registerEventListeners","removeEventListeners","step","align","fullScreen","innerWidth","innerHeight","kmtParser","parser","touchParser","timestamp","reset","clearRect","transfromMatrix","setTransform","convertWindowPoint2WorldCoord","clickPointInWindow","pointInViewPort","onInput","maxHalfTransHeight","maxHalfTransWidth","mutationsList","mutation","attributeName","styleWidth","styleHeight","newWidth","newHeight","setMaxTransWidthWithFixedMinBoundary","curBoundaries","curHorizontalMin","setMaxTransWidthWithFixedMaxBoundary","curMax","curHorizontalMax","getCameraRig"],"mappings":"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"}
|