ocearo-ui 0.1.21 → 0.1.22
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/404.html +1 -1
- package/README.fr.md +31 -1
- package/README.md +31 -1
- package/__next.__PAGE__.txt +2 -2
- package/__next._full.txt +3 -3
- package/__next._head.txt +1 -1
- package/__next._index.txt +2 -2
- package/__next._tree.txt +2 -2
- package/_next/static/chunks/0-z15txb4-uhu.js +409 -0
- package/_next/static/chunks/{29-ag86gvlc40.js → 0kinaai2rvd43.js} +1 -1
- package/_next/static/chunks/0qj7yy4f6sk8y.js +455 -0
- package/_next/static/chunks/0yf1ifg_o1bq6.js +1 -0
- package/_next/static/chunks/0zbzk2ob0li1n.js +1 -0
- package/_next/static/chunks/17ma1x64d-211.js +1 -0
- package/_next/static/chunks/19xb2y6sgfnza.js +1 -0
- package/_next/static/chunks/1q572rz5m8mb-.js +1 -0
- package/_next/static/chunks/{2baz6j1q913qw.js → 1rkf8qtk5-48h.js} +1 -1
- package/_next/static/chunks/26e1o1as-77nq.js +172 -0
- package/_next/static/chunks/2fy4q1c5l3tpj.js +1 -0
- package/_next/static/chunks/2lw7kypuhij1_.css +3 -0
- package/_next/static/chunks/{1porlo35ga4zu.js → 2q_83f24jeg0e.js} +1 -1
- package/_next/static/chunks/2udirievybq_j.js +1 -0
- package/_next/static/chunks/3myql5zu0rstt.js +425 -0
- package/_not-found/__next._full.txt +2 -2
- package/_not-found/__next._head.txt +1 -1
- package/_not-found/__next._index.txt +2 -2
- package/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/_not-found/__next._not-found.txt +1 -1
- package/_not-found/__next._tree.txt +2 -2
- package/_not-found.html +1 -1
- package/_not-found.txt +2 -2
- package/index.html +1 -1
- package/index.txt +3 -3
- package/package.json +1 -1
- package/settings/__next._full.txt +3 -3
- package/settings/__next._head.txt +1 -1
- package/settings/__next._index.txt +2 -2
- package/settings/__next._tree.txt +2 -2
- package/settings/__next.settings.__PAGE__.txt +2 -2
- package/settings/__next.settings.txt +1 -1
- package/settings.html +1 -1
- package/settings.txt +3 -3
- package/_next/static/chunks/08gn5_gd6amkq.js +0 -1
- package/_next/static/chunks/0utifqhyv2cuc.js +0 -1
- package/_next/static/chunks/0wzr1__so6xme.js +0 -1
- package/_next/static/chunks/11ln9lzzbo35q.js +0 -1
- package/_next/static/chunks/1w1ua0-p5lk1e.js +0 -38
- package/_next/static/chunks/1wv5e5qomv-7g.css +0 -3
- package/_next/static/chunks/2lez3uww9j4t0.js +0 -135
- package/_next/static/chunks/2uao1hfsz-oy8.js +0 -1
- package/_next/static/chunks/2yghvponatk1x.js +0 -135
- package/_next/static/chunks/31i14-jemhnic.js +0 -863
- package/_next/static/chunks/3dt63tw_9r0jt.js +0 -38
- package/_next/static/chunks/3sgrkzk20mxs6.js +0 -54
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → sct9rcMTcCyBLHTxQQ75-}/_buildManifest.js +0 -0
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → sct9rcMTcCyBLHTxQQ75-}/_clientMiddlewareManifest.js +0 -0
- /package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → sct9rcMTcCyBLHTxQQ75-}/_ssgManifest.js +0 -0
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82897,60099,e=>{"use strict";let t,r;var n=e.i(31067),a=e.i(71645),i=e.i(28600),l=e.i(25234),o=e.i(90072);let s=a.forwardRef(({envMap:e,resolution:t=256,frames:r=1/0,makeDefault:s,children:u,...c},d)=>{let g=(0,i.useThree)(({set:e})=>e),h=(0,i.useThree)(({camera:e})=>e),m=(0,i.useThree)(({size:e})=>e),f=a.useRef(null);a.useImperativeHandle(d,()=>f.current,[]);let v=a.useRef(null),p=function(e){let t=(0,i.useThree)(e=>e.size),r=(0,i.useThree)(e=>e.viewport),n="number"==typeof e?e:t.width*r.dpr,l=t.height*r.dpr,s=("number"==typeof e?void 0:e)||{},{samples:u=0,depth:c,...d}=s,g=null!=c?c:s.depthBuffer,h=a.useMemo(()=>{let e=new o.WebGLRenderTarget(n,l,{minFilter:o.LinearFilter,magFilter:o.LinearFilter,type:o.HalfFloatType,...d});return g&&(e.depthTexture=new o.DepthTexture(n,l,o.FloatType)),e.samples=u,e},[]);return a.useLayoutEffect(()=>{h.setSize(n,l),u&&(h.samples=u)},[u,h,n,l]),a.useEffect(()=>()=>h.dispose(),[]),h}(t);a.useLayoutEffect(()=>{c.manual||(f.current.aspect=m.width/m.height)},[m,c]),a.useLayoutEffect(()=>{f.current.updateProjectionMatrix()});let x=0,y=null,M="function"==typeof u;return(0,l.useFrame)(t=>{M&&(r===1/0||x<r)&&(v.current.visible=!1,t.gl.setRenderTarget(p),y=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,f.current),t.scene.background=y,t.gl.setRenderTarget(null),v.current.visible=!0,x++)}),a.useLayoutEffect(()=>{if(s)return g(()=>({camera:f.current})),()=>g(()=>({camera:h}))},[f,s,g]),a.createElement(a.Fragment,null,a.createElement("perspectiveCamera",(0,n.default)({ref:f},c),!M&&u),a.createElement("group",{ref:v},M&&u(p.texture)))});e.s(["PerspectiveCamera",0,s],82897);var u=e.i(88014);let c=new o.Vector3,d=new o.Vector3,g=new o.Vector3,h=new o.Vector2;function m(e,t,r){let n=c.setFromMatrixPosition(e.matrixWorld);n.project(t);let a=r.width/2,i=r.height/2;return[n.x*a+a,-(n.y*i)+i]}let f=e=>1e-10>Math.abs(e)?0:e;function v(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=f(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let p=(t=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>v(e,t)),x=(r=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>v(e,r(t),"translate(-50%,-50%)")),y=a.forwardRef(({children:e,eps:t=.001,style:r,className:s,prepend:v,center:y,fullscreen:M,portal:b,distanceFactor:R,sprite:T=!1,transform:P=!1,occlude:w,onOcclude:S,castShadow:E,receiveShadow:C,material:k,geometry:j,zIndexRange:O=[0x1000037,0],calculatePosition:$=m,as:F="div",wrapperClass:W,pointerEvents:G="auto",...I},z)=>{let{gl:A,camera:L,scene:N,size:U,raycaster:D,events:H,viewport:K}=(0,i.useThree)(),[V]=a.useState(()=>document.createElement(F)),B=a.useRef(null),Y=a.useRef(null),Z=a.useRef(0),X=a.useRef([0,0]),_=a.useRef(null),q=a.useRef(null),J=(null==b?void 0:b.current)||H.connected||A.domElement.parentNode,Q=a.useRef(null),ee=a.useRef(!1),et=a.useMemo(()=>{var e;return w&&"blending"!==w||Array.isArray(w)&&w.length&&(e=w[0])&&"object"==typeof e&&"current"in e},[w]);a.useLayoutEffect(()=>{let e=A.domElement;w&&"blending"===w?(e.style.zIndex=`${Math.floor(O[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[w]),a.useLayoutEffect(()=>{if(Y.current){let e=B.current=u.createRoot(V);if(N.updateMatrixWorld(),P)V.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=$(Y.current,L,U);V.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return J&&(v?J.prepend(V):J.appendChild(V)),()=>{J&&J.removeChild(V),e.unmount()}}},[J,P]),a.useLayoutEffect(()=>{W&&(V.className=W)},[W]);let er=a.useMemo(()=>P?{position:"absolute",top:0,left:0,width:U.width,height:U.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:y?"translate3d(-50%,-50%,0)":"none",...M&&{top:-U.height/2,left:-U.width/2,width:U.width,height:U.height},...r},[r,y,M,U,P]),en=a.useMemo(()=>({position:"absolute",pointerEvents:G}),[G]);a.useLayoutEffect(()=>{var t,n;ee.current=!1,P?null==(t=B.current)||t.render(a.createElement("div",{ref:_,style:er},a.createElement("div",{ref:q,style:en},a.createElement("div",{ref:z,className:s,style:r,children:e})))):null==(n=B.current)||n.render(a.createElement("div",{ref:z,style:er,className:s,children:e}))});let ea=a.useRef(!0);(0,l.useFrame)(e=>{if(Y.current){L.updateMatrixWorld(),Y.current.updateWorldMatrix(!0,!1);let e=P?X.current:$(Y.current,L,U);if(P||Math.abs(Z.current-L.zoom)>t||Math.abs(X.current[0]-e[0])>t||Math.abs(X.current[1]-e[1])>t){var r;let t,n,a,i,l=(r=Y.current,t=c.setFromMatrixPosition(r.matrixWorld),n=d.setFromMatrixPosition(L.matrixWorld),a=t.sub(n),i=L.getWorldDirection(g),a.angleTo(i)>Math.PI/2),s=!1;et&&(Array.isArray(w)?s=w.map(e=>e.current):"blending"!==w&&(s=[N]));let u=ea.current;s?ea.current=function(e,t,r,n){let a=c.setFromMatrixPosition(e.matrixWorld),i=a.clone();i.project(t),h.set(i.x,i.y),r.setFromCamera(h,t);let l=r.intersectObjects(n,!0);if(l.length){let e=l[0].distance;return a.distanceTo(r.ray.origin)<e}return!0}(Y.current,L,D,s)&&!l:ea.current=!l,u!==ea.current&&(S?S(!ea.current):V.style.display=ea.current?"block":"none");let m=Math.floor(O[0]/2),v=w?et?[O[0],m]:[m-1,0]:O;if(V.style.zIndex=`${function(e,t,r){if(t instanceof o.PerspectiveCamera||t instanceof o.OrthographicCamera){let n=c.setFromMatrixPosition(e.matrixWorld),a=d.setFromMatrixPosition(t.matrixWorld),i=n.distanceTo(a),l=(r[1]-r[0])/(t.far-t.near),o=r[1]-l*t.far;return Math.round(l*i+o)}}(Y.current,L,v)}`,P){let[e,t]=[U.width/2,U.height/2],r=L.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:a,left:i,bottom:l,right:o}=L,s=p(L.matrixWorldInverse),u=n?`scale(${r})translate(${f(-(o+i)/2)}px,${f((a+l)/2)}px)`:`translateZ(${r}px)`,c=Y.current.matrixWorld;T&&((c=L.matrixWorldInverse.clone().transpose().copyPosition(c).scale(Y.current.scale)).elements[3]=c.elements[7]=c.elements[11]=0,c.elements[15]=1),V.style.width=U.width+"px",V.style.height=U.height+"px",V.style.perspective=n?"":`${r}px`,_.current&&q.current&&(_.current.style.transform=`${u}${s}translate(${e}px,${t}px)`,q.current.style.transform=x(c,1/((R||10)/400)))}else{let t=void 0===R?1:function(e,t){if(t instanceof o.OrthographicCamera)return t.zoom;if(!(t instanceof o.PerspectiveCamera))return 1;{let r=c.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*r.distanceTo(n))}}(Y.current,L)*R;V.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}X.current=e,Z.current=L.zoom}}if(!et&&Q.current&&!ee.current)if(P){if(_.current){let e=_.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=L;if(t||j)I.scale&&(Array.isArray(I.scale)?I.scale instanceof o.Vector3?Q.current.scale.copy(I.scale.clone().divideScalar(1)):Q.current.scale.set(1/I.scale[0],1/I.scale[1],1/I.scale[2]):Q.current.scale.setScalar(1/I.scale));else{let t=(R||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;Q.current.scale.set(r,n,1)}ee.current=!0}}}else{let t=V.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/K.factor,r=t.clientWidth*e,n=t.clientHeight*e;Q.current.scale.set(r,n,1),ee.current=!0}Q.current.lookAt(e.camera.position)}});let ei=a.useMemo(()=>({vertexShader:P?void 0:`
|
|
2
|
-
/*
|
|
3
|
-
This shader is from the THREE's SpriteMaterial.
|
|
4
|
-
We need to turn the backing plane into a Sprite
|
|
5
|
-
(make it always face the camera) if "transfrom"
|
|
6
|
-
is false.
|
|
7
|
-
*/
|
|
8
|
-
#include <common>
|
|
9
|
-
|
|
10
|
-
void main() {
|
|
11
|
-
vec2 center = vec2(0., 1.);
|
|
12
|
-
float rotation = 0.0;
|
|
13
|
-
|
|
14
|
-
// This is somewhat arbitrary, but it seems to work well
|
|
15
|
-
// Need to figure out how to derive this dynamically if it even matters
|
|
16
|
-
float size = 0.03;
|
|
17
|
-
|
|
18
|
-
vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
19
|
-
vec2 scale;
|
|
20
|
-
scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
|
|
21
|
-
scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
|
|
22
|
-
|
|
23
|
-
bool isPerspective = isPerspectiveMatrix( projectionMatrix );
|
|
24
|
-
if ( isPerspective ) scale *= - mvPosition.z;
|
|
25
|
-
|
|
26
|
-
vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;
|
|
27
|
-
vec2 rotatedPosition;
|
|
28
|
-
rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
|
|
29
|
-
rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
|
|
30
|
-
mvPosition.xy += rotatedPosition;
|
|
31
|
-
|
|
32
|
-
gl_Position = projectionMatrix * mvPosition;
|
|
33
|
-
}
|
|
34
|
-
`,fragmentShader:`
|
|
35
|
-
void main() {
|
|
36
|
-
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
|
|
37
|
-
}
|
|
38
|
-
`}),[P]);return a.createElement("group",(0,n.default)({},I,{ref:Y}),w&&!et&&a.createElement("mesh",{castShadow:E,receiveShadow:C,ref:Q},j||a.createElement("planeGeometry",null),k||a.createElement("shaderMaterial",{side:o.DoubleSide,vertexShader:ei.vertexShader,fragmentShader:ei.fragmentShader})))});e.s(["Html",0,y],60099)},62588,e=>{"use strict";var t=e.i(43476),r=e.i(71645);e.i(49018);var n=e.i(83402),a=e.i(66799),i=e.i(67561),l=e.i(85709);let o=(0,r.createContext)(),s=(e,t,r,n)=>{let a=r.split(".").reduce((e,t)=>e?.[t],n);void 0!==a&&(e[t]=a)};e.s(["AISProvider",0,({children:e})=>{let[u,c]=(0,r.useState)({}),[d,g]=(0,r.useState)([]),h=(0,r.useRef)(null),m=(0,r.useRef)({}),f=(0,r.useRef)(null),{convertLatLonToXY:v}=(0,i.useOcearoContext)(),p=(0,l.useSignalKPath)("navigation.position"),x=(0,r.useRef)(),y=(0,r.useRef)(),M=(0,r.useCallback)(e=>{if(e.latitude&&e.longitude&&p&&p.latitude&&p.longitude&&e.latitude!=p.latitude&&e.longitude!=p.longitude){let t=n.default.get("aisLengthScalingFactor")||.7,{x:r,y:a}=v({lat:e.latitude,lon:e.longitude},{lat:p.latitude,lon:p.longitude});e.sceneX=r*t,e.sceneZ=-a*t,e.rotationAngleY=(e=>{if(!e)return 0;let t=e.heading||e.headingMagnetic;return e.cog||e.cogMagnetic||t||0})(e),e.distanceMeters=Math.sqrt(r**2+a**2);let i=e.visible;return e.visible=e.distanceMeters>10&&e.distanceMeters<=5e3,i!==e.visible}return!1},[p,v]),b=(0,r.useCallback)(()=>{f.current&&(clearTimeout(f.current),f.current=null);let e=Object.values(u).filter(e=>e.visible);((e,t)=>{if(e.length!==t.length)return!0;let r=new Set(e.map(e=>e.mmsi)),n=new Set(t.map(e=>e.mmsi));if(r.size!==n.size)return!0;for(let e of r)if(!n.has(e))return!0;return!1})(d,e)&&(console.log(`Updating visible vessels: ${e.length} vessels`),g(e))},[u,d]),R=(0,r.useCallback)(()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{b(),f.current=null},100)},[b]);return(0,r.useEffect)(()=>{x.current=M,y.current=R},[M,R]),(0,r.useEffect)(()=>{let e=setInterval(()=>{let e=Date.now();c(t=>{let r=!1,n={...t};return(Object.entries(n).forEach(([t,a])=>{e-a.lastUpdate>6e5&&(delete n[t],r=!0)}),r)?(R(),n):t})},6e4);return()=>clearInterval(e)},[R]),(0,r.useEffect)(()=>{let e=async e=>{console.log("Fetching static vessel info...");try{let t=await e.API().then(e=>e.vessels()),r=Object.entries(t).map(([e,t])=>{let r={mmsi:e};return s(r,"name","name",t),s(r,"latitude","navigation.position.value.latitude",t),s(r,"longitude","navigation.position.value.longitude",t),s(r,"sog","navigation.speedOverGround.value",t),s(r,"cog","navigation.courseOverGroundTrue.value",t),s(r,"cogMagnetic","navigation.courseOverGroundMagnetic.value",t),s(r,"heading","navigation.headingTrue.value",t),s(r,"headingMagnetic","navigation.headingMagnetic.value",t),s(r,"length","design.length.value.overall",t),s(r,"beam","design.beam.value",t),s(r,"callsign","communication.callsignVhf",t),s(r,"shipType","design.aisShipType.value.id",t),r.lastUpdate=Date.now(),r.distanceMeters=null,r.sceneX=null,r.sceneZ=null,r.rotationAngleY=null,r.visible=!1,r}),n={};if(r.forEach(e=>{e.mmsi&&"self"!=e.mmsi&&(null!==e.latitude||null!==e.longitude)&&(x.current(e),n[e.mmsi]=e)}),console.log(`Fetched ${r.length} vessels.`),Object.keys(n).length>0){console.log(`Initializing AIS data with ${Object.keys(n).length} vessels`),c(n);let e=Object.values(n).filter(e=>e.visible);g(e),console.log(`${e.length} vessels initially visible`)}}catch(e){console.error("Error fetching static info:",e)}},t=e=>{if(!e?.updates)return void console.warn("Missing delta or no updates:",e);let t=e.context.replace("vessels.","");t?(m.current[t]=Date.now(),c(r=>{let n=r[t]||{mmsi:t,name:"unknown",latitude:null,longitude:null,sog:null,cog:null,cogMagnetic:null,heading:null,headingMagnetic:null,distanceMeters:null,sceneX:null,sceneZ:null,rotationAngleY:null,visible:!1,length:null,beam:null,shipType:null};n.lastUpdate=m.current[t];let a=!1,i=!1;return e.updates.forEach(e=>{e.values&&e.values.forEach(e=>{switch(e.path){case"name":n.name=e.value;break;case"navigation.position":n.latitude=e.value.latitude,n.longitude=e.value.longitude,a=!0;break;case"navigation.speedOverGround":n.sog=e.value;break;case"navigation.courseOverGroundTrue":n.cog=e.value,i=!0;break;case"navigation.courseOverGroundMagnetic":n.cogMagnetic=e.value,i=!0;break;case"navigation.headingTrue":n.heading=e.value,i=!0;break;case"navigation.headingMagnetic":n.headingMagnetic=e.value,i=!0;break;case"design.aisShipType":n.shipType=e.value?.id??e.value;break;case"design.length":n.length=e.value?.overall??e.value;break;case"design.beam":n.beam=e.value;break;case"communication.callsignVhf":n.callsign=e.value}})}),(x.current(n)||a||i)&&y.current(),{...r,[t]:n}})):console.warn("Update without MMSI context:",e)};return(async()=>{try{let{signalkUrl:r}=n.default.getAll();if(console.log("SignalK URL:",r),!r)throw Error("SignalK URL is undefined or invalid.");console.log(`Connecting to SignalK at: ${r}`);let i=a.default.createClient({subscriptions:[{context:"vessels.*",subscribe:[{path:"navigation.position"},{path:"navigation.speedOverGround"},{path:"navigation.courseOverGroundTrue"},{path:"navigation.courseOverGroundMagnetic"},{path:"navigation.headingTrue"},{path:"navigation.headingMagnetic"},{path:"name"},{path:"design.aisShipType"},{path:"design.length"},{path:"design.beam"},{path:"communication.callsignVhf"}]}]});h.current=i,await i.connect(),console.log("SignalK client connected."),await e(i),i.on("delta",t)}catch(e){console.warn("Error connecting to SignalK:",e)}})(),()=>{console.log("Disconnecting SignalK client..."),f.current&&clearTimeout(f.current),h.current?.disconnect()}},[]),(0,t.jsx)(o.Provider,{value:{aisData:u,vesselIds:d},children:e})},"useAIS",0,()=>(0,r.useContext)(o)])},32615,13035,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(31067),a=e.i(90072);function i(e,t){let a=e+"Geometry";return r.forwardRef(({args:e,children:i,...l},o)=>{let s=r.useRef(null);return r.useImperativeHandle(o,()=>s.current),r.useLayoutEffect(()=>void(null==t||t(s.current))),r.createElement("mesh",(0,n.default)({ref:s},l),r.createElement(a,{attach:"geometry",args:e}),i)})}let l=i("sphere"),o=i("ring");e.s(["Ring",0,o,"Sphere",0,l],13035);var s=e.i(16196),u=e.i(67561),c=e.i(85709),d=e.i(83402);let g=r.default.memo(({radius:e,isOuter:n,markerColorPrimary:i,markerColorGreen:o,markerColorRed:u})=>{let c=(0,r.useMemo)(()=>{let r=[];for(let c=0;c<360;c+=10){let d=a.MathUtils.degToRad(c-90),g=c%30==0,h=n?g?.35:.15:g?.25:.1,m=(e+.5*h+.2)*Math.cos(d),f=(e+.5*h+.2)*Math.sin(d),v=n&&c>0&&c<61,p=n&&c>=300&&c<360,x=v?o:p?u:i;if(!n&&g){let e;e=0===c?"N":90===c?"E":180===c?"S":270===c?"W":c.toString(),r.push((0,t.jsx)(s.Text,{characters:"NESW0123456789",position:[m,.02,f],color:i,fontSize:.6,rotation:[-Math.PI/2,0,Math.PI/2-d],font:"fonts/Roboto-Bold.ttf",anchorY:"middle",fillOpacity:.9,children:e},`text-${c}`))}else r.push((0,t.jsx)(l,{args:[h/2,16,16],position:[m,0,f],children:(0,t.jsx)("meshBasicMaterial",{color:x,transparent:!0,opacity:g?.8:.4})},`marker-${n?"outer":"inner"}-${c}`))}return r},[e,n,i,o,u]);return(0,t.jsx)(t.Fragment,{children:c})});g.displayName="StaticMarkers";let h=r.default.memo(({innerRadius:e,outerRadius:r,dialColor:n,opacity:i=1,transparent:l=!1})=>(0,t.jsx)(o,{args:[e,r,64],rotation:[Math.PI/2,0,0],children:(0,t.jsx)("meshBasicMaterial",{color:n,side:a.DoubleSide,transparent:l,opacity:i,depthWrite:!1})}));h.displayName="StaticRing";let m=({outerRadius:e,innerRadius:n})=>{let{nightMode:a}=(0,u.useOcearoContext)(),i=a?u.oNight:"#ffffff",l=u.oGreen,o=u.oRed,s=(0,r.useMemo)(()=>["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic"],[]),m=(0,c.useSignalKPaths)(s),f=(0,r.useMemo)(()=>{let e=d.default.get("preferredHeadingPath")||"courseOverGroundTrue",t=m[`navigation.${e}`];if(null!=t)return t;let r=m["navigation.headingTrue"]||m["navigation.headingMagnetic"];return m["navigation.courseOverGroundTrue"]||m["navigation.courseOverGroundMagnetic"]||r||0},[m]),v=a?"#000000":"#0a0a0a",p=d.default.get("compassNorthUp"),x=(0,r.useMemo)(()=>({innerRadius:n,outerRadius:e,dialColor:v,markerColorPrimary:i,markerColorGreen:l,markerColorRed:o}),[n,e,v,i,l,o]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("group",{rotation:[0,f+(p?0:Math.PI),0],children:[(0,t.jsx)(h,{innerRadius:x.innerRadius,outerRadius:x.outerRadius,dialColor:x.dialColor,transparent:!0,opacity:.1}),(0,t.jsx)(g,{radius:x.innerRadius,isOuter:!1,markerColorPrimary:x.markerColorPrimary,markerColorGreen:x.markerColorGreen,markerColorRed:x.markerColorRed})]}),(0,t.jsxs)("group",{children:[(0,t.jsx)(h,{innerRadius:x.innerRadius+.8,outerRadius:x.outerRadius+.8,dialColor:x.dialColor,transparent:!0,opacity:.15}),(0,t.jsx)(g,{radius:x.innerRadius+.8,isOuter:!0,markerColorPrimary:x.markerColorPrimary,markerColorGreen:x.markerColorGreen,markerColorRed:x.markerColorRed})]})]})};m.displayName="CompassDial";var f=e.i(84226);e.s(["default",0,({visible:e=!0,position:r,scale:n})=>!e||d.default.get("hide3DCompass")?null:(0,t.jsxs)("group",{position:r,scale:n,children:[(0,t.jsx)(m,{outerRadius:5.6,innerRadius:5}),(0,t.jsx)(f.default,{outerRadius:5.6+1.1})]})],32615)}]);
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82897,60099,e=>{"use strict";let t,r;var i=e.i(31067),n=e.i(71645),a=e.i(28600),o=e.i(25234),l=e.i(90072);let s=n.forwardRef(({envMap:e,resolution:t=256,frames:r=1/0,makeDefault:s,children:u,...c},d)=>{let f=(0,a.useThree)(({set:e})=>e),h=(0,a.useThree)(({camera:e})=>e),m=(0,a.useThree)(({size:e})=>e),p=n.useRef(null);n.useImperativeHandle(d,()=>p.current,[]);let x=n.useRef(null),v=function(e){let t=(0,a.useThree)(e=>e.size),r=(0,a.useThree)(e=>e.viewport),i="number"==typeof e?e:t.width*r.dpr,o=t.height*r.dpr,s=("number"==typeof e?void 0:e)||{},{samples:u=0,depth:c,...d}=s,f=null!=c?c:s.depthBuffer,h=n.useMemo(()=>{let e=new l.WebGLRenderTarget(i,o,{minFilter:l.LinearFilter,magFilter:l.LinearFilter,type:l.HalfFloatType,...d});return f&&(e.depthTexture=new l.DepthTexture(i,o,l.FloatType)),e.samples=u,e},[]);return n.useLayoutEffect(()=>{h.setSize(i,o),u&&(h.samples=u)},[u,h,i,o]),n.useEffect(()=>()=>h.dispose(),[]),h}(t);n.useLayoutEffect(()=>{c.manual||(p.current.aspect=m.width/m.height)},[m,c]),n.useLayoutEffect(()=>{p.current.updateProjectionMatrix()});let g=0,y=null,M="function"==typeof u;return(0,o.useFrame)(t=>{M&&(r===1/0||g<r)&&(x.current.visible=!1,t.gl.setRenderTarget(v),y=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,p.current),t.scene.background=y,t.gl.setRenderTarget(null),x.current.visible=!0,g++)}),n.useLayoutEffect(()=>{if(s)return f(()=>({camera:p.current})),()=>f(()=>({camera:h}))},[p,s,f]),n.createElement(n.Fragment,null,n.createElement("perspectiveCamera",(0,i.default)({ref:p},c),!M&&u),n.createElement("group",{ref:x},M&&u(v.texture)))});e.s(["PerspectiveCamera",0,s],82897);var u=e.i(88014);let c=new l.Vector3,d=new l.Vector3,f=new l.Vector3,h=new l.Vector2;function m(e,t,r){let i=c.setFromMatrixPosition(e.matrixWorld);i.project(t);let n=r.width/2,a=r.height/2;return[i.x*n+n,-(i.y*a)+a]}let p=e=>1e-10>Math.abs(e)?0:e;function x(e,t,r=""){let i="matrix3d(";for(let r=0;16!==r;r++)i+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+i}let v=(t=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>x(e,t)),g=(r=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>x(e,r(t),"translate(-50%,-50%)")),y=n.forwardRef(({children:e,eps:t=.001,style:r,className:s,prepend:x,center:y,fullscreen:M,portal:P,distanceFactor:b,sprite:w=!1,transform:E=!1,occlude:T,onOcclude:R,castShadow:j,receiveShadow:S,material:C,geometry:F,zIndexRange:W=[0x1000037,0],calculatePosition:I=m,as:L="div",wrapperClass:$,pointerEvents:z="auto",...A},k)=>{let{gl:B,camera:H,scene:O,size:U,raycaster:V,events:N,viewport:_}=(0,a.useThree)(),[D]=n.useState(()=>document.createElement(L)),G=n.useRef(null),K=n.useRef(null),q=n.useRef(0),Z=n.useRef([0,0]),Y=n.useRef(null),J=n.useRef(null),Q=(null==P?void 0:P.current)||N.connected||B.domElement.parentNode,X=n.useRef(null),ee=n.useRef(!1),et=n.useMemo(()=>{var e;return T&&"blending"!==T||Array.isArray(T)&&T.length&&(e=T[0])&&"object"==typeof e&&"current"in e},[T]);n.useLayoutEffect(()=>{let e=B.domElement;T&&"blending"===T?(e.style.zIndex=`${Math.floor(W[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[T]),n.useLayoutEffect(()=>{if(K.current){let e=G.current=u.createRoot(D);if(O.updateMatrixWorld(),E)D.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=I(K.current,H,U);D.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return Q&&(x?Q.prepend(D):Q.appendChild(D)),()=>{Q&&Q.removeChild(D),e.unmount()}}},[Q,E]),n.useLayoutEffect(()=>{$&&(D.className=$)},[$]);let er=n.useMemo(()=>E?{position:"absolute",top:0,left:0,width:U.width,height:U.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:y?"translate3d(-50%,-50%,0)":"none",...M&&{top:-U.height/2,left:-U.width/2,width:U.width,height:U.height},...r},[r,y,M,U,E]),ei=n.useMemo(()=>({position:"absolute",pointerEvents:z}),[z]);n.useLayoutEffect(()=>{var t,i;ee.current=!1,E?null==(t=G.current)||t.render(n.createElement("div",{ref:Y,style:er},n.createElement("div",{ref:J,style:ei},n.createElement("div",{ref:k,className:s,style:r,children:e})))):null==(i=G.current)||i.render(n.createElement("div",{ref:k,style:er,className:s,children:e}))});let en=n.useRef(!0);(0,o.useFrame)(e=>{if(K.current){H.updateMatrixWorld(),K.current.updateWorldMatrix(!0,!1);let e=E?Z.current:I(K.current,H,U);if(E||Math.abs(q.current-H.zoom)>t||Math.abs(Z.current[0]-e[0])>t||Math.abs(Z.current[1]-e[1])>t){var r;let t,i,n,a,o=(r=K.current,t=c.setFromMatrixPosition(r.matrixWorld),i=d.setFromMatrixPosition(H.matrixWorld),n=t.sub(i),a=H.getWorldDirection(f),n.angleTo(a)>Math.PI/2),s=!1;et&&(Array.isArray(T)?s=T.map(e=>e.current):"blending"!==T&&(s=[O]));let u=en.current;s?en.current=function(e,t,r,i){let n=c.setFromMatrixPosition(e.matrixWorld),a=n.clone();a.project(t),h.set(a.x,a.y),r.setFromCamera(h,t);let o=r.intersectObjects(i,!0);if(o.length){let e=o[0].distance;return n.distanceTo(r.ray.origin)<e}return!0}(K.current,H,V,s)&&!o:en.current=!o,u!==en.current&&(R?R(!en.current):D.style.display=en.current?"block":"none");let m=Math.floor(W[0]/2),x=T?et?[W[0],m]:[m-1,0]:W;if(D.style.zIndex=`${function(e,t,r){if(t instanceof l.PerspectiveCamera||t instanceof l.OrthographicCamera){let i=c.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),a=i.distanceTo(n),o=(r[1]-r[0])/(t.far-t.near),l=r[1]-o*t.far;return Math.round(o*a+l)}}(K.current,H,x)}`,E){let[e,t]=[U.width/2,U.height/2],r=H.projectionMatrix.elements[5]*t,{isOrthographicCamera:i,top:n,left:a,bottom:o,right:l}=H,s=v(H.matrixWorldInverse),u=i?`scale(${r})translate(${p(-(l+a)/2)}px,${p((n+o)/2)}px)`:`translateZ(${r}px)`,c=K.current.matrixWorld;w&&((c=H.matrixWorldInverse.clone().transpose().copyPosition(c).scale(K.current.scale)).elements[3]=c.elements[7]=c.elements[11]=0,c.elements[15]=1),D.style.width=U.width+"px",D.style.height=U.height+"px",D.style.perspective=i?"":`${r}px`,Y.current&&J.current&&(Y.current.style.transform=`${u}${s}translate(${e}px,${t}px)`,J.current.style.transform=g(c,1/((b||10)/400)))}else{let t=void 0===b?1:function(e,t){if(t instanceof l.OrthographicCamera)return t.zoom;if(!(t instanceof l.PerspectiveCamera))return 1;{let r=c.setFromMatrixPosition(e.matrixWorld),i=d.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*r.distanceTo(i))}}(K.current,H)*b;D.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}Z.current=e,q.current=H.zoom}}if(!et&&X.current&&!ee.current)if(E){if(Y.current){let e=Y.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=H;if(t||F)A.scale&&(Array.isArray(A.scale)?A.scale instanceof l.Vector3?X.current.scale.copy(A.scale.clone().divideScalar(1)):X.current.scale.set(1/A.scale[0],1/A.scale[1],1/A.scale[2]):X.current.scale.setScalar(1/A.scale));else{let t=(b||10)/400,r=e.clientWidth*t,i=e.clientHeight*t;X.current.scale.set(r,i,1)}ee.current=!0}}}else{let t=D.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/_.factor,r=t.clientWidth*e,i=t.clientHeight*e;X.current.scale.set(r,i,1),ee.current=!0}X.current.lookAt(e.camera.position)}});let ea=n.useMemo(()=>({vertexShader:E?void 0:`
|
|
2
|
-
/*
|
|
3
|
-
This shader is from the THREE's SpriteMaterial.
|
|
4
|
-
We need to turn the backing plane into a Sprite
|
|
5
|
-
(make it always face the camera) if "transfrom"
|
|
6
|
-
is false.
|
|
7
|
-
*/
|
|
8
|
-
#include <common>
|
|
9
|
-
|
|
10
|
-
void main() {
|
|
11
|
-
vec2 center = vec2(0., 1.);
|
|
12
|
-
float rotation = 0.0;
|
|
13
|
-
|
|
14
|
-
// This is somewhat arbitrary, but it seems to work well
|
|
15
|
-
// Need to figure out how to derive this dynamically if it even matters
|
|
16
|
-
float size = 0.03;
|
|
17
|
-
|
|
18
|
-
vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
19
|
-
vec2 scale;
|
|
20
|
-
scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
|
|
21
|
-
scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
|
|
22
|
-
|
|
23
|
-
bool isPerspective = isPerspectiveMatrix( projectionMatrix );
|
|
24
|
-
if ( isPerspective ) scale *= - mvPosition.z;
|
|
25
|
-
|
|
26
|
-
vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;
|
|
27
|
-
vec2 rotatedPosition;
|
|
28
|
-
rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
|
|
29
|
-
rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
|
|
30
|
-
mvPosition.xy += rotatedPosition;
|
|
31
|
-
|
|
32
|
-
gl_Position = projectionMatrix * mvPosition;
|
|
33
|
-
}
|
|
34
|
-
`,fragmentShader:`
|
|
35
|
-
void main() {
|
|
36
|
-
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
|
|
37
|
-
}
|
|
38
|
-
`}),[E]);return n.createElement("group",(0,i.default)({},A,{ref:K}),T&&!et&&n.createElement("mesh",{castShadow:j,receiveShadow:S,ref:X},F||n.createElement("planeGeometry",null),C||n.createElement("shaderMaterial",{side:l.DoubleSide,vertexShader:ea.vertexShader,fragmentShader:ea.fragmentShader})))});e.s(["Html",0,y],60099)},8418,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(28600),n=e.i(30297),a=e.i(82897),o=e.i(60099),l=e.i(43257),s=e.i(90072),u=e.i(67561),c=e.i(66326),d=e.i(85709);let f=(e,t,r,i)=>{let n=e*Math.PI/180,a=r*Math.PI/180,o=(r-e)*Math.PI/180,l=(i-t)*Math.PI/180,s=Math.sin(o/2)*Math.sin(o/2)+Math.cos(n)*Math.cos(a)*Math.sin(l/2)*Math.sin(l/2);return 2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s))*6371e3},h=()=>{let e=(0,r.useRef)(),[i,n]=(0,r.useState)(null),{subscribe:a,unsubscribe:o}=(0,u.useOcearoContext)(),l=(0,d.useSignalKPath)("navigation.position");return(0,r.useEffect)(()=>{l&&!i&&n({latitude:l.latitude,longitude:l.longitude})},[l,i]),(0,r.useEffect)(()=>{if(e.current){let t=new s.BufferGeometry,r=[];for(let e=0;e<=64;e++){let t=e/64*Math.PI*2;r.push(50*Math.cos(t),0,50*Math.sin(t))}t.setAttribute("position",new s.Float32BufferAttribute(r,3)),e.current.geometry=t}},[]),(0,r.useEffect)(()=>{if(!i||!l||!e.current)return;let t=f(i.latitude,i.longitude,i.latitude,l.longitude),r=f(i.latitude,i.longitude,l.latitude,i.longitude),n=l.longitude>i.longitude?t:-t,a=l.latitude>i.latitude?r:-r;e.current.position.set(n,-6.9,a)},[i,l]),(0,t.jsx)("line",{ref:e,children:(0,t.jsx)("lineBasicMaterial",{attach:"material",color:u.oYellow,linewidth:3,transparent:!0,opacity:.6})})};e.s(["default",0,({onUpdateInfoPanel:e})=>{let d=(0,r.useRef)(),{size:f}=(0,i.useThree)(),{nightMode:m}=(0,u.useOcearoContext)(),p=f.width/f.height;return(0,t.jsxs)(r.Suspense,{fallback:(0,t.jsx)(o.Html,{children:"Loading..."}),children:[(0,t.jsx)(a.PerspectiveCamera,{makeDefault:!0,fov:25,aspect:p,near:1,far:1e3,position:[32,10,-32]}),(0,t.jsx)(n.OrbitControls,{enableZoom:!0,enableRotate:!0,maxPolarAngle:Math.PI/2,minPolarAngle:Math.PI/4}),(0,t.jsx)(l.Environment,{files:"./assets/ocearo_env.hdr",background:!1}),(0,t.jsx)("ambientLight",{intensity:.2}),(0,t.jsx)("directionalLight",{position:[15,30,20],intensity:1.2,castShadow:!1,color:m?"#b0d8ff":"#ffffff"}),(0,t.jsx)("spotLight",{position:[0,50,100],intensity:.8,angle:.6,penumbra:1,color:m?"#4080ff":"#ffffff"}),(0,t.jsx)("pointLight",{position:[-10,10,-10],intensity:.5}),(0,t.jsx)(c.default,{ref:d,scale:[1.3,1.3,1.3],position:[0,-6,0],onUpdateInfoPanel:e}),(0,t.jsx)(h,{}),(0,t.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[0,-7,0],receiveShadow:!0,children:[(0,t.jsx)("planeGeometry",{args:[100,100]}),(0,t.jsx)("shaderMaterial",{uniforms:{uColor:{value:new s.Color(m?"#050505":"#0a0a0a")},uBlurRadius:{value:.15}},vertexShader:`
|
|
39
|
-
varying vec2 vUv;
|
|
40
|
-
void main() {
|
|
41
|
-
vUv = uv;
|
|
42
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
43
|
-
}
|
|
44
|
-
`,fragmentShader:`
|
|
45
|
-
uniform vec3 uColor;
|
|
46
|
-
uniform float uBlurRadius;
|
|
47
|
-
varying vec2 vUv;
|
|
48
|
-
|
|
49
|
-
void main() {
|
|
50
|
-
float distanceToCenter = length(vUv - vec2(0.5));
|
|
51
|
-
float alpha = smoothstep(0.5 - uBlurRadius, 0.5 + uBlurRadius, distanceToCenter);
|
|
52
|
-
gl_FragColor = vec4(uColor, 1.0 - alpha);
|
|
53
|
-
}
|
|
54
|
-
`})]})]})}],8418)},69675,e=>{e.n(e.i(8418))}]);
|
|
File without changes
|
/package/_next/static/{hlKDicTyNGfd7dmHqo5m5 → sct9rcMTcCyBLHTxQQ75-}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|