ocearo-ui
Version:
Ocean Robot UI: 3D visualization dashboard for signalk
9 lines • 7.39 kB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,88653,e=>{"use strict";e.i(47167);var t=e.i(43476),n=e.i(71645),o=e.i(31178),i=e.i(47414),l=e.i(74008),r=e.i(21476),s=e.i(72846),a=n,u=e.i(37806);function c(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class d extends a.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,n=(0,s.isHTMLElement)(e)&&e.offsetWidth||0,o=(0,s.isHTMLElement)(e)&&e.offsetHeight||0,i=this.props.sizeRef.current;i.height=t.offsetHeight||0,i.width=t.offsetWidth||0,i.top=t.offsetTop,i.left=t.offsetLeft,i.right=n-i.width-i.left,i.bottom=o-i.height-i.top}return null}componentDidUpdate(){}render(){return this.props.children}}function f({children:e,isPresent:o,anchorX:i,anchorY:l,root:r,pop:s}){let f=(0,a.useId)(),m=(0,a.useRef)(null),p=(0,a.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:h}=(0,a.useContext)(u.MotionConfigContext),x=function(...e){return n.useCallback(function(...e){return t=>{let n=!1,o=e.map(e=>{let o=c(e,t);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let t=0;t<o.length;t++){let n=o[t];"function"==typeof n?n():c(e[t],null)}}}}(...e),e)}(m,e.props?.ref??e?.ref);return(0,a.useInsertionEffect)(()=>{let{width:e,height:t,top:n,left:a,right:u,bottom:c}=p.current;if(o||!1===s||!m.current||!e||!t)return;let d="left"===i?`left: ${a}`:`right: ${u}`,x="bottom"===l?`bottom: ${c}`:`top: ${n}`;m.current.dataset.motionPopId=f;let b=document.createElement("style");h&&(b.nonce=h);let g=r??document.head;return g.appendChild(b),b.sheet&&b.sheet.insertRule(`
[data-motion-pop-id="${f}"] {
position: absolute !important;
width: ${e}px !important;
height: ${t}px !important;
${d}px !important;
${x}px !important;
}
`),()=>{g.contains(b)&&g.removeChild(b)}},[o]),(0,t.jsx)(d,{isPresent:o,childRef:m,sizeRef:p,pop:s,children:!1===s?e:a.cloneElement(e,{ref:x})})}let m=({children:e,initial:o,isPresent:l,onExitComplete:s,custom:a,presenceAffectsLayout:u,mode:c,anchorX:d,anchorY:m,root:h})=>{let x=(0,i.useConstant)(p),b=(0,n.useId)(),g=!0,C=(0,n.useMemo)(()=>(g=!1,{id:b,initial:o,isPresent:l,custom:a,onExitComplete:e=>{for(let t of(x.set(e,!0),x.values()))if(!t)return;s&&s()},register:e=>(x.set(e,!1),()=>x.delete(e))}),[l,x,s]);return u&&g&&(C={...C}),(0,n.useMemo)(()=>{x.forEach((e,t)=>x.set(t,!1))},[l]),n.useEffect(()=>{l||x.size||!s||s()},[l]),e=(0,t.jsx)(f,{pop:"popLayout"===c,isPresent:l,anchorX:d,anchorY:m,root:h,children:e}),(0,t.jsx)(r.PresenceContext.Provider,{value:C,children:e})};function p(){return new Map}var h=e.i(64978);let x=e=>e.key||"";function b(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}let g=({children:e,custom:r,initial:s=!0,onExitComplete:a,presenceAffectsLayout:u=!0,mode:c="sync",propagate:d=!1,anchorX:f="left",anchorY:p="top",root:g})=>{let[C,j]=(0,h.usePresence)(d),E=(0,n.useMemo)(()=>b(e),[e]),k=d&&!C?[]:E.map(x),w=(0,n.useRef)(!0),y=(0,n.useRef)(E),v=(0,i.useConstant)(()=>new Map),P=(0,n.useRef)(new Set),[M,S]=(0,n.useState)(E),[I,T]=(0,n.useState)(E);(0,l.useIsomorphicLayoutEffect)(()=>{w.current=!1,y.current=E;for(let e=0;e<I.length;e++){let t=x(I[e]);k.includes(t)?(v.delete(t),P.current.delete(t)):!0!==v.get(t)&&v.set(t,!1)}},[I,k.length,k.join("-")]);let A=[];if(E!==M){let e=[...E];for(let t=0;t<I.length;t++){let n=I[t],o=x(n);k.includes(o)||(e.splice(t,0,n),A.push(n))}return"wait"===c&&A.length&&(e=A),T(b(e)),S(E),null}let{forceRender:R}=(0,n.useContext)(o.LayoutGroupContext);return(0,t.jsx)(t.Fragment,{children:I.map(e=>{let n=x(e),o=(!d||!!C)&&(E===I||k.includes(n));return(0,t.jsx)(m,{isPresent:o,initial:(!w.current||!!s)&&void 0,custom:r,presenceAffectsLayout:u,mode:c,root:g,onExitComplete:o?void 0:()=>{if(P.current.has(n)||(P.current.add(n),!v.has(n)))return;v.set(n,!0);let e=!0;v.forEach(t=>{t||(e=!1)}),e&&(R?.(),T(y.current),d&&j?.(),a&&a())},anchorX:f,anchorY:p,children:e},n)})})};e.s(["AnimatePresence",()=>g],88653)},2936,e=>{"use strict";var t=e.i(43476);e.i(71645);var n=e.i(46932),o=e.i(88653),i=e.i(49721),l=e.i(68757),r=e.i(83402),s=e.i(81694),a=e.i(48390);e.i(85269);var u=e.i(22831);e.s(["default",0,({currentViewMode:e,toggleViewMode:c,handleSetRightView:d,toggleSettings:f,toggleFullscreen:m,setShowAppMenu:p})=>{let{t:h}=(0,u.useTranslation)(),x=(0,a.isOcearoCoreEnabled)(),b=r.default.get("debugMode"),g=({icon:e,label:n,onClick:o})=>(0,t.jsxs)("button",{onClick:()=>{o(),p(!1)},className:"flex items-center text-hud-main px-2 py-2 sm:px-4 sm:py-3 rounded-xl tesla-hover transition-all duration-200 group bg-hud-bg shadow-soft border border-hud",children:[(0,t.jsx)("div",{className:"w-7 h-7 sm:w-8 sm:h-8 flex items-center justify-center bg-hud-elevated rounded-lg mr-2 sm:mr-3 group-hover:scale-110 transition-transform shrink-0",children:(0,t.jsx)(i.FontAwesomeIcon,{icon:e,className:"text-sm sm:text-base text-hud-muted group-hover:text-hud-main transition-colors"})}),(0,t.jsx)("span",{className:"hidden sm:block text-xs sm:text-sm font-bold uppercase tracking-widest truncate",children:n})]});return(0,t.jsx)(o.AnimatePresence,{children:(0,t.jsx)(n.motion.div,{initial:{y:20,x:"-50%",opacity:0,scale:.95},animate:{y:0,x:"-50%",opacity:1,scale:1},exit:{y:20,x:"-50%",opacity:0,scale:.95},transition:{duration:.3,ease:[.16,1,.3,1]},className:"fixed bottom-20 left-1/2 bg-hud-bg backdrop-blur-xl p-3 sm:p-6 rounded-3xl shadow-2xl z-50 w-[95vw] sm:w-full max-w-lg border border-hud ocearo-appmenu-scroll",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2 sm:gap-4",children:[e!==s.VIEW_MODES.SPLIT&&(0,t.jsx)(g,{icon:l.faExpand,label:h("menu.splitView"),onClick:()=>c(s.VIEW_MODES.SPLIT)}),e!==s.VIEW_MODES.APP&&(0,t.jsx)(g,{icon:l.faExpand,label:h("menu.fullView"),onClick:()=>c(s.VIEW_MODES.APP)}),(0,t.jsx)(g,{icon:l.faChartLine,label:h("menu.dashboard"),onClick:()=>d("dashboard")}),x&&(0,t.jsx)(g,{icon:l.faBook,label:h("menu.logbook"),onClick:()=>d("logbook")}),(0,t.jsx)(g,{icon:l.faCompass,label:h("menu.autopilot"),onClick:()=>d("autopilot")}),e!==s.VIEW_MODES.BOAT&&(0,t.jsx)(g,{icon:l.faShip,label:h("menu.boatView"),onClick:()=>c(s.VIEW_MODES.BOAT)}),(0,t.jsx)(g,{icon:l.faHandsHelping,label:h("menu.manual"),onClick:()=>d("manual")}),(0,t.jsx)(g,{icon:l.faTachometerAlt,label:h("menu.instruments"),onClick:()=>d("instrument")}),(0,t.jsx)(g,{icon:l.faVideo,label:h("menu.webcam"),onClick:()=>d("webcam1")}),(0,t.jsx)(g,{icon:l.faMapMarkedAlt,label:h("menu.navigation"),onClick:()=>d("navigation")}),(0,t.jsx)(g,{icon:l.faCogs,label:h("menu.settings"),onClick:f}),(0,t.jsx)(g,{icon:l.faCloudSun,label:h("menu.weather"),onClick:()=>d("weather")}),(0,t.jsx)(g,{icon:l.faBatteryFull,label:h("menu.battery"),onClick:()=>d("battery")}),(0,t.jsx)(g,{icon:l.faExclamationTriangle,label:h("menu.engine"),onClick:()=>d("motor")}),(0,t.jsx)(g,{icon:l.faHeadphones,label:h("menu.mediaPlayer"),onClick:()=>d("mediaplayer")}),(0,t.jsx)(g,{icon:l.faExpand,label:h("menu.toggleFullscreen"),onClick:m}),b&&(0,t.jsx)(g,{icon:l.faBug,label:h("menu.debug"),onClick:()=>d("debug")}),(0,t.jsx)(g,{icon:l.faSyncAlt,label:h("menu.refresh"),onClick:()=>{window.location.reload()}})]})})})}])},85626,e=>{e.n(e.i(2936))}]);