@esrf/daiquiri-lib 1.0.0 → 1.0.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/dist/index.d.ts +8 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +176 -150
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/scss/_panel.scss +8 -18
package/dist/index.d.ts
CHANGED
|
@@ -558,6 +558,8 @@ interface Props$1 {
|
|
|
558
558
|
id: string;
|
|
559
559
|
layout: YamlRoot;
|
|
560
560
|
className?: string;
|
|
561
|
+
unhandledComponentDidCatch?: (error: Error, setStateCallback: (data: Record<string, any>) => void) => void;
|
|
562
|
+
UnhandledErrorComponent?: React.ComponentType<any>;
|
|
561
563
|
}
|
|
562
564
|
declare function Main(props: Props$1): JSX.Element;
|
|
563
565
|
|
|
@@ -566,10 +568,12 @@ interface State {
|
|
|
566
568
|
message: string;
|
|
567
569
|
error?: Error;
|
|
568
570
|
}
|
|
569
|
-
|
|
571
|
+
interface Props {
|
|
570
572
|
resetKey?: any;
|
|
571
|
-
|
|
572
|
-
|
|
573
|
+
unhandledComponentDidCatch?: (error: Error, setStateCallback: (data: Record<string, any>) => void) => void;
|
|
574
|
+
UnhandledErrorComponent?: React__default.ComponentType<any>;
|
|
575
|
+
}
|
|
576
|
+
declare class ErrorBoundary extends Component<PropsWithChildren<Props>, State> {
|
|
573
577
|
constructor(props: Props);
|
|
574
578
|
static getDerivedStateFromError(): {
|
|
575
579
|
hasError: boolean;
|
|
@@ -577,7 +581,7 @@ declare class ErrorBoundary extends Component<Props, State> {
|
|
|
577
581
|
private readonly reload;
|
|
578
582
|
componentDidCatch(error: Error): void;
|
|
579
583
|
componentDidUpdate(prevProps: Props, prevState: State): void;
|
|
580
|
-
render():
|
|
584
|
+
render(): React__default.ReactNode;
|
|
581
585
|
}
|
|
582
586
|
|
|
583
587
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),w=require("lodash"),a=require("react-bootstrap"),m=require("react"),he=require("classnames"),fe=require("debug"),q=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},S=q(he),me=q(fe);function pe(e){const{activeMessage:t="Online",inactiveMessage:r="Offline",message:s="This device is"}=e;return n.jsx("div",{className:`dot-indicator small bg-${e.online?"success":"danger"}`,title:`${s} ${e.online?t:r}`})}function b(e){const{name:t,icon:r}=e;return n.jsxs("div",{className:"icon",title:t,children:[n.jsx("i",{className:`fa ${r}`}),n.jsx(pe,{...e})]})}function xe(e){const t={24:"Y",21:"Z",18:"E",15:"P",12:"T",9:"G",6:"M",3:"k","-3":"m","-6":"µ","-9":"n","-12":"p","-15":"f","-18":"a","-21":"z","-24":"y"},r=Math.log(e)/Math.log(1e3),s=!Number.isInteger(r),i=3*Math.ceil(r-(s?1:0)),o=i===0?"":t[i];return{scalar:e*10**-i,prefix:o,multiplier:10**-i}}function ge(e){return e.charAt(0).toUpperCase()+e.slice(1)}function G(e){if(e<60)return`${Math.round(e)} sec`;const t=Math.round(e/60),r=t%60,s=Math.floor(t/60);return s?`${s} hr ${r} min`:`${r} min`}function je(e){return e>0?(662607004e-42*299792458/(e*1e-10)/160218e-24*.001).toFixed(4):0}function we(e,t){return Number.parseFloat(e.toFixed(t))}const ye=Object.freeze(Object.defineProperty({__proto__:null,formatEng:xe,round:we,toEnergy:je,toHoursMins:G,ucfirst:ge},Symbol.toStringTag,{value:"Module"}));function ve(e){const{hardware:t}=e;function r(d){t.requestChange({function:"reset"})}const s={"Front End":"feitlk",Experimental:"expitlk",PSS:"pssitlk"},i={Current:`${t.properties.current.toFixed(1)} mA`,Mode:t.properties.mode,Refill:G(t.properties.refill),Message:n.jsx("pre",{children:t.properties.message})};function o(d){if(!(d in t.properties))return"UNKNOWN";const l=t.properties[d];return!l||typeof l!="string"?"UNKNOWN":l}return n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[t.name," Details"]}),n.jsxs(a.Popover.Body,{children:[n.jsx("h6",{children:"Status"}),n.jsx("pre",{children:t.properties.status}),n.jsx("h6",{children:"Interlocks"}),n.jsx(a.Container,{children:w.map(s,(d,l)=>n.jsxs(a.Row,{children:[n.jsxs(a.Col,{children:[l,":"]}),n.jsx(a.Col,{children:n.jsx(a.Badge,{bg:o(d)==="ON"?"success":"danger",children:o(d)})})]},l))}),n.jsx("h6",{children:"Ring Status"}),n.jsx(a.Container,{children:w.map(i,(d,l)=>n.jsxs(a.Row,{children:[n.jsxs(a.Col,{children:[l,":"]}),n.jsx(a.Col,{children:d})]},l))}),n.jsx("div",{className:"d-grid gap-2",children:n.jsx(a.Button,{disabled:e.disabled,onClick:r,children:"Reset"})})]})]}),children:n.jsx(a.Button,{className:"flex-grow-0",title:"Shutter Details",children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function be(e){const{hardware:t,options:r={}}=e;function s(i){t.requestChange({function:t.properties.frontend==="FE open"?"close":"open"})}return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[n.jsx(b,{name:"Frontend",icon:"fam-hardware-frontend",online:t.online}),n.jsx("div",{className:"name",children:t.name}),n.jsx(a.Badge,{bg:t.properties.state==="OPEN"||t.properties.state==="RUNNING"?"success":"danger",children:t.properties.state})]}),n.jsx("div",{className:"hw-content",children:n.jsxs(a.ButtonGroup,{className:"d-flex",children:[n.jsx(a.Button,{variant:t.properties.frontend==="FE open"?"danger":"success",onClick:s,disabled:e.disabled,children:t.properties.frontend==="FE open"?"Close":"Open"}),n.jsx(ve,{...e})]})})]})}function Ne(e){const{hardware:t,options:r={}}=e;function s(){const i=r.property;if(i===void 0)return"property is not set";if(i===null)return"property is null";let o=t;for(const d of i.split("/"))if(o=o[d],o===void 0)return`property '${i}' not found`;return`${o}`}return n.jsx(n.Fragment,{children:s()})}function O(e){const{headerMode:t,hardware:r}=e;function s(){return r.alias?r.alias:r.name?r.name:r.id}const i=s();switch(t){case"front":return n.jsx("div",{className:"hw-component",children:n.jsxs("div",{className:"hw-single",children:[e.widgetIcon,n.jsx("div",{className:"name",children:i}),n.jsx("div",{className:"d-inline-block",children:e.widgetContent})]})});case"none":return n.jsx("div",{className:"hw-component",children:n.jsx("div",{className:"hw-single",children:e.widgetContent})});case"state":return e.widgetState;default:return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[e.widgetIcon,n.jsx("div",{className:"name",children:n.jsx(a.Form.Label,{htmlFor:r.id,children:i})}),e.widgetState,e.hardware.errors&&e.hardware.errors.length>0&&n.jsx(a.OverlayTrigger,{trigger:"click",placement:"bottom",rootClose:!0,overlay:n.jsxs(a.Popover,{id:e.hardware.id,style:{maxWidth:500},children:[n.jsx(a.Popover.Header,{children:"Device Errors"}),n.jsxs(a.Popover.Body,{children:["There were errors with properties on this device:",n.jsx("ul",{children:e.hardware.errors.map(o=>n.jsxs("li",{children:[o.property,":",n.jsxs("span",{className:"stack-trace",children:[o.traceback,n.jsx("br",{}),o.exception]})]}))})]})]}),children:n.jsx(a.Button,{variant:"danger",size:"sm",children:n.jsx("i",{className:"fa fa-exclamation-triangle"})})})]}),n.jsx("div",{className:"hw-content",children:e.widgetContent})]})}}function H(e){const t={display:"inline-block",minWidth:""};return e.minWidth&&(t.minWidth=`${e.minWidth}em`),n.jsx("div",{style:t,children:n.jsx(a.Badge,{bg:e.variant,children:e.state})})}function K(e){const{hardware:t}=e;function r(){if(!t.online)return"OFFLINE";let i="UNKNOWN";return e.hardware.properties.state&&([i]=e.hardware.properties.state),i}const s=r();return n.jsx(H,{state:s,minWidth:6,variant:s==="READY"?"success":"warning"})}function z(e){const{hardware:t}=e;function r(){if(!t.online)return"OFFLINE";const o=t.properties.state;return e.useReadyState&&(o==="OPEN"||o==="CLOSED")?"READY":o}const s=r();function i(){switch(s){case"READY":return"success";case"OPEN":return"success";case"CLOSED":return"danger";case"DISABLED":return"secondary";case"MOVING":case"STANDBY":case"OFFLINE":return"warning";case"FAULT":return"fatal";default:return"fatal"}}return n.jsx(H,{state:s,minWidth:6,variant:i()})}const Ce=Object.freeze(Object.defineProperty({__proto__:null,HardwareState:H,MotorState:K,ShutterState:z},Symbol.toStringTag,{value:"Module"})),Se=m.forwardRef((e,t)=>{const r=m.useRef(null),[s,i]=m.useState(e.step),o=j=>{const k=t;if(r.current===null)return;let B=Number.parseFloat(k.current.value);const V=Number.parseFloat(r.current.value);B+=j?V:-V,k.current.value=`${B}`,e.onStep&&e.onStep({target:k.current})},{onStep:d,step:l,overlay:h,incIcon:u,decIcon:c,swapIncDec:f,onKeyDown:g,horizontalArrows:N,largeArrows:F,...v}=e,_=j=>{j.key==="ArrowUp"?(j.preventDefault(),o(!0)):j.key==="ArrowDown"?(j.preventDefault(),o(!1)):g&&g(j)};if(!e.step)return n.jsx(a.Form.Control,{ref:t,type:"number",step:"any",onKeyDown:_,...v});const ue=w.map(e.steps||[e.step],j=>n.jsx("option",{value:j,children:j},j));return n.jsx("div",{className:S.default("numeric-step",{"numeric-step-large":F,"numeric-step-horizontal":N}),children:n.jsxs(a.InputGroup,{children:[n.jsx(a.Form.Control,{onKeyDown:_,ref:t,type:"number",step:"any",...v}),n.jsxs(n.Fragment,{children:[h,!h&&n.jsxs(a.InputGroup.Text,{className:"d-flex flex-column",children:[n.jsx(a.Form.Control,{ref:r,as:"select",className:"step-size",defaultValue:s,onChange:j=>i(Number.parseFloat(j.target.value)),children:ue}),e.unit&&n.jsx("div",{children:e.unit}),!u&&!c&&n.jsxs(n.Fragment,{children:[n.jsx(a.Button,{className:"step step-up",disabled:e.disabled,onClick:j=>o(!0)}),n.jsx(a.Button,{className:"step step-down",disabled:e.disabled,onClick:j=>o(!1)})]})]}),c&&f&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!1),children:n.jsx("i",{className:`fa fa-fw fa-${c}`})}),u&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!0),children:n.jsx("i",{className:`fa fa-fw fa-${u}`})}),c&&!f&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!1),children:n.jsx("i",{className:`fa fa-fw fa-${c}`})})]})]})})}),U=Se;function W(e){const t=m.useRef(null),[r,s]=m.useState(!1),[i,o]=m.useState(!1);m.useEffect(()=>{t.current&&(e.hardwareValue===null?t.current.value="":t.current.value=e.hardwareValue.toString(),s(!1))},[e.hardwareValue]);function d(f){let g=f;e.precision!==void 0&&(g=Number.parseFloat(g).toFixed(e.precision)),t!=null&&t.current&&(t.current.value=g)}function l(){r&&setTimeout(()=>{d(e.hardwareValue),s(!1)},3e3)}function h(f){e.hardwareValue!==null&&(s(!0),t!=null&&t.current&&(t.current.value=f.target.value),f.target.value===e.hardwareValue.toString()&&s(!1))}function u(f){s(!1),e.onMoveRequested(f.target.value)}function c(f){switch(f.key){case"Enter":{s(!1);const g=Number.parseFloat(f.target.value),N=e.onMoveRequested(g);N&&N.catch(()=>{o(!0),setTimeout(()=>{d(e.hardwareValue),o(!1)},2e3)})}f.preventDefault(),f.stopPropagation();break;case"Esc":case"Escape":r&&(o(!1),s(!1),d(e.hardwareValue)),f.target.blur(),f.preventDefault(),f.stopPropagation();break}}return n.jsx(U,{id:e.id,className:S.default({"form-control-edited":r,"form-control-error":i,"hw-moving":e.hardwareIsMoving}),type:e.readOnly?"text":"number",ref:t,precision:e.precision,onChange:h,onBlur:l,onStep:u,onKeyDown:c,disabled:e.hardwareIsDisabled||e.readOnly||!e.hardwareIsReady,step:e.step,steps:e.steps,incIcon:e.incIcon,decIcon:e.decIcon,swapIncDec:e.swapIncDec,horizontalArrows:e.horizontalArrows,largeArrows:e.largeArrows,overlay:e.hardwareIsMoving&&!e.hardwareIsDisabled?n.jsx(a.Button,{variant:"danger",onClick:e.onAbortRequested,children:n.jsx("i",{className:"fa fa-times"})}):null})}function D(e){const t=m.useRef(null),[r,s]=m.useState(!1),[i,o]=m.useState(!1);function d(c){return e.precision!==void 0?Number.parseFloat(c).toFixed(e.precision):c}m.useEffect(()=>{var c;t.current&&(t.current.value=d((c=e.hardwareValue)==null?void 0:c.toString()),s(!1))},[e.hardwareValue,e.precision]);function l(c){const f=d(c);t!=null&&t.current&&(t.current.value=f)}function h(c){switch(c.key){case"Enter":{s(!1);const f=Number.parseFloat(c.target.value),g=e.onMoveRequested(f);g&&g.catch(()=>{o(!0),setTimeout(()=>{l(e.hardwareValue),o(!1)},2e3)}),c.preventDefault(),c.stopPropagation();break}case"Esc":case"Escape":r&&(o(!1),s(!1),l(e.hardwareValue)),c.target.blur(),c.preventDefault(),c.stopPropagation();break}}function u(c){s(!0),c.target,t!=null&&t.current&&(t.current.value=c.target.value),c.target.value===e.hardwareValue.toString()&&s(!1)}return n.jsx(a.Form.Control,{className:S.default({"form-control-edited":r,"form-control-error":i,"hw-moving":e.hardwareIsMoving}),type:"number",ref:t,onChange:u,onKeyDown:h,disabled:e.readOnly||e.hardwareIsMoving||e.hardwareIsDisabled,step:e.step})}function Oe(e){function t(i){return e.hardware.requestChange({property:"velocity",value:i})}function r(i){return e.hardware.requestChange({property:"acceleration",value:i})}let s="UNKNOWN";return e.hardware.properties.state&&([s]=e.hardware.properties.state),n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[e.hardware.name," details"]}),n.jsxs(a.Popover.Body,{children:[n.jsxs(a.Form.Group,{children:[n.jsx(a.Form.Label,{children:"Velocity"}),n.jsx(D,{hardwareValue:e.hardware.properties.velocity,onMoveRequested:t,hardwareIsDisabled:e.disabled,hardwareIsReady:s==="READY",hardwareIsMoving:s==="MOVING",readOnly:e.readOnly})]}),n.jsxs(a.Form.Group,{children:[n.jsx(a.Form.Label,{children:"Acceleration"}),n.jsx(D,{hardwareValue:e.hardware.properties.acceleration,onMoveRequested:r,hardwareIsDisabled:e.disabled,hardwareIsReady:s==="READY",hardwareIsMoving:s==="MOVING",readOnly:e.readOnly})]})]})]}),children:n.jsx(a.Button,{children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function Ee(e){const{hardware:t,options:r={}}=e;function s(){t.requestChange({function:"stop"})}function i(u){return t.requestChange({property:"position",value:u,function:"move"})}let o="UNKNOWN";e.hardware.properties.state&&([o]=e.hardware.properties.state);const d=n.jsx(b,{name:"Motor",icon:"fam-hardware-motor",online:t.online}),l=n.jsx(K,{hardware:t}),h=e.options?e.options.header:"top";return n.jsx(O,{hardware:t,widgetIcon:d,widgetState:l,widgetContent:n.jsxs(a.InputGroup,{children:[n.jsx(W,{id:t.id,hardwareValue:t.properties.position,hardwareIsDisabled:e.disabled,hardwareIsReady:o==="READY",hardwareIsMoving:o==="MOVING",onMoveRequested:i,onAbortRequested:s,precision:r.precision,readOnly:r.readOnly,step:r.step,steps:r.steps,incIcon:r.incicon,decIcon:r.decicon,swapIncDec:r.swapincdec,horizontalArrows:r.horizontalarrows,largeArrows:r.largearrows}),t.properties.unit&&n.jsx(a.InputGroup.Text,{children:t.properties.unit}),o!=="MOVING"&&r.extended&&n.jsx(Oe,{hardware:t,disabled:e.disabled,readOnly:r.readOnly}),o==="MOVING"&&!e.disabled&&!r.step&&n.jsx(a.Button,{variant:"danger",onClick:s,children:n.jsx("i",{className:"fa fa-times"})})]}),headerMode:h})}function Me(e){const{hardware:t,options:r={}}=e,s=m.useRef(null);m.useEffect(()=>{if(!s.current){console.error("selectionRef ref is unset");return}s.current.value=t.properties.position},[t.properties.position]);function i(l){if(console.debug("change",l),!s||!s.current){console.error("selection ref is unset");return}t.requestChange({value:s.current.value,function:"move"})}function o(l){t.requestChange({function:"stop"})}const d=w.map(t.properties.positions,l=>n.jsx("option",{title:l.description,children:l.position},l.position));return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[n.jsx(b,{name:"Multiposition",icon:"fam-hardware-multiposition",online:t.online}),n.jsx("div",{className:"name",children:t.name}),n.jsx(a.Badge,{bg:t.properties.state==="READY"?"success":"warning",children:t.properties.state})]}),n.jsx("div",{className:"hw-content",children:n.jsxs(a.InputGroup,{children:[n.jsxs(a.Form.Control,{className:"custom-select",as:"select",ref:s,disabled:e.disabled,defaultValue:t.properties.position,children:[n.jsx("option",{disabled:!0,children:"unknown"}),d]}),t.properties.state!=="MOVING"&&n.jsx(a.Button,{onClick:i,disabled:e.disabled,children:"Move"}),t.properties.state==="MOVING"&&!e.disabled&&n.jsx(a.Button,{variant:"danger",onClick:o,children:n.jsx("i",{className:"fa fa-times"})})]})})]})}const Ae=me.default("daiquiri.components.hardware.NoObject");function Ie(e){if(e.options.emptyifnone)return Ae('Component id:"%s" name:"%s" not displayed cause setup with emptyifnone.',e.id,e.name),n.jsx(n.Fragment,{});const t=n.jsx(b,{name:"NoObject",icon:"fam-hardware-any",online:!1}),r=n.jsx(n.Fragment,{}),s=n.jsx(n.Fragment,{children:"Missing"}),i=e.options?e.options.header:"top",o={id:e.id,name:e.name??"",alias:null,online:!1,properties:{},type:""};return n.jsx(O,{hardware:o,widgetIcon:t,widgetState:r,widgetContent:s,headerMode:i})}function Fe(e){const t=e.online?"READY":"OFFLINE";return n.jsx(a.Badge,{bg:t==="READY"?"success":"warning",children:t})}function ke(e){const{hardware:t,options:r={}}=e,s=n.jsx(b,{name:"Optic",icon:"fa-cog",online:t.online}),i=n.jsx(Fe,{...t});function o(){const c=r.property;if(c===void 0)return"property is not set";if(c===null)return"property is null";let f=t;for(const g of c.split("/"))if(f=f[g],f===void 0)return`property '${c}' not found`;return`${f}`}function d(){const c=r.unit;if(!c)return null;if(!c.includes("properties"))return c;let f=e;for(const g of c.split("/"))if(f=f[g],f===void 0)return null;return`${f}`}const l=d(),h=n.jsxs(a.InputGroup,{children:[n.jsx(a.Form.Control,{value:o(),readOnly:!0}),l&&n.jsx(a.InputGroup.Text,{children:l})]}),u=e.options.header||"top";return n.jsx(O,{hardware:t,widgetIcon:s,widgetState:i,widgetContent:h,headerMode:u})}function De(e){const{hardware:t}=e,r=()=>{t.requestChange({function:"reset"})};return n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[t.name," Details"]}),n.jsxs(a.Popover.Body,{children:[n.jsx("h6",{children:"Status"}),n.jsx("pre",{children:t.properties.status}),n.jsx("div",{className:"d-grid gap-2",children:n.jsx(a.Button,{onClick:r,disabled:e.disabled,children:"Reset"})})]})]}),children:n.jsx(a.Button,{className:"flex-grow-0",title:"Shutter Details",children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function $e(e){const{hardware:t,options:r={}}=e,s=n.jsx(b,{name:"Shutter",icon:"fam-hardware-shutter",online:t.online}),i=n.jsx(z,{hardware:t});function o(){return t.properties?t.properties.state:"UNKNOWN"}function d(v){return v==="OPEN"?["Close","close"]:v==="CLOSED"?["Open","open"]:v==="DISABLED"||v==="STANDBY"||v==="FAULT"?["Closed",""]:v==="MOVING"?["...",""]:["Unknown",""]}const l=o(),[h,u]=d(l),f={OPEN:"danger",CLOSED:"success",MOVING:"warning",DISABLED:"secondary",STANDBY:"danger",FAULT:"fatal",UNKNOWN:"warning"}[l]||"danger";function g(){t.requestChange({function:u})}const N=n.jsxs(a.ButtonGroup,{className:"d-flex flex-nowrap",children:[n.jsx(a.Button,{variant:f,onClick:g,disabled:e.disabled||u==="",children:h}),r.extended&&n.jsx(De,{...e})]}),F=e.options.header||"top";return n.jsx(O,{hardware:t,widgetIcon:s,widgetState:i,widgetContent:N,headerMode:F})}class Pe extends m.Component{constructor(){super(...arguments),this.variants={}}render(){let t=this.variants.default;return this.props.options.variant in this.variants&&(t=this.variants[this.props.options.variant]),n.jsx(t,{...this.props})}}function Z(e){const[t,r]=m.useState({}),s=m.useRef(null);return m.useEffect(()=>{if(s.current){const i=s.current;r({width:i.clientWidth,height:i.clientHeight})}},[]),n.jsx("div",{ref:s,style:{width:"100%",height:"100%"},className:e.className,children:t.width>0&&n.jsx("div",{className:"full-sizer",style:{width:`${t.width}px`,height:`${t.height}px`,overflow:"scroll"},children:e.children})})}function Re(e){return n.jsx("div",{className:"panel-header",style:e.style,children:e.children})}function Te(e){return n.jsx("div",{className:"panel-contents",style:e.style,children:e.children})}function p(e){const t=e.scroll?Z:m.Fragment;return n.jsx("div",{className:`panel ${e.className??""}`,style:e.style,children:n.jsx(t,{children:e.children})})}p.Header=Re;p.Contents=Te;const He=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),_e=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),M={};function J(e,t){M[e]=t}function y(e,t,r=!0){if(!e)return n.jsx(n.Fragment,{});const{type:s}=e,i=s&&s in M?M[s]:M.component;return n.jsx(i,{yamlNode:e,panel:r},t)}function Be({children:e,key:t,panel:r,options:s}){return r?n.jsx(p,{style:s.style,scroll:s.scroll,children:n.jsx(p.Contents,{children:e})},t):n.jsx(n.Fragment,{children:m.Children.map(e,i=>m.isValidElement(i)?m.cloneElement(i,{key:t,...i.props}):void 0)})}function Q(e,t){const{_parentNode:r,_indexFromParent:s,...i}=t;if(e&&Object.keys(i).length>0)throw new A(e,Object.keys(i))}class E extends Error{constructor(t,r){super(t),this.yamlNode=r}}class A extends E{constructor(t,r){super(`Unexpected keys: ${r.join(", ")}`,t),this.keys=r}}class C extends E{constructor(t,r){super(`Keys ${r.join(", ")} are missing`,t),this.keys=r}}class x extends E{constructor(t,r,s){super(`Key ${r} error: ${s}`,t),this.key=r,this.keyMessage=s}}function Ve(e){let t=e;for(;t._parentNode;)t=t._parentNode;return t}function Ye(e){const t=[];let r=e;for(;r;)t.push({node:r,indexFromParent:r._indexFromParent}),r=r._parentNode;return t.reverse(),t}function X(e,t=null,r=null){if(e._parentNode)throw new Error("Attribute _parentNode was already defined by the yml layout.");const s={...e,_parentNode:t,_indexFromParent:r};if(e.children){const i=[...e.children];Object.freeze(i),s.children=i.map((o,d)=>X(o,s,d))}return Object.freeze(s),s}function Le(e){return n.jsx(a.Alert,{variant:"danger",children:e.message})}function qe(e){const{error:t}=e;if(!(t instanceof E))return n.jsx(n.Fragment,{});function r(o,d=3){const l=Ye(o.yamlNode),h=[];let u="";for(let c=1;c<l.length;c++){const{node:f,indexFromParent:g}=l[c];h.push(`${u}children:`),u+=" ".repeat(d),g===1?h.push(`${u}- type: ...`):(g??0>1)&&h.push(`${u}...`,`${u}...`,`${u}# children number ${g??0+1}`),h.push(`${u}- type: ${f.type}`),u+=" ".repeat(2)}return o instanceof A?o.keys.forEach(c=>{h.push(`${u}${c}: ... ${" ".repeat(50-u.length-c.length)}<-- unexpected key`)}):o instanceof C?o.keys.forEach(c=>{h.push(`${u}???: ${" ".repeat(50-u.length-c.length)}<-- key **${c}** is expected`)}):o instanceof x&&h.push(`${u}${o.key}: ${" ".repeat(50-u.length-o.key.length)}<-- ${o.keyMessage}`),h.join(`
|
|
2
|
-
`)}const i=Ve(t.yamlNode).name;if(t instanceof A){const o=t.keys.length===1?"key":"keys";return n.jsxs(a.Alert,{variant:"danger",children:["Unexpected ",o," ",t.keys.map((d,l)=>n.jsxs(n.Fragment,{children:[l!==0&&", ",n.jsx("b",{children:d})]}))," ","from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]})}if(t instanceof C){const o=t.keys.length===1?"Key":"Keys";return n.jsxs(a.Alert,{variant:"danger",children:["Expected ",o," ",t.keys.map((d,l)=>n.jsxs(n.Fragment,{children:[l!==0&&", ",n.jsx("b",{children:d})]}))," ","from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]})}return t instanceof x?n.jsxs(a.Alert,{variant:"danger",children:["Error on key ",n.jsx("b",{children:t.key})," from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]}):n.jsx(Le,{...e})}const Y={hasError:!1,message:"",error:void 0};class ee extends m.Component{constructor(t){super(t),this.reload=()=>{window.location.reload()},this.state=Y}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){t instanceof E&&this.setState({hasError:!0,message:t.message,error:t})}componentDidUpdate(t,r){this.state.hasError&&r.error!==void 0&&t.resetKey!==this.props.resetKey&&this.setState(Y)}render(){return this.state.hasError?n.jsxs(a.Container,{className:"mt-2",children:[n.jsx("h4",{children:"Something went wrong"}),n.jsx(qe,{message:this.state.message,error:this.state.error}),n.jsxs("p",{children:["This error has been logged. Please"," ",n.jsxs(a.Button,{size:"sm",onClick:this.reload,children:[n.jsx("i",{className:"fa fa-refresh"})," Reload"]})," ","the application"]})]}):this.props.children}}function Ge(e,t,r){if(e&&r===void 0)throw new C(e,[t])}function Ke(e,t,r){if(typeof r!="string")throw new x(e,t,"A string is expected")}function ze(e,t,r){if(typeof r!="boolean")throw new x(e,t,"A boolean is expected")}function Ue(e,t,r){if(typeof r!="number")throw new x(e,t,"A number is expected")}function $(e,t,r){if(r!==void 0&&typeof r!="boolean")throw new x(e,t,"An optional boolean is expected")}function te(e,t,r){if(r!==void 0&&typeof r!="string")throw new x(e,t,"An optional string is expected")}function We(e,t,r){if(!Array.isArray(r))throw new x(e,t,"A list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"A list of string is expected")})}function Ze(e,t,r){if(r!==void 0&&typeof r!="string"){if(!Array.isArray(r))throw new x(e,t,"An optional string or list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"An optional string or list of string is expected")})}}function Je(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,t,"An optional list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"A optional list of string is expected")})}}function ne(e,t,r){if(r!==void 0&&typeof r!="number")throw new x(e,t,"An optional number is expected")}function Qe(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,t,"An optional list of numbers is expected");r.forEach(s=>{if(typeof s!="number")throw new x(e,t,"An optional list of numbers is expected")})}}function I(e,t){const{_parentNode:r,_indexFromParent:s,...i}=t;if(e&&Object.keys(i).length>0)throw new A(e,Object.keys(i))}function Xe(e,t,r){if(r!=="last"&&typeof r!="number")throw new x(e,t,'"last" or a number is expected')}function et(e,t,r){if(r!==void 0&&r!=="h5web"&&r!=="plotly")throw new x(e,t,'"h5web" or "plotly" string is expected')}const tt=Object.freeze(Object.defineProperty({__proto__:null,assertBoolean:ze,assertDataCollectionId:Xe,assertKeyExpected:Ge,assertNoUnknownKeys:I,assertNumber:Ue,assertOptionalBackend:et,assertOptionalBoolean:$,assertOptionalNumber:ne,assertOptionalNumberList:Qe,assertOptionalString:te,assertOptionalStringList:Je,assertOptionalStringOrStringList:Ze,assertString:Ke,assertStringList:We},Symbol.toStringTag,{value:"Module"}));function nt({yamlNode:e,panel:t}){const{type:r,style:s,children:i,...o}=e;return I(e,o),n.jsx(a.Row,{className:"ymllayout-row gx-0",style:s,children:w.map(i,(d,l)=>y(d,l,t))})}function rt({yamlNode:e,panel:t}){const{type:r,style:s,xs:i,children:o,...d}=e;return I(e,d),ne(e,"xs",i),n.jsx(a.Col,{className:S.default("yamymllayout-col",{col:!!i}),style:s,xs:i,children:w.map(e.children,(l,h)=>y(l,h,t))})}const P={};function st(e,t){P[e]=t}function it(e,t){if(t===void 0)throw new C(e,["id"]);if(typeof t.id!="string")throw new x(e,"id","A string is expected")}function ot(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,"ids","A option list is expected");r.forEach((s,i)=>{try{it(e,s)}catch{throw new x(e,"ids",`The hardware description ${i} is wrong`)}})}}function at(e){const{providers:t={},yamlNode:r,ids:s,groupid:i,even:o,nowrap:d,...l}=e;if(ot(r,"ids",s),te(r,"groupid",i),$(r,"even",o),$(r,"nowrap",d),I(r,l),!P.HardwareGroup)return n.jsx(a.Alert,{variant:"warning",children:"No `HardwareGroup` component registered"});const h=P.HardwareGroup;return n.jsx(h,{providers:t,ids:s,groupid:i,nowrap:d||!1,even:o||!1})}const R={hardwaregroup:at};function re(e,t){R[e]=t}function lt(e){Object.entries(e).forEach(([t,r])=>re(t,r))}function ct(e){const{yamlNode:t,panel:r}=e,{type:s,style:i,scroll:o,title:d,...l}=t;if(!(s in R))return n.jsx(p,{children:n.jsx(p.Contents,{children:n.jsxs(a.Alert,{variant:"warning",children:['Unknown component "',s,'"']})})});const h=R[t.type];return r?n.jsx(p,{style:i,scroll:o,children:n.jsxs(m.Suspense,{fallback:n.jsx("p",{children:"Loading..."}),children:[d&&n.jsx(p.Header,{children:d}),n.jsx(p.Contents,{children:n.jsx(h,{...l,yamlNode:t})})]})}):n.jsx(m.Suspense,{fallback:n.jsx("p",{children:"Loading..."}),children:n.jsx(h,{...l,yamlNode:t})})}function dt({yamlNode:e,panel:t}){const r=e.options||{};return n.jsx(a.Container,{className:"ymllayout-container",...r,children:w.map(e.children,(s,i)=>y(s,i,t))})}function ut(e){const{yamlNode:t}=e,r=t.options||{},s={};return r.centerContent&&(s.margin="auto"),n.jsxs(p,{className:"ymllayout-panel",...r,children:[t.title&&n.jsx(p.Header,{children:t.title}),n.jsx(p.Contents,{style:s,children:w.map(t.children,(i,o)=>y(i,o,!1))})]})}const ht=()=>Math.random().toString(36).slice(2,15)+Math.random().toString(36).slice(2,15);function ft({yamlNode:e,panel:t}){const r=[];return w.each(e.children,(s,i)=>{r.push(n.jsx(a.Tab,{eventKey:ht(),title:s.title,children:y(s,0,!1)},i))}),t?n.jsxs(p,{className:"ymllayout-tabs",children:[e.title&&n.jsx(p.Header,{children:e.title}),n.jsx(p.Contents,{children:n.jsx(a.Tabs,{mountOnEnter:!0,children:r})})]}):n.jsx(a.Tabs,{children:r})}function mt(e){const{node:t}=e,{type:r,title:s,...i}=t;return Q(t,i),n.jsx("div",{style:{gridColumn:"1 / 3"},children:n.jsx("h3",{children:s})})}function pt(e){const{node:t,state:r,row:s}=e,{title:i}=t;function o(){if(t.id)return t.id}function d(){if(i!==void 0)return i;if(t.type==="hardware"){const h=o(),u={_parentNode:t._parentNode,_indexFromParent:t._indexFromParent,type:"hardware",id:h,variant:"name",emptyifnone:!0};return y(u,"a",!1)}return""}const l=d();return n.jsxs("div",{style:{textAlign:"center"},children:[n.jsx("h5",{style:{margin:"0px",whiteSpace:"nowrap"},children:l}),r&&n.jsx("div",{style:{position:"relative",top:-5},children:r})]})}function xt(e){const{node:t,row:r}=e,{titlealign:s,title:i,stateinheader:o=!1,variant:d,id:l,...h}=t;let u,c;if(h.type==="hardware")if(u={...h,id:l,variant:d},o){const f={...h,id:l,variant:"state",emptyifnone:!0};c=y(f,"k",!1)}else c=null;else u=h,c=null;return n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{gridColumn:1,alignSelf:s??"center"},children:n.jsx(pt,{node:t,state:c,row:r})}),n.jsx("div",{style:{gridColumn:2},children:y(u,"k",!1)})]})}function gt(e){const{yamlNode:t,panel:r}=e,{type:s,children:i,options:o={},title:d,...l}=t;return Q(t,l),n.jsxs(p,{className:"ymllayout-form",...o,children:[t.title&&n.jsx(p.Header,{children:t.title}),n.jsx(p.Contents,{children:n.jsx("div",{style:{display:"grid",gridTemplateColumns:"min-content auto"},children:w.map(i,(h,u)=>h.type==="formheader"?n.jsx(mt,{node:h,row:u},u):n.jsx(xt,{node:h,row:u},u))})})]})}function jt(e){const{yamlNode:t,panel:r}=e;return n.jsxs("div",{className:"ymllayout-grid",style:{gridTemplateColumns:t.columns,gridTemplateRows:t.rows},children:[w.map(t.children,(s,i)=>{const{columnSpan:o=1,rowSpan:d=1,...l}=s,h=o>1?`span ${o}`:void 0,u=d>1?`span ${d}`:void 0;return n.jsx("div",{className:"ymllayout-grid-cell",style:{gridColumn:h,gridRow:u},children:y(l,i,r)},i)})," "]})}function wt({yamlNode:e,panel:t}){const r=e.options||{};return n.jsx(Be,{panel:t,options:r,children:n.jsx("div",{children:e.label})})}const se={row:nt,col:rt,container:dt,component:ct,panel:ut,tabs:ft,form:gt,grid:jt,label:wt};Object.entries(se).forEach(([e,t])=>{J(e,t)});function yt(e){var r;const t=m.useMemo(()=>X(e.layout),[e.layout]);return t.error?n.jsx("div",{className:`${e.className??""} ymllayout-main`,id:e.id,children:n.jsxs(p,{children:[n.jsx(p.Header,{children:"Layout Error"}),n.jsxs(p.Contents,{children:[n.jsxs("p",{children:["File: ",t.name]}),n.jsx(a.Alert,{variant:"warning",children:n.jsx("pre",{className:"mb-0",children:t.error})})]})]})}):n.jsx("div",{className:`${e.className??""} ymllayout-main`,id:e.id,children:n.jsx(ee,{resetKey:t,children:(r=t.children)==null?void 0:r.map((s,i)=>y(s,i))})})}const vt=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),ie={hardware:de};function bt(e,t){ie[e]=t}function Nt(e){return n.jsxs(a.Col,{className:"monitor-panel-item bg-fatal",title:`Error from yaml configuration: ${e.message}`,children:[n.jsx("h1",{children:e.monitor.name}),n.jsx("div",{children:"Parsing error"})]})}function Ct(e){const t=w.map(e.monitors,(r,s)=>{const i=r.type??"hardware",o=ie[i];return o===void 0?n.jsx(Nt,{monitor:r,message:`Type ${i} unsupported`},`m${s}`):n.jsx(o,{monitor:r},`m${s}`)});return n.jsx("div",{className:S.default({"ms-auto":e.margin==="start"},"me-auto","monitor-panel",{"monitor-panel-light":e.bg==="light"}),children:n.jsx(a.Container,{fluid:!0,children:n.jsx(a.Row,{className:"flex-nowrap",children:t})})})}function oe(e){return n.jsx(a.Col,{className:"monitor-panel-item",children:e.children})}const T={};function St(e,t){T[e]=t}function ae(e){if(!T.useHardware)throw new Error("No `useHardware` hook registered");return T.useHardware(e)}const le=(e,t,r)=>{const s={">":(i,o)=>i>o,"<":(i,o)=>i<o,">=":(i,o)=>i>=o,"<=":(i,o)=>i<=o,"==":(i,o)=>i===o,"!=":(i,o)=>i!==o,in:(i,o)=>o.indexOf(i)>-1};if(e in s)return s[e](t,r)};function ce(e,t,r){const s=e.split(t);return r?[s.slice(0,-r).join(t)].concat(s.slice(-r)):s}function L(e){const t=e!==void 0?ce(e,".",1):[null,""],r=ae(t[0]);if(r&&r.properties&&t[1]!==null)return Array.isArray(r.properties[t[1]])?r.properties[t[1]][0]:r.properties[t[1]]}function Ot(e){const t=e!==void 0&&!e.includes("."),r=e!==void 0?ce(e,".",1):[null,""],s=ae(r[0]);if(t)return e;if(s&&s.properties&&r[1]!==null)return`${s.properties[r[1]]}`}function de(e){const{monitor:t}=e;let r=L(t.value)??"-";const s=Ot(t.unit),i=L(t.overlay),o=Number.parseFloat(`${r}`);Number.isNaN(o)||String(o).length>5&&(r=o.toPrecision(5));let d;t.comparator&&t.comparison&&(d=le(t.comparator,r,t.comparison)?"valid":"invalid"),Number.isNaN(o)||s!==void 0&&(r=`${r} ${s}`);let l=m.Fragment;const h={};if(i){const u=`${i}`;let c=m.Fragment;u.includes(`
|
|
3
|
-
`)&&(c="pre"),l=a.OverlayTrigger,h.placement="bottom",h.overlay=n.jsx(a.Tooltip,{id:"tooltipid",className:"monitor-panel-tooltip",children:n.jsx(c,{children:u})})}return m.createElement(l,{...h,key:t.name},n.jsxs(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),w=require("lodash"),a=require("react-bootstrap"),m=require("react"),fe=require("classnames"),me=require("debug"),q=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},O=q(fe),pe=q(me);function xe(e){const{activeMessage:t="Online",inactiveMessage:r="Offline",message:s="This device is"}=e;return n.jsx("div",{className:`dot-indicator small bg-${e.online?"success":"danger"}`,title:`${s} ${e.online?t:r}`})}function N(e){const{name:t,icon:r}=e;return n.jsxs("div",{className:"icon",title:t,children:[n.jsx("i",{className:`fa ${r}`}),n.jsx(xe,{...e})]})}function ge(e){const t={24:"Y",21:"Z",18:"E",15:"P",12:"T",9:"G",6:"M",3:"k","-3":"m","-6":"µ","-9":"n","-12":"p","-15":"f","-18":"a","-21":"z","-24":"y"},r=Math.log(e)/Math.log(1e3),s=!Number.isInteger(r),i=3*Math.ceil(r-(s?1:0)),o=i===0?"":t[i];return{scalar:e*10**-i,prefix:o,multiplier:10**-i}}function je(e){return e.charAt(0).toUpperCase()+e.slice(1)}function G(e){if(e<60)return`${Math.round(e)} sec`;const t=Math.round(e/60),r=t%60,s=Math.floor(t/60);return s?`${s} hr ${r} min`:`${r} min`}function we(e){return e>0?(662607004e-42*299792458/(e*1e-10)/160218e-24*.001).toFixed(4):0}function ye(e,t){return Number.parseFloat(e.toFixed(t))}const ve=Object.freeze(Object.defineProperty({__proto__:null,formatEng:ge,round:ye,toEnergy:we,toHoursMins:G,ucfirst:je},Symbol.toStringTag,{value:"Module"}));function be(e){const{hardware:t}=e;function r(d){t.requestChange({function:"reset"})}const s={"Front End":"feitlk",Experimental:"expitlk",PSS:"pssitlk"},i={Current:`${t.properties.current.toFixed(1)} mA`,Mode:t.properties.mode,Refill:G(t.properties.refill),Message:n.jsx("pre",{children:t.properties.message})};function o(d){if(!(d in t.properties))return"UNKNOWN";const l=t.properties[d];return!l||typeof l!="string"?"UNKNOWN":l}return n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[t.name," Details"]}),n.jsxs(a.Popover.Body,{children:[n.jsx("h6",{children:"Status"}),n.jsx("pre",{children:t.properties.status}),n.jsx("h6",{children:"Interlocks"}),n.jsx(a.Container,{children:w.map(s,(d,l)=>n.jsxs(a.Row,{children:[n.jsxs(a.Col,{children:[l,":"]}),n.jsx(a.Col,{children:n.jsx(a.Badge,{bg:o(d)==="ON"?"success":"danger",children:o(d)})})]},l))}),n.jsx("h6",{children:"Ring Status"}),n.jsx(a.Container,{children:w.map(i,(d,l)=>n.jsxs(a.Row,{children:[n.jsxs(a.Col,{children:[l,":"]}),n.jsx(a.Col,{children:d})]},l))}),n.jsx("div",{className:"d-grid gap-2",children:n.jsx(a.Button,{disabled:e.disabled,onClick:r,children:"Reset"})})]})]}),children:n.jsx(a.Button,{className:"flex-grow-0",title:"Shutter Details",children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function Ne(e){const{hardware:t,options:r={}}=e;function s(i){t.requestChange({function:t.properties.frontend==="FE open"?"close":"open"})}return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[n.jsx(N,{name:"Frontend",icon:"fam-hardware-frontend",online:t.online}),n.jsx("div",{className:"name",children:t.name}),n.jsx(a.Badge,{bg:t.properties.state==="OPEN"||t.properties.state==="RUNNING"?"success":"danger",children:t.properties.state})]}),n.jsx("div",{className:"hw-content",children:n.jsxs(a.ButtonGroup,{className:"d-flex",children:[n.jsx(a.Button,{variant:t.properties.frontend==="FE open"?"danger":"success",onClick:s,disabled:e.disabled,children:t.properties.frontend==="FE open"?"Close":"Open"}),n.jsx(be,{...e})]})})]})}function Ce(e){const{hardware:t,options:r={}}=e;function s(){const i=r.property;if(i===void 0)return"property is not set";if(i===null)return"property is null";let o=t;for(const d of i.split("/"))if(o=o[d],o===void 0)return`property '${i}' not found`;return`${o}`}return n.jsx(n.Fragment,{children:s()})}function E(e){const{headerMode:t,hardware:r}=e;function s(){return r.alias?r.alias:r.name?r.name:r.id}const i=s();switch(t){case"front":return n.jsx("div",{className:"hw-component",children:n.jsxs("div",{className:"hw-single",children:[e.widgetIcon,n.jsx("div",{className:"name",children:i}),n.jsx("div",{className:"d-inline-block",children:e.widgetContent})]})});case"none":return n.jsx("div",{className:"hw-component",children:n.jsx("div",{className:"hw-single",children:e.widgetContent})});case"state":return e.widgetState;default:return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[e.widgetIcon,n.jsx("div",{className:"name",children:n.jsx(a.Form.Label,{htmlFor:r.id,children:i})}),e.widgetState,e.hardware.errors&&e.hardware.errors.length>0&&n.jsx(a.OverlayTrigger,{trigger:"click",placement:"bottom",rootClose:!0,overlay:n.jsxs(a.Popover,{id:e.hardware.id,style:{maxWidth:500},children:[n.jsx(a.Popover.Header,{children:"Device Errors"}),n.jsxs(a.Popover.Body,{children:["There were errors with properties on this device:",n.jsx("ul",{children:e.hardware.errors.map(o=>n.jsxs("li",{children:[o.property,":",n.jsxs("span",{className:"stack-trace",children:[o.traceback,n.jsx("br",{}),o.exception]})]}))})]})]}),children:n.jsx(a.Button,{variant:"danger",size:"sm",children:n.jsx("i",{className:"fa fa-exclamation-triangle"})})})]}),n.jsx("div",{className:"hw-content",children:e.widgetContent})]})}}function H(e){const t={display:"inline-block",minWidth:""};return e.minWidth&&(t.minWidth=`${e.minWidth}em`),n.jsx("div",{style:t,children:n.jsx(a.Badge,{bg:e.variant,children:e.state})})}function K(e){const{hardware:t}=e;function r(){if(!t.online)return"OFFLINE";let i="UNKNOWN";return e.hardware.properties.state&&([i]=e.hardware.properties.state),i}const s=r();return n.jsx(H,{state:s,minWidth:6,variant:s==="READY"?"success":"warning"})}function U(e){const{hardware:t}=e;function r(){if(!t.online)return"OFFLINE";const o=t.properties.state;return e.useReadyState&&(o==="OPEN"||o==="CLOSED")?"READY":o}const s=r();function i(){switch(s){case"READY":return"success";case"OPEN":return"success";case"CLOSED":return"danger";case"DISABLED":return"secondary";case"MOVING":case"STANDBY":case"OFFLINE":return"warning";case"FAULT":return"fatal";default:return"fatal"}}return n.jsx(H,{state:s,minWidth:6,variant:i()})}const Se=Object.freeze(Object.defineProperty({__proto__:null,HardwareState:H,MotorState:K,ShutterState:U},Symbol.toStringTag,{value:"Module"})),Oe=m.forwardRef((e,t)=>{const r=m.useRef(null),[s,i]=m.useState(e.step),o=j=>{const k=t;if(r.current===null)return;let B=Number.parseFloat(k.current.value);const V=Number.parseFloat(r.current.value);B+=j?V:-V,k.current.value=`${B}`,e.onStep&&e.onStep({target:k.current})},{onStep:d,step:l,overlay:h,incIcon:u,decIcon:c,swapIncDec:f,onKeyDown:g,horizontalArrows:C,largeArrows:I,...v}=e,_=j=>{j.key==="ArrowUp"?(j.preventDefault(),o(!0)):j.key==="ArrowDown"?(j.preventDefault(),o(!1)):g&&g(j)};if(!e.step)return n.jsx(a.Form.Control,{ref:t,type:"number",step:"any",onKeyDown:_,...v});const he=w.map(e.steps||[e.step],j=>n.jsx("option",{value:j,children:j},j));return n.jsx("div",{className:O.default("numeric-step",{"numeric-step-large":I,"numeric-step-horizontal":C}),children:n.jsxs(a.InputGroup,{children:[n.jsx(a.Form.Control,{onKeyDown:_,ref:t,type:"number",step:"any",...v}),n.jsxs(n.Fragment,{children:[h,!h&&n.jsxs(a.InputGroup.Text,{className:"d-flex flex-column",children:[n.jsx(a.Form.Control,{ref:r,as:"select",className:"step-size",defaultValue:s,onChange:j=>i(Number.parseFloat(j.target.value)),children:he}),e.unit&&n.jsx("div",{children:e.unit}),!u&&!c&&n.jsxs(n.Fragment,{children:[n.jsx(a.Button,{className:"step step-up",disabled:e.disabled,onClick:j=>o(!0)}),n.jsx(a.Button,{className:"step step-down",disabled:e.disabled,onClick:j=>o(!1)})]})]}),c&&f&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!1),children:n.jsx("i",{className:`fa fa-fw fa-${c}`})}),u&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!0),children:n.jsx("i",{className:`fa fa-fw fa-${u}`})}),c&&!f&&n.jsx(a.Button,{disabled:e.disabled,onClick:j=>o(!1),children:n.jsx("i",{className:`fa fa-fw fa-${c}`})})]})]})})}),z=Oe;function W(e){const t=m.useRef(null),[r,s]=m.useState(!1),[i,o]=m.useState(!1);m.useEffect(()=>{t.current&&(e.hardwareValue===null?t.current.value="":t.current.value=e.hardwareValue.toString(),s(!1))},[e.hardwareValue]);function d(f){let g=f;e.precision!==void 0&&(g=Number.parseFloat(g).toFixed(e.precision)),t!=null&&t.current&&(t.current.value=g)}function l(){r&&setTimeout(()=>{d(e.hardwareValue),s(!1)},3e3)}function h(f){e.hardwareValue!==null&&(s(!0),t!=null&&t.current&&(t.current.value=f.target.value),f.target.value===e.hardwareValue.toString()&&s(!1))}function u(f){s(!1),e.onMoveRequested(f.target.value)}function c(f){switch(f.key){case"Enter":{s(!1);const g=Number.parseFloat(f.target.value),C=e.onMoveRequested(g);C&&C.catch(()=>{o(!0),setTimeout(()=>{d(e.hardwareValue),o(!1)},2e3)})}f.preventDefault(),f.stopPropagation();break;case"Esc":case"Escape":r&&(o(!1),s(!1),d(e.hardwareValue)),f.target.blur(),f.preventDefault(),f.stopPropagation();break}}return n.jsx(z,{id:e.id,className:O.default({"form-control-edited":r,"form-control-error":i,"hw-moving":e.hardwareIsMoving}),type:e.readOnly?"text":"number",ref:t,precision:e.precision,onChange:h,onBlur:l,onStep:u,onKeyDown:c,disabled:e.hardwareIsDisabled||e.readOnly||!e.hardwareIsReady,step:e.step,steps:e.steps,incIcon:e.incIcon,decIcon:e.decIcon,swapIncDec:e.swapIncDec,horizontalArrows:e.horizontalArrows,largeArrows:e.largeArrows,overlay:e.hardwareIsMoving&&!e.hardwareIsDisabled?n.jsx(a.Button,{variant:"danger",onClick:e.onAbortRequested,children:n.jsx("i",{className:"fa fa-times"})}):null})}function D(e){const t=m.useRef(null),[r,s]=m.useState(!1),[i,o]=m.useState(!1);function d(c){return e.precision!==void 0?Number.parseFloat(c).toFixed(e.precision):c}m.useEffect(()=>{var c;t.current&&(t.current.value=d((c=e.hardwareValue)==null?void 0:c.toString()),s(!1))},[e.hardwareValue,e.precision]);function l(c){const f=d(c);t!=null&&t.current&&(t.current.value=f)}function h(c){switch(c.key){case"Enter":{s(!1);const f=Number.parseFloat(c.target.value),g=e.onMoveRequested(f);g&&g.catch(()=>{o(!0),setTimeout(()=>{l(e.hardwareValue),o(!1)},2e3)}),c.preventDefault(),c.stopPropagation();break}case"Esc":case"Escape":r&&(o(!1),s(!1),l(e.hardwareValue)),c.target.blur(),c.preventDefault(),c.stopPropagation();break}}function u(c){s(!0),c.target,t!=null&&t.current&&(t.current.value=c.target.value),c.target.value===e.hardwareValue.toString()&&s(!1)}return n.jsx(a.Form.Control,{className:O.default({"form-control-edited":r,"form-control-error":i,"hw-moving":e.hardwareIsMoving}),type:"number",ref:t,onChange:u,onKeyDown:h,disabled:e.readOnly||e.hardwareIsMoving||e.hardwareIsDisabled,step:e.step})}function Ee(e){function t(i){return e.hardware.requestChange({property:"velocity",value:i})}function r(i){return e.hardware.requestChange({property:"acceleration",value:i})}let s="UNKNOWN";return e.hardware.properties.state&&([s]=e.hardware.properties.state),n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[e.hardware.name," details"]}),n.jsxs(a.Popover.Body,{children:[n.jsxs(a.Form.Group,{children:[n.jsx(a.Form.Label,{children:"Velocity"}),n.jsx(D,{hardwareValue:e.hardware.properties.velocity,onMoveRequested:t,hardwareIsDisabled:e.disabled,hardwareIsReady:s==="READY",hardwareIsMoving:s==="MOVING",readOnly:e.readOnly})]}),n.jsxs(a.Form.Group,{children:[n.jsx(a.Form.Label,{children:"Acceleration"}),n.jsx(D,{hardwareValue:e.hardware.properties.acceleration,onMoveRequested:r,hardwareIsDisabled:e.disabled,hardwareIsReady:s==="READY",hardwareIsMoving:s==="MOVING",readOnly:e.readOnly})]})]})]}),children:n.jsx(a.Button,{children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function Me(e){const{hardware:t,options:r={}}=e;function s(){t.requestChange({function:"stop"})}function i(u){return t.requestChange({property:"position",value:u,function:"move"})}let o="UNKNOWN";e.hardware.properties.state&&([o]=e.hardware.properties.state);const d=n.jsx(N,{name:"Motor",icon:"fam-hardware-motor",online:t.online}),l=n.jsx(K,{hardware:t}),h=e.options?e.options.header:"top";return n.jsx(E,{hardware:t,widgetIcon:d,widgetState:l,widgetContent:n.jsxs(a.InputGroup,{children:[n.jsx(W,{id:t.id,hardwareValue:t.properties.position,hardwareIsDisabled:e.disabled,hardwareIsReady:o==="READY",hardwareIsMoving:o==="MOVING",onMoveRequested:i,onAbortRequested:s,precision:r.precision,readOnly:r.readOnly,step:r.step,steps:r.steps,incIcon:r.incicon,decIcon:r.decicon,swapIncDec:r.swapincdec,horizontalArrows:r.horizontalarrows,largeArrows:r.largearrows}),t.properties.unit&&n.jsx(a.InputGroup.Text,{children:t.properties.unit}),o!=="MOVING"&&r.extended&&n.jsx(Ee,{hardware:t,disabled:e.disabled,readOnly:r.readOnly}),o==="MOVING"&&!e.disabled&&!r.step&&n.jsx(a.Button,{variant:"danger",onClick:s,children:n.jsx("i",{className:"fa fa-times"})})]}),headerMode:h})}function Ae(e){const{hardware:t,options:r={}}=e,s=m.useRef(null);m.useEffect(()=>{if(!s.current){console.error("selectionRef ref is unset");return}s.current.value=t.properties.position},[t.properties.position]);function i(l){if(console.debug("change",l),!s||!s.current){console.error("selection ref is unset");return}t.requestChange({value:s.current.value,function:"move"})}function o(l){t.requestChange({function:"stop"})}const d=w.map(t.properties.positions,l=>n.jsx("option",{title:l.description,children:l.position},l.position));return n.jsxs("div",{className:"hw-component",children:[n.jsxs("div",{className:"hw-head",children:[n.jsx(N,{name:"Multiposition",icon:"fam-hardware-multiposition",online:t.online}),n.jsx("div",{className:"name",children:t.name}),n.jsx(a.Badge,{bg:t.properties.state==="READY"?"success":"warning",children:t.properties.state})]}),n.jsx("div",{className:"hw-content",children:n.jsxs(a.InputGroup,{children:[n.jsxs(a.Form.Control,{className:"custom-select",as:"select",ref:s,disabled:e.disabled,defaultValue:t.properties.position,children:[n.jsx("option",{disabled:!0,children:"unknown"}),d]}),t.properties.state!=="MOVING"&&n.jsx(a.Button,{onClick:i,disabled:e.disabled,children:"Move"}),t.properties.state==="MOVING"&&!e.disabled&&n.jsx(a.Button,{variant:"danger",onClick:o,children:n.jsx("i",{className:"fa fa-times"})})]})})]})}const Fe=pe.default("daiquiri.components.hardware.NoObject");function Ie(e){if(e.options.emptyifnone)return Fe('Component id:"%s" name:"%s" not displayed cause setup with emptyifnone.',e.id,e.name),n.jsx(n.Fragment,{});const t=n.jsx(N,{name:"NoObject",icon:"fam-hardware-any",online:!1}),r=n.jsx(n.Fragment,{}),s=n.jsx(n.Fragment,{children:"Missing"}),i=e.options?e.options.header:"top",o={id:e.id,name:e.name??"",alias:null,online:!1,properties:{},type:""};return n.jsx(E,{hardware:o,widgetIcon:t,widgetState:r,widgetContent:s,headerMode:i})}function ke(e){const t=e.online?"READY":"OFFLINE";return n.jsx(a.Badge,{bg:t==="READY"?"success":"warning",children:t})}function De(e){const{hardware:t,options:r={}}=e,s=n.jsx(N,{name:"Optic",icon:"fa-cog",online:t.online}),i=n.jsx(ke,{...t});function o(){const c=r.property;if(c===void 0)return"property is not set";if(c===null)return"property is null";let f=t;for(const g of c.split("/"))if(f=f[g],f===void 0)return`property '${c}' not found`;return`${f}`}function d(){const c=r.unit;if(!c)return null;if(!c.includes("properties"))return c;let f=e;for(const g of c.split("/"))if(f=f[g],f===void 0)return null;return`${f}`}const l=d(),h=n.jsxs(a.InputGroup,{children:[n.jsx(a.Form.Control,{value:o(),readOnly:!0}),l&&n.jsx(a.InputGroup.Text,{children:l})]}),u=e.options.header||"top";return n.jsx(E,{hardware:t,widgetIcon:s,widgetState:i,widgetContent:h,headerMode:u})}function $e(e){const{hardware:t}=e,r=()=>{t.requestChange({function:"reset"})};return n.jsx(a.OverlayTrigger,{trigger:"click",rootClose:!0,overlay:n.jsxs(a.Popover,{id:"popid",children:[n.jsxs(a.Popover.Header,{children:[t.name," Details"]}),n.jsxs(a.Popover.Body,{children:[n.jsx("h6",{children:"Status"}),n.jsx("pre",{children:t.properties.status}),n.jsx("div",{className:"d-grid gap-2",children:n.jsx(a.Button,{onClick:r,disabled:e.disabled,children:"Reset"})})]})]}),children:n.jsx(a.Button,{className:"flex-grow-0",title:"Shutter Details",children:n.jsx("i",{className:"fa fa-ellipsis-h"})})})}function Pe(e){const{hardware:t,options:r={}}=e,s=n.jsx(N,{name:"Shutter",icon:"fam-hardware-shutter",online:t.online}),i=n.jsx(U,{hardware:t});function o(){return t.properties?t.properties.state:"UNKNOWN"}function d(v){return v==="OPEN"?["Close","close"]:v==="CLOSED"?["Open","open"]:v==="DISABLED"||v==="STANDBY"||v==="FAULT"?["Closed",""]:v==="MOVING"?["...",""]:["Unknown",""]}const l=o(),[h,u]=d(l),f={OPEN:"danger",CLOSED:"success",MOVING:"warning",DISABLED:"secondary",STANDBY:"danger",FAULT:"fatal",UNKNOWN:"warning"}[l]||"danger";function g(){t.requestChange({function:u})}const C=n.jsxs(a.ButtonGroup,{className:"d-flex flex-nowrap",children:[n.jsx(a.Button,{variant:f,onClick:g,disabled:e.disabled||u==="",children:h}),r.extended&&n.jsx($e,{...e})]}),I=e.options.header||"top";return n.jsx(E,{hardware:t,widgetIcon:s,widgetState:i,widgetContent:C,headerMode:I})}class Re extends m.Component{constructor(){super(...arguments),this.variants={}}render(){let t=this.variants.default;return this.props.options.variant in this.variants&&(t=this.variants[this.props.options.variant]),n.jsx(t,{...this.props})}}function Z(e){const[t,r]=m.useState({}),s=m.useRef(null);return m.useEffect(()=>{if(s.current){const i=s.current;r({width:i.clientWidth,height:i.clientHeight})}},[]),n.jsx("div",{ref:s,style:{width:"100%",height:"100%"},className:e.className,children:t.width>0&&n.jsx("div",{className:"full-sizer",style:{width:`${t.width}px`,height:`${t.height}px`,overflow:"scroll"},children:e.children})})}function Te(e){return n.jsx("div",{className:"panel-header",style:e.style,children:e.children})}function He(e){return n.jsx("div",{className:"panel-contents",style:e.style,children:e.children})}function p(e){const t=e.scroll?Z:m.Fragment;return n.jsx("div",{className:`panel ${e.className??""}`,style:e.style,children:n.jsx(t,{children:e.children})})}p.Header=Te;p.Contents=He;const _e=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Be=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),M={};function J(e,t){M[e]=t}function y(e,t,r=!0){if(!e)return n.jsx(n.Fragment,{});const{type:s}=e,i=s&&s in M?M[s]:M.component;return n.jsx(i,{yamlNode:e,panel:r},t)}function Ve({children:e,key:t,panel:r,options:s}){return r?n.jsx(p,{style:s.style,scroll:s.scroll,children:n.jsx(p.Contents,{children:e})},t):n.jsx(n.Fragment,{children:m.Children.map(e,i=>m.isValidElement(i)?m.cloneElement(i,{key:t,...i.props}):void 0)})}function Q(e,t){const{_parentNode:r,_indexFromParent:s,...i}=t;if(e&&Object.keys(i).length>0)throw new A(e,Object.keys(i))}class b extends Error{constructor(t,r){super(t),this.yamlNode=r}}class A extends b{constructor(t,r){super(`Unexpected keys: ${r.join(", ")}`,t),this.keys=r}}class S extends b{constructor(t,r){super(`Keys ${r.join(", ")} are missing`,t),this.keys=r}}class x extends b{constructor(t,r,s){super(`Key ${r} error: ${s}`,t),this.key=r,this.keyMessage=s}}function Ye(e){let t=e;for(;t._parentNode;)t=t._parentNode;return t}function Le(e){const t=[];let r=e;for(;r;)t.push({node:r,indexFromParent:r._indexFromParent}),r=r._parentNode;return t.reverse(),t}function X(e,t=null,r=null){if(e._parentNode)throw new Error("Attribute _parentNode was already defined by the yml layout.");const s={...e,_parentNode:t,_indexFromParent:r};if(e.children){const i=[...e.children];Object.freeze(i),s.children=i.map((o,d)=>X(o,s,d))}return Object.freeze(s),s}function ee(e){return n.jsx(a.Alert,{variant:"danger",children:e.message})}function qe(e){const{error:t}=e;if(!(t instanceof b))return n.jsx(n.Fragment,{});function r(o,d=3){const l=Le(o.yamlNode),h=[];let u="";for(let c=1;c<l.length;c++){const{node:f,indexFromParent:g}=l[c];h.push(`${u}children:`),u+=" ".repeat(d),g===1?h.push(`${u}- type: ...`):(g??0>1)&&h.push(`${u}...`,`${u}...`,`${u}# children number ${g??0+1}`),h.push(`${u}- type: ${f.type}`),u+=" ".repeat(2)}return o instanceof A?o.keys.forEach(c=>{h.push(`${u}${c}: ... ${" ".repeat(50-u.length-c.length)}<-- unexpected key`)}):o instanceof S?o.keys.forEach(c=>{h.push(`${u}???: ${" ".repeat(50-u.length-c.length)}<-- key **${c}** is expected`)}):o instanceof x&&h.push(`${u}${o.key}: ${" ".repeat(50-u.length-o.key.length)}<-- ${o.keyMessage}`),h.join(`
|
|
2
|
+
`)}const i=Ye(t.yamlNode).name;if(t instanceof A){const o=t.keys.length===1?"key":"keys";return n.jsxs(a.Alert,{variant:"danger",children:["Unexpected ",o," ",t.keys.map((d,l)=>n.jsxs(n.Fragment,{children:[l!==0&&", ",n.jsx("b",{children:d})]}))," ","from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]})}if(t instanceof S){const o=t.keys.length===1?"Key":"Keys";return n.jsxs(a.Alert,{variant:"danger",children:["Expected ",o," ",t.keys.map((d,l)=>n.jsxs(n.Fragment,{children:[l!==0&&", ",n.jsx("b",{children:d})]}))," ","from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]})}return t instanceof x?n.jsxs(a.Alert,{variant:"danger",children:["Error on key ",n.jsx("b",{children:t.key})," from the layout name ",n.jsx("b",{children:i}),".",n.jsx("br",{}),n.jsx("pre",{className:"mt-3",children:r(t)}),n.jsx("br",{})]}):n.jsx(ee,{...e})}const Y={hasError:!1,message:"",error:void 0};class te extends m.Component{constructor(t){super(t),this.reload=()=>{window.location.reload()},this.state=Y}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){t instanceof b?this.setState({hasError:!0,message:t.message,error:t}):this.props.unhandledComponentDidCatch&&this.props.unhandledComponentDidCatch(t,r=>{this.setState({hasError:!0,message:t.message,error:t,...r})})}componentDidUpdate(t,r){this.state.hasError&&r.error!==void 0&&t.resetKey!==this.props.resetKey&&this.setState(Y)}render(){if(this.state.hasError){const{UnhandledErrorComponent:t}=this.props,{hasError:r,...s}=this.state;return n.jsxs(a.Container,{className:"mt-2",children:[n.jsx("h4",{children:"Something went wrong"}),this.state.error instanceof b&&n.jsx(qe,{message:this.state.message,error:this.state.error}),!(this.state.error instanceof b)&&n.jsx(n.Fragment,{children:t?n.jsx(t,{...s}):n.jsx(ee,{message:this.state.message,error:this.state.error})}),n.jsxs("p",{children:["This error has been logged. Please"," ",n.jsxs(a.Button,{size:"sm",onClick:this.reload,children:[n.jsx("i",{className:"fa fa-refresh"})," Reload"]})," ","the application"]})]})}return this.props.children}}function Ge(e,t,r){if(e&&r===void 0)throw new S(e,[t])}function Ke(e,t,r){if(typeof r!="string")throw new x(e,t,"A string is expected")}function Ue(e,t,r){if(typeof r!="boolean")throw new x(e,t,"A boolean is expected")}function ze(e,t,r){if(typeof r!="number")throw new x(e,t,"A number is expected")}function $(e,t,r){if(r!==void 0&&typeof r!="boolean")throw new x(e,t,"An optional boolean is expected")}function ne(e,t,r){if(r!==void 0&&typeof r!="string")throw new x(e,t,"An optional string is expected")}function We(e,t,r){if(!Array.isArray(r))throw new x(e,t,"A list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"A list of string is expected")})}function Ze(e,t,r){if(r!==void 0&&typeof r!="string"){if(!Array.isArray(r))throw new x(e,t,"An optional string or list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"An optional string or list of string is expected")})}}function Je(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,t,"An optional list of string is expected");r.forEach(s=>{if(typeof s!="string")throw new x(e,t,"A optional list of string is expected")})}}function re(e,t,r){if(r!==void 0&&typeof r!="number")throw new x(e,t,"An optional number is expected")}function Qe(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,t,"An optional list of numbers is expected");r.forEach(s=>{if(typeof s!="number")throw new x(e,t,"An optional list of numbers is expected")})}}function F(e,t){const{_parentNode:r,_indexFromParent:s,...i}=t;if(e&&Object.keys(i).length>0)throw new A(e,Object.keys(i))}function Xe(e,t,r){if(r!=="last"&&typeof r!="number")throw new x(e,t,'"last" or a number is expected')}function et(e,t,r){if(r!==void 0&&r!=="h5web"&&r!=="plotly")throw new x(e,t,'"h5web" or "plotly" string is expected')}const tt=Object.freeze(Object.defineProperty({__proto__:null,assertBoolean:Ue,assertDataCollectionId:Xe,assertKeyExpected:Ge,assertNoUnknownKeys:F,assertNumber:ze,assertOptionalBackend:et,assertOptionalBoolean:$,assertOptionalNumber:re,assertOptionalNumberList:Qe,assertOptionalString:ne,assertOptionalStringList:Je,assertOptionalStringOrStringList:Ze,assertString:Ke,assertStringList:We},Symbol.toStringTag,{value:"Module"}));function nt({yamlNode:e,panel:t}){const{type:r,style:s,children:i,...o}=e;return F(e,o),n.jsx(a.Row,{className:"ymllayout-row gx-0",style:s,children:w.map(i,(d,l)=>y(d,l,t))})}function rt({yamlNode:e,panel:t}){const{type:r,style:s,xs:i,children:o,...d}=e;return F(e,d),re(e,"xs",i),n.jsx(a.Col,{className:O.default("yamymllayout-col",{col:!!i}),style:s,xs:i,children:w.map(e.children,(l,h)=>y(l,h,t))})}const P={};function st(e,t){P[e]=t}function it(e,t){if(t===void 0)throw new S(e,["id"]);if(typeof t.id!="string")throw new x(e,"id","A string is expected")}function ot(e,t,r){if(r!==void 0){if(!Array.isArray(r))throw new x(e,"ids","A option list is expected");r.forEach((s,i)=>{try{it(e,s)}catch{throw new x(e,"ids",`The hardware description ${i} is wrong`)}})}}function at(e){const{providers:t={},yamlNode:r,ids:s,groupid:i,even:o,nowrap:d,...l}=e;if(ot(r,"ids",s),ne(r,"groupid",i),$(r,"even",o),$(r,"nowrap",d),F(r,l),!P.HardwareGroup)return n.jsx(a.Alert,{variant:"warning",children:"No `HardwareGroup` component registered"});const h=P.HardwareGroup;return n.jsx(h,{providers:t,ids:s,groupid:i,nowrap:d||!1,even:o||!1})}const R={hardwaregroup:at};function se(e,t){R[e]=t}function lt(e){Object.entries(e).forEach(([t,r])=>se(t,r))}function ct(e){const{yamlNode:t,panel:r}=e,{type:s,style:i,scroll:o,title:d,...l}=t;if(!(s in R))return n.jsx(p,{children:n.jsx(p.Contents,{children:n.jsxs(a.Alert,{variant:"warning",children:['Unknown component "',s,'"']})})});const h=R[t.type];return r?n.jsx(p,{style:i,scroll:o,children:n.jsxs(m.Suspense,{fallback:n.jsx("p",{children:"Loading..."}),children:[d&&n.jsx(p.Header,{children:d}),n.jsx(p.Contents,{children:n.jsx(h,{...l,yamlNode:t})})]})}):n.jsx(m.Suspense,{fallback:n.jsx("p",{children:"Loading..."}),children:n.jsx(h,{...l,yamlNode:t})})}function dt({yamlNode:e,panel:t}){const r=e.options||{};return n.jsx(a.Container,{className:"ymllayout-container",...r,children:w.map(e.children,(s,i)=>y(s,i,t))})}function ut(e){const{yamlNode:t}=e,r=t.options||{},s={};return r.centerContent&&(s.margin="auto"),n.jsxs(p,{className:"ymllayout-panel",...r,children:[t.title&&n.jsx(p.Header,{children:t.title}),n.jsx(p.Contents,{style:s,children:w.map(t.children,(i,o)=>y(i,o,!1))})]})}const ht=()=>Math.random().toString(36).slice(2,15)+Math.random().toString(36).slice(2,15);function ft({yamlNode:e,panel:t}){const r=[];return w.each(e.children,(s,i)=>{r.push(n.jsx(a.Tab,{eventKey:ht(),title:s.title,children:y(s,0,!1)},i))}),t?n.jsxs(p,{className:"ymllayout-tabs",children:[e.title&&n.jsx(p.Header,{children:e.title}),n.jsx(p.Contents,{children:n.jsx(a.Tabs,{mountOnEnter:!0,children:r})})]}):n.jsx(a.Tabs,{children:r})}function mt(e){const{node:t}=e,{type:r,title:s,...i}=t;return Q(t,i),n.jsx("div",{style:{gridColumn:"1 / 3"},children:n.jsx("h3",{children:s})})}function pt(e){const{node:t,state:r,row:s}=e,{title:i}=t;function o(){if(t.id)return t.id}function d(){if(i!==void 0)return i;if(t.type==="hardware"){const h=o(),u={_parentNode:t._parentNode,_indexFromParent:t._indexFromParent,type:"hardware",id:h,variant:"name",emptyifnone:!0};return y(u,"a",!1)}return""}const l=d();return n.jsxs("div",{style:{textAlign:"center"},children:[n.jsx("h5",{style:{margin:"0px",whiteSpace:"nowrap"},children:l}),r&&n.jsx("div",{style:{position:"relative",top:-5},children:r})]})}function xt(e){const{node:t,row:r}=e,{titlealign:s,title:i,stateinheader:o=!1,variant:d,id:l,...h}=t;let u,c;if(h.type==="hardware")if(u={...h,id:l,variant:d},o){const f={...h,id:l,variant:"state",emptyifnone:!0};c=y(f,"k",!1)}else c=null;else u=h,c=null;return n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{gridColumn:1,alignSelf:s??"center"},children:n.jsx(pt,{node:t,state:c,row:r})}),n.jsx("div",{style:{gridColumn:2},children:y(u,"k",!1)})]})}function gt(e){const{yamlNode:t,panel:r}=e,{type:s,children:i,options:o={},title:d,...l}=t;return Q(t,l),n.jsxs(p,{className:"ymllayout-form",...o,children:[t.title&&n.jsx(p.Header,{children:t.title}),n.jsx(p.Contents,{children:n.jsx("div",{style:{display:"grid",gridTemplateColumns:"min-content auto"},children:w.map(i,(h,u)=>h.type==="formheader"?n.jsx(mt,{node:h,row:u},u):n.jsx(xt,{node:h,row:u},u))})})]})}function jt(e){const{yamlNode:t,panel:r}=e;return n.jsxs("div",{className:"ymllayout-grid",style:{gridTemplateColumns:t.columns,gridTemplateRows:t.rows},children:[w.map(t.children,(s,i)=>{const{columnSpan:o=1,rowSpan:d=1,...l}=s,h=o>1?`span ${o}`:void 0,u=d>1?`span ${d}`:void 0;return n.jsx("div",{className:"ymllayout-grid-cell",style:{gridColumn:h,gridRow:u},children:y(l,i,r)},i)})," "]})}function wt({yamlNode:e,panel:t}){const r=e.options||{};return n.jsx(Ve,{panel:t,options:r,children:n.jsx("div",{children:e.label})})}const ie={row:nt,col:rt,container:dt,component:ct,panel:ut,tabs:ft,form:gt,grid:jt,label:wt};Object.entries(ie).forEach(([e,t])=>{J(e,t)});function yt(e){var r;const t=m.useMemo(()=>X(e.layout),[e.layout]);return t.error?n.jsx("div",{className:`${e.className??""} ymllayout-main`,id:e.id,children:n.jsxs(p,{children:[n.jsx(p.Header,{children:"Layout Error"}),n.jsxs(p.Contents,{children:[n.jsxs("p",{children:["File: ",t.name]}),n.jsx(a.Alert,{variant:"warning",children:n.jsx("pre",{className:"mb-0",children:t.error})})]})]})}):n.jsx("div",{className:`${e.className??""} ymllayout-main`,id:e.id,children:n.jsx(te,{resetKey:t,unhandledComponentDidCatch:e.unhandledComponentDidCatch,UnhandledErrorComponent:e.UnhandledErrorComponent,children:(r=t.children)==null?void 0:r.map((s,i)=>y(s,i))})})}const vt=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),oe={hardware:ue};function bt(e,t){oe[e]=t}function Nt(e){return n.jsxs(a.Col,{className:"monitor-panel-item bg-fatal",title:`Error from yaml configuration: ${e.message}`,children:[n.jsx("h1",{children:e.monitor.name}),n.jsx("div",{children:"Parsing error"})]})}function Ct(e){const t=w.map(e.monitors,(r,s)=>{const i=r.type??"hardware",o=oe[i];return o===void 0?n.jsx(Nt,{monitor:r,message:`Type ${i} unsupported`},`m${s}`):n.jsx(o,{monitor:r},`m${s}`)});return n.jsx("div",{className:O.default({"ms-auto":e.margin==="start"},"me-auto","monitor-panel",{"monitor-panel-light":e.bg==="light"}),children:n.jsx(a.Container,{fluid:!0,children:n.jsx(a.Row,{className:"flex-nowrap",children:t})})})}function ae(e){return n.jsx(a.Col,{className:"monitor-panel-item",children:e.children})}const T={};function St(e,t){T[e]=t}function le(e){if(!T.useHardware)throw new Error("No `useHardware` hook registered");return T.useHardware(e)}const ce=(e,t,r)=>{const s={">":(i,o)=>i>o,"<":(i,o)=>i<o,">=":(i,o)=>i>=o,"<=":(i,o)=>i<=o,"==":(i,o)=>i===o,"!=":(i,o)=>i!==o,in:(i,o)=>o.indexOf(i)>-1};if(e in s)return s[e](t,r)};function de(e,t,r){const s=e.split(t);return r?[s.slice(0,-r).join(t)].concat(s.slice(-r)):s}function L(e){const t=e!==void 0?de(e,".",1):[null,""],r=le(t[0]);if(r&&r.properties&&t[1]!==null)return Array.isArray(r.properties[t[1]])?r.properties[t[1]][0]:r.properties[t[1]]}function Ot(e){const t=e!==void 0&&!e.includes("."),r=e!==void 0?de(e,".",1):[null,""],s=le(r[0]);if(t)return e;if(s&&s.properties&&r[1]!==null)return`${s.properties[r[1]]}`}function ue(e){const{monitor:t}=e;let r=L(t.value)??"-";const s=Ot(t.unit),i=L(t.overlay),o=Number.parseFloat(`${r}`);Number.isNaN(o)||String(o).length>5&&(r=o.toPrecision(5));let d;t.comparator&&t.comparison&&(d=ce(t.comparator,r,t.comparison)?"valid":"invalid"),Number.isNaN(o)||s!==void 0&&(r=`${r} ${s}`);let l=m.Fragment;const h={};if(i){const u=`${i}`;let c=m.Fragment;u.includes(`
|
|
3
|
+
`)&&(c="pre"),l=a.OverlayTrigger,h.placement="bottom",h.overlay=n.jsx(a.Tooltip,{id:"tooltipid",className:"monitor-panel-tooltip",children:n.jsx(c,{children:u})})}return m.createElement(l,{...h,key:t.name},n.jsxs(ae,{children:[n.jsx("h1",{children:t.name}),n.jsx("div",{className:d,children:`${r}`})]}))}exports.Formatting=ve;exports.Frontend=Ne;exports.FullSizer=Z;exports.HWObject=vt;exports.HardwareInputNumber=D;exports.HardwareNumericStep=W;exports.HardwareSchema=Be;exports.HardwareState=Se;exports.HardwareTemplate=E;exports.HardwareTypes=_e;exports.HardwareVariant=Re;exports.Info=Ce;exports.KeyError=x;exports.MissingKeysError=S;exports.MonitorHardware=ue;exports.MonitorPanel=Ct;exports.MonitorPanelItem=ae;exports.MotorDefault=Me;exports.Multiposition=Ae;exports.NoObject=Ie;exports.NumericStep=z;exports.Panel=p;exports.Property=De;exports.ShutterDefault=Pe;exports.TypeIcon=N;exports.YAMLErrorBoundary=te;exports.YAMLLayout=yt;exports.YamlAsserts=tt;exports.dynamicOp=ce;exports.registerHardwareComponent=st;exports.registerMonitorComponent=bt;exports.registerRuntimeHook=St;exports.registerYamlComponent=se;exports.registerYamlComponents=lt;exports.registerYamlType=J;exports.renderYamlNode=y;exports.yamlMap=ie;
|
|
4
4
|
//# sourceMappingURL=index.js.map
|