From 620462b48eb9ae6de36228b948eeec1b6002c436 Mon Sep 17 00:00:00 2001 From: hanupratap Date: Fri, 9 Apr 2021 22:49:20 +0530 Subject: [PATCH 1/3] Handled YAML Errors on dashboard --- dashboard.yml | 2 +- frontend/routes/Dashboard.jsx | 120 +++++++++++++++++++------ frontend/util/animations/aperture.json | 1 + frontend/util/animations/error.json | 1 + package.json | 1 + yarn.lock | 12 +++ 6 files changed, 107 insertions(+), 30 deletions(-) create mode 100644 frontend/util/animations/aperture.json create mode 100644 frontend/util/animations/error.json diff --git a/dashboard.yml b/dashboard.yml index 0ae8bc3..cdf3121 100644 --- a/dashboard.yml +++ b/dashboard.yml @@ -17,7 +17,7 @@ Exposure Time [ms]: - widget: slider path: devices/cmv12000/computed/exposure_time_ms min: 100 - max: 10000 + max: *10000 - widget: spacing px: 30 diff --git a/frontend/routes/Dashboard.jsx b/frontend/routes/Dashboard.jsx index e71f518..ee14c84 100644 --- a/frontend/routes/Dashboard.jsx +++ b/frontend/routes/Dashboard.jsx @@ -1,5 +1,6 @@ import * as React from 'react'; import { + Box, Button, Dialog, DialogActions, @@ -19,7 +20,10 @@ import { usePromiseGenerator } from '../util/usePromiseGenerator'; import { NctrlValueWidgets } from '../components/*.jsx'; import Typography from '@material-ui/core/Typography'; import { NCTRL_BASE_PATH } from '../util/nctrl'; +import { Player } from '@lottiefiles/react-lottie-player'; +const apertus_animation = require('../util/animations/aperture.json'); +const yaml_error = require('../util/animations/error.json'); export const title = 'Dashboard'; export const route = '/dashboard'; export const explanation = ` @@ -35,6 +39,25 @@ const useStyles = makeStyles(theme => ({ right: 0, margin: '50px', }, + error_message: { + padding: theme.spacing(2), + }, + error_wrapper: { + textAlign: 'left', + width: '100%', + }, + error_player: { + height: '10px', + width: '10px', + alignItems: 'center', + display: 'flex', + }, + load_player: { + height: '10px', + width: '10px', + alignItems: 'center', + display: 'flex', + }, ul: { listStyle: 'none', padding: 0, @@ -62,13 +85,13 @@ export function Component(props) { } }, [file_yml]); - const parsed = useYaml(yaml) || []; + const parsed = useYaml(yaml); const [rerenderDep, setRerenderDep] = useState(0); const rerender = () => setRerenderDep(rerenderDep + 1); return ( -
+ { }
- {Object.keys(parsed).map((heading, i) => { - return ( -
- {heading}: - - {parsed[heading].map((x, i) => { - const InputWidget = - NctrlValueWidgets[ - `NctrlValue${x.widget.replace(/^(.)/, v => v.toUpperCase())}` - ]; - return ( - - ); - })} - -
- ); - })} + {!parsed ? ( + + ) : parsed.error_message ? ( +
+ + + An Error has Occured :
+
+ Name : {parsed.error_name}
+
+ Message : {parsed.error_message}
+
+ Stack : {parsed.error_stack} +
+
+ ) : ( + Object.keys(parsed).map((heading, i) => { + return ( +
+ {heading}: + + {parsed[heading].map((x, i) => { + const InputWidget = + NctrlValueWidgets[ + `NctrlValue${x.widget.replace(/^(.)/, v => v.toUpperCase())}` + ]; + return ( + + ); + })} + +
+ ); + }) + )}
-
+ ); } @@ -166,11 +219,20 @@ function EditDashboard({ current_yml: currentYaml, setYaml }) { function useYaml(yamlString) { const [deserialized, setDeserialized] = useState(null); useEffect(() => { - setDeserialized(safeLoad(yamlString)); + try { + setDeserialized(safeLoad(yamlString)); + } catch (error) { + console.log(error); + return setDeserialized({ + error_name: error.name, + error_message: error.message, + error_stack: error.stack, + }); + } }, [yamlString]); return deserialized; } function saveYaml(yamlString) { Fs.of(YAML_PATH).upload(yamlString); -} +} \ No newline at end of file diff --git a/frontend/util/animations/aperture.json b/frontend/util/animations/aperture.json new file mode 100644 index 0000000..f3a1c9c --- /dev/null +++ b/frontend/util/animations/aperture.json @@ -0,0 +1 @@ +{"v":"4.6.9","fr":30,"ip":0,"op":300,"w":800,"h":600,"nm":"Aperture","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Mask1","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[0],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[-12],"e":[-12]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[-12],"e":[-30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[-30],"e":[-30]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[-30],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[-12],"e":[-12]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[-12],"e":[0]},{"t":240.0000097754}]},"p":{"a":0,"k":[327.182,282,0]},"a":{"a":0,"k":[-73.125,-18.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.8392156862745098,0.25882352941176473,0.25882352941176473,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shutter6","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[300],"e":[288]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[288],"e":[288]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[288],"e":[270]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[270],"e":[270]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[270],"e":[288]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[288],"e":[288]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[288],"e":[300]},{"t":240.0000097754}]},"p":{"a":0,"k":[348.182,354.25,0]},"a":{"a":0,"k":[-72.611,-18.267,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Mask6","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[300],"e":[288]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[288],"e":[288]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[288],"e":[270]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[270],"e":[270]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[270],"e":[288]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[288],"e":[288]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[288],"e":[300]},{"t":240.0000097754}]},"p":{"a":0,"k":[348.182,354.25,0]},"a":{"a":0,"k":[-72.611,-18.267,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.387454,0.387454,0.387454,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shutter5","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[240],"e":[228]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[228],"e":[228]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[228],"e":[210]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[210],"e":[210]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[210],"e":[228]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[228],"e":[228]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[228],"e":[240]},{"t":240.0000097754}]},"p":{"a":0,"k":[420.432,372.375,0]},"a":{"a":0,"k":[-72.308,-18.509,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Mask5","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[240],"e":[228]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[228],"e":[228]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[228],"e":[210]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[210],"e":[210]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[210],"e":[228]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[228],"e":[228]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[228],"e":[240]},{"t":240.0000097754}]},"p":{"a":0,"k":[420.432,372.375,0]},"a":{"a":0,"k":[-72.308,-18.509,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.3318627,0.3318627,0.3318627,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"Shutter4","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[180],"e":[168]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[168],"e":[168]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[168],"e":[150]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[150],"e":[150]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[150],"e":[168]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[168],"e":[168]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[168],"e":[180]},{"t":240.0000097754}]},"p":{"a":0,"k":[472.557,319.125,0]},"a":{"a":0,"k":[-72.25,-18.625,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Mask4","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[180],"e":[168]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[168],"e":[168]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[168],"e":[150]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[150],"e":[150]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[150],"e":[168]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[168],"e":[168]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[168],"e":[180]},{"t":240.0000097754}]},"p":{"a":0,"k":[472.557,319.125,0]},"a":{"a":0,"k":[-72.25,-18.625,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.2803309,0.2803309,0.2803309,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Shutter3","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[120],"e":[108]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[108],"e":[108]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[108],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[90],"e":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[90],"e":[108]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[108],"e":[108]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[108],"e":[120]},{"t":240.0000097754}]},"p":{"a":0,"k":[453.307,246.875,0]},"a":{"a":0,"k":[-72.753,-18.762,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":10,"ty":4,"nm":"Mask3","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[120],"e":[108]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[108],"e":[108]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[108],"e":[90]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[90],"e":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[90],"e":[108]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[108],"e":[108]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[108],"e":[120]},{"t":240.0000097754}]},"p":{"a":0,"k":[453.307,246.875,0]},"a":{"a":0,"k":[-72.753,-18.762,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.2320159,0.2320159,0.2320159,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":11,"ty":4,"nm":"Shutter2","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[60],"e":[48]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[48],"e":[48]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[48],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[30],"e":[30]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[30],"e":[48]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[48],"e":[48]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[48],"e":[60]},{"t":240.0000097754}]},"p":{"a":0,"k":[379.807,227.875,0]},"a":{"a":0,"k":[-73.145,-18.559,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":12,"ty":4,"nm":"Mask2","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[60],"e":[48]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[48],"e":[48]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[48],"e":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[30],"e":[30]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[30],"e":[48]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[48],"e":[48]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[48],"e":[60]},{"t":240.0000097754}]},"p":{"a":0,"k":[379.807,227.875,0]},"a":{"a":0,"k":[-73.145,-18.559,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[1,0,0.985202,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":10},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0.1655484,0.1655484,0.1655484,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":13,"ty":4,"nm":"Shutter1","tt":2,"ks":{"o":{"a":0,"k":100},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[0],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[-12],"e":[-12]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[-12],"e":[-30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":90,"s":[-30],"e":[-30]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[-30],"e":[-12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":180,"s":[-12],"e":[-12]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[-12],"e":[0]},{"t":240.0000097754}]},"p":{"a":0,"k":[327.182,282,0]},"a":{"a":0,"k":[-73.125,-18.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,57]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.307,-47.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1}]}],"fonts":{"list":[{"fName":"Gotham-Book","fFamily":"Gotham","fStyle":"Book","ascent":73.9995727539062}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"2.8","cl":"8","ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[0],"e":[25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[25],"e":[25]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[25],"e":[0]},{"t":160.000006516934}]},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":60,"s":[399.996,475,0],"e":[399.996,455,0],"to":[0,-3.33333325386047,0],"ti":[0,3.33333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":70,"s":[399.996,455,0],"e":[399.996,455,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":150,"s":[399.996,455,0],"e":[399.996,475,0],"to":[0,3.33333325386047,0],"ti":[0,-3.33333325386047,0]},{"t":160.000006516934}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"t":{"d":{"k":[{"s":{"s":24,"f":"Gotham-Book","t":"","j":2,"tr":0,"lh":28.8,"ls":0,"fc":[0.11,0.11,0.11],"sc":[0,0,0],"sw":1,"of":false},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0]}},"a":[]},"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":5,"nm":"10","ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[0],"e":[25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[25],"e":[25]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":60,"s":[25],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":70,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":150,"s":[0],"e":[25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":160,"s":[25],"e":[25]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[25],"e":[0]},{"t":220.000008960784}]},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[399.996,475,0],"e":[399.996,455,0],"to":[0,-3.33333325386047,0],"ti":[0,3.33333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[399.996,455,0],"e":[399.996,455,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":60,"s":[399.996,455,0],"e":[399.996,435,0],"to":[0,-3.33333325386047,0],"ti":[0,3.33333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":70,"s":[399.996,434.99999999999994,0],"e":[399.996,435,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":150,"s":[399.996,434.99999999999994,0],"e":[399.996,455,0],"to":[0,3.33333325386047,0],"ti":[0,-3.33333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":160,"s":[399.996,455,0],"e":[399.996,455,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":210,"s":[399.996,455,0],"e":[399.996,475,0],"to":[0,3.33333325386047,0],"ti":[0,-3.33333325386047,0]},{"t":220.000008960784}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"t":{"d":{"k":[{"s":{"s":24,"f":"Gotham-Book","t":"","j":2,"tr":0,"lh":28.8,"ls":0,"fc":[0.11,0.11,0.11],"sc":[0,0,0],"sw":1,"of":false},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0]}},"a":[]},"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":5,"nm":"16","ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":0,"s":[25],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":10,"s":[0],"e":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0_1_0p167_0p167"],"t":210,"s":[0],"e":[25]},{"t":220.000008960784}]},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":0,"s":[399.996,455,0],"e":[399.996,435,0],"to":[0,-3.33333325386047,0],"ti":[0,3.33333325386047,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":10,"s":[399.996,434.99999999999994,0],"e":[399.996,435,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"n":"0_1_0p167_0p167","t":210,"s":[399.996,434.99999999999994,0],"e":[399.996,455,0],"to":[0,3.33333325386047,0],"ti":[0,-3.33333325386047,0]},{"t":220.000008960784}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"t":{"d":{"k":[{"s":{"s":24,"f":"Gotham-Book","t":"","j":2,"tr":0,"lh":28.8,"ls":0,"fc":[0.11,0.11,0.11],"sc":[0,0,0],"sw":1,"of":false},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0]}},"a":[]},"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Circle Guide 2","ks":{"o":{"a":0,"k":25},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[-111.812,-51.812,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[178,178]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[-111.812,-51.812],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Circle Guide","td":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[-111.812,-51.812,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[150,150]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9803921568627451,0.5294117647058824,0.33725490196078434,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-111.812,-51.812],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":0,"nm":"Shutters","tt":1,"refId":"comp_0","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[400,300,0]},"a":{"a":0,"k":[400,300,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":800,"h":600,"ip":0,"op":450.000018328876,"st":0,"bm":0,"sr":1}],"chars":[{"ch":"1","size":24,"style":"Book","w":35.8,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[18.027,0],[25.882,0],[25.882,-70.999],[20.041,-70.999],[2.82,-65.057],[4.733,-58.612],[18.027,-62.741]],"o":[[18.027,0],[25.882,0],[25.882,-70.999],[20.041,-70.999],[2.82,-65.057],[4.733,-58.612],[18.027,-62.741]],"v":[[18.027,0],[25.882,0],[25.882,-70.999],[20.041,-70.999],[2.82,-65.057],[4.733,-58.612],[18.027,-62.741]],"c":true}},"nm":"1","mn":"ADBE Vector Shape - Group"}],"nm":"1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[53.825,0],[61.681,0],[61.681,-70.999],[55.84,-70.999],[38.618,-65.057],[40.532,-58.612],[53.825,-62.741]],"c":true}},"nm":"1","mn":"ADBE Vector Shape - Group"}],"nm":"1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"},{"ch":"6","size":24,"style":"Book","w":64.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[25.781,1.208],[58.813,-8.66],[58.813,-22.458],[47.534,-44.11],[18.934,-39.981],[14.301,-34.241],[21.45,-64.453],[46.426,-61.935],[56.296,-63.647],[43.908,-71.704],[6.143,-54.886],[6.143,-33.234],[9.365,-11.582]],"o":[[47.837,1.208],[58.813,-22.256],[58.813,-35.651],[25.278,-44.11],[14.301,-33.234],[14.301,-50.153],[41.491,-64.453],[51.663,-57.504],[50.153,-68.682],[17.019,-71.704],[6.143,-33.435],[6.143,-18.833],[19.436,-1.511]],"v":[[33.536,1.208],[58.813,-22.256],[58.813,-22.458],[34.442,-44.11],[14.301,-33.234],[14.301,-34.241],[35.046,-64.453],[51.663,-57.504],[56.296,-63.647],[35.449,-71.704],[6.143,-33.435],[6.143,-33.234],[15.005,-5.942]],"c":true}},"nm":"6","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[44.009,-5.841],[15.811,-12.689],[15.811,-21.854],[22.861,-37.262],[50.656,-30.817],[50.656,-21.954]],"o":[[23.263,-5.841],[15.811,-21.652],[15.811,-29.709],[43.607,-37.262],[50.656,-22.156],[50.656,-12.991]],"v":[[33.636,-5.841],[15.811,-21.652],[15.811,-21.854],[33.435,-37.262],[50.656,-22.156],[50.656,-21.954]],"c":true}},"nm":"6","mn":"ADBE Vector Shape - Group"}],"nm":"6","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-7.755,0],[0,13.596],[0,0],[13.092,0],[4.633,-6.747],[0,0],[-13.596,0],[-5.237,-4.431],[0,0],[8.459,0],[0,-21.451],[0,0],[-5.64,-5.64]],"o":[[14.301,0],[0,0],[0,-13.193],[-9.164,0],[0,0],[0,-15.912],[6.445,0],[0,0],[-6.143,-5.035],[-18.43,0],[0,0],[0,14.401],[4.431,4.431]],"v":[[98.235,1.208],[123.512,-22.256],[123.512,-22.458],[99.141,-44.11],[78.999,-33.234],[78.999,-34.241],[99.745,-64.453],[116.362,-57.504],[120.995,-63.647],[100.148,-71.704],[70.842,-33.435],[70.842,-33.234],[79.704,-5.942]],"c":true}},"nm":"6","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[10.373,0],[0,8.963],[0,0],[-10.574,0],[0,-8.661],[0,0]],"o":[[-10.373,0],[0,0],[0,-7.855],[10.172,0],[0,0],[0,8.963]],"v":[[98.335,-5.841],[80.51,-21.652],[80.51,-21.854],[98.134,-37.262],[115.355,-22.156],[115.355,-21.954]],"c":true}},"nm":"6","mn":"ADBE Vector Shape - Group"},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"}],"nm":"6","np":5,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"},{"ch":"0","size":24,"style":"Book","w":71.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[17.725,1.208],[65.762,-15.509],[65.762,-35.449],[54.281,-71.704],[6.244,-54.987],[6.244,-35.046]],"o":[[54.08,1.208],[65.762,-35.248],[65.762,-55.188],[18.027,-71.704],[6.244,-35.248],[6.244,-15.307]],"v":[[35.953,1.208],[65.762,-35.248],[65.762,-35.449],[36.154,-71.704],[6.244,-35.248],[6.244,-35.046]],"c":true}},"nm":"0","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[49.347,-6.042],[14.502,-19.84],[14.502,-35.449],[22.76,-64.453],[57.504,-50.656],[57.504,-35.046]],"o":[[22.961,-6.042],[14.502,-35.248],[14.502,-50.958],[49.045,-64.453],[57.504,-35.248],[57.504,-19.638]],"v":[[36.154,-6.042],[14.502,-35.248],[14.502,-35.449],[35.953,-64.453],[57.504,-35.248],[57.504,-35.046]],"c":true}},"nm":"0","mn":"ADBE Vector Shape - Group"}],"nm":"0","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-18.228,0],[0,19.739],[0,0],[18.127,0],[0,-19.739],[0,0]],"o":[[18.127,0],[0,0],[0,-19.739],[-18.127,0],[0,0],[0,19.739]],"v":[[107.452,1.208],[137.262,-35.248],[137.262,-35.449],[107.654,-71.704],[77.744,-35.248],[77.744,-35.046]],"c":true}},"nm":"0","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[13.193,0],[0,15.408],[0,0],[-13.193,0],[0,-15.408],[0,0]],"o":[[-13.193,0],[0,0],[0,-15.509],[13.092,0],[0,0],[0,15.408]],"v":[[107.654,-6.042],[86.002,-35.248],[86.002,-35.449],[107.452,-64.453],[129.004,-35.248],[129.004,-35.046]],"c":true}},"nm":"0","mn":"ADBE Vector Shape - Group"},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"}],"nm":"0","np":5,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"},{"ch":"2","size":24,"style":"Book","w":59.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.834,0],[54.08,0],[54.08,-7.251],[16.718,-7.251],[35.55,-23.969],[53.375,-41.089],[53.375,-51.562],[44.211,-71.503],[12.488,-65.964],[11.984,-52.267],[22.86,-64.352],[45.117,-59.116],[41.19,-38.37],[4.834,-6.143]],"o":[[4.834,0],[54.08,0],[54.08,-7.251],[16.718,-7.251],[47.937,-34.745],[53.375,-51.361],[53.375,-63.043],[19.135,-71.503],[6.143,-56.497],[17.624,-60.122],[38.571,-64.352],[45.117,-43.808],[30.414,-28.702],[4.834,-6.143]],"v":[[4.834,0],[54.08,0],[54.08,-7.251],[16.718,-7.251],[35.55,-23.969],[53.375,-51.361],[53.375,-51.562],[31.522,-71.503],[6.143,-56.497],[11.984,-52.267],[30.917,-64.352],[45.117,-50.858],[30.414,-28.702],[4.834,-6.143]],"c":true}},"nm":"2","mn":"ADBE Vector Shape - Group"}],"nm":"2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,10.272],[0,0],[12.689,0],[6.345,-9.467],[0,0],[-8.057,0],[0,-8.258],[10.776,-9.668],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[12.387,-10.776],[0,0],[0,-11.481],[-12.387,0],[0,0],[5.64,-7.855],[7.654,0],[0,7.05],[0,0],[0,0]],"v":[[64.734,0],[113.98,0],[113.98,-7.251],[76.617,-7.251],[95.45,-23.969],[113.275,-51.361],[113.275,-51.562],[91.422,-71.503],[66.043,-56.497],[71.884,-52.267],[90.817,-64.352],[105.017,-50.858],[90.314,-28.702],[64.734,-6.143]],"c":true}},"nm":"2","mn":"ADBE Vector Shape - Group"}],"nm":"2","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"},{"ch":".","size":24,"style":"Book","w":24.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.755,0],[17.02,0],[17.02,-10.574],[7.755,-10.574]],"o":[[7.755,0],[17.02,0],[17.02,-10.574],[7.755,-10.574]],"v":[[7.755,0],[17.02,0],[17.02,-10.574],[7.755,-10.574]],"c":true}},"nm":".","mn":"ADBE Vector Shape - Group"}],"nm":".","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[32.254,0],[41.519,0],[41.519,-10.574],[32.254,-10.574]],"c":true}},"nm":".","mn":"ADBE Vector Shape - Group"}],"nm":".","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"},{"ch":"8","size":24,"style":"Book","w":63,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.718,1.007],[58.209,-7.05],[58.209,-19.235],[52.066,-33.334],[55.792,-44.513],[55.792,-52.872],[44.614,-71.503],[7.654,-63.748],[7.654,-52.67],[13.193,-39.477],[5.237,-27.494],[5.237,-18.933]],"o":[[46.728,1.007],[58.209,-19.034],[58.209,-27.594],[50.253,-39.477],[55.792,-52.67],[55.792,-63.748],[18.832,-71.503],[7.654,-52.872],[7.654,-44.513],[11.28,-33.435],[5.237,-19.135],[5.237,-7.15]],"v":[[31.723,1.007],[58.209,-19.034],[58.209,-19.235],[43.707,-36.456],[55.792,-52.67],[55.792,-52.872],[31.723,-71.503],[7.654,-52.872],[7.654,-52.67],[19.739,-36.456],[5.237,-19.135],[5.237,-18.933]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[40.686,-39.276],[15.61,-44.513],[15.61,-52.368],[22.559,-64.554],[47.836,-59.317],[47.836,-52.167]],"o":[[22.76,-39.276],[15.61,-52.167],[15.61,-59.418],[40.887,-64.554],[47.836,-52.368],[47.836,-44.513]],"v":[[31.723,-39.276],[15.61,-52.167],[15.61,-52.368],[31.723,-64.554],[47.836,-52.368],[47.836,-52.167]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[43.304,-5.942],[13.293,-12.085],[13.293,-19.336],[21.451,-32.73],[50.153,-27.191],[50.153,-19.135]],"o":[[20.142,-5.942],[13.293,-19.135],[13.293,-27.191],[41.995,-32.73],[50.153,-19.336],[50.153,-11.985]],"v":[[31.723,-5.942],[13.293,-19.135],[13.293,-19.336],[31.723,-32.73],[50.153,-19.336],[50.153,-19.135]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"}],"nm":"8","np":6,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.005,0],[0,11.984],[0,0],[8.359,3.122],[0,8.157],[0,0],[12.891,0],[0,-10.876],[0,0],[-6.546,-3.021],[0,-8.359],[0,0]],"o":[[15.005,0],[0,0],[0,-8.359],[6.546,-3.021],[0,0],[0,-10.876],[-12.891,0],[0,0],[0,8.157],[-8.459,3.021],[0,0],[0,11.783]],"v":[[94.722,1.007],[121.208,-19.034],[121.208,-19.235],[106.706,-36.456],[118.791,-52.67],[118.791,-52.872],[94.722,-71.503],[70.653,-52.872],[70.653,-52.67],[82.738,-36.456],[68.236,-19.135],[68.236,-18.933]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[8.963,0],[0,7.654],[0,0],[-9.164,0],[0,-6.949],[0,0]],"o":[[-8.963,0],[0,0],[0,-7.05],[9.164,0],[0,0],[0,7.654]],"v":[[94.722,-39.276],[78.609,-52.167],[78.609,-52.368],[94.722,-64.554],[110.835,-52.368],[110.835,-52.167]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[11.581,0],[0,7.05],[0,0],[-10.272,0],[0,-7.855],[0,0]],"o":[[-11.581,0],[0,0],[0,-7.855],[10.272,0],[0,0],[0,7.15]],"v":[[94.722,-5.942],[76.292,-19.135],[76.292,-19.336],[94.722,-32.73],[113.152,-19.336],[113.152,-19.135]],"c":true}},"nm":"8","mn":"ADBE Vector Shape - Group"},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge"}],"nm":"8","np":6,"cix":2,"ix":2,"mn":"ADBE Vector Group"}]},"fFamily":"Gotham"}]} \ No newline at end of file diff --git a/frontend/util/animations/error.json b/frontend/util/animations/error.json new file mode 100644 index 0000000..8deece9 --- /dev/null +++ b/frontend/util/animations/error.json @@ -0,0 +1 @@ +{"v":"5.1.5","fr":29.9700012207031,"ip":0,"op":42.0000017106951,"w":32,"h":32,"nm":"System-states-Sin conexión","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":3,"ty":4,"nm":"! contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[130,130,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[130,130,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.442,0],[0,-0.443],[-0.442,0],[0,0.441]],"o":[[-0.442,0],[0,0.441],[0.442,0],[0,-0.443]],"v":[[0,-0.8],[-0.8,0],[0,0.8],[0.8,0]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,12.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.221,0],[0,0.221],[0,0],[0.221,0],[0,-0.221],[0,0]],"o":[[0.221,0],[0,0],[0,-0.221],[-0.221,0],[0,0],[0,0.221]],"v":[[0,2.544],[0.4,2.144],[0.4,-2.144],[0,-2.544],[-0.4,-2.144],[-0.4,2.144]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,7.194],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sombra contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8.4,"s":[100],"e":[0]},{"t":23.8000009693939}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[180,180,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[180,180,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/package.json b/package.json index c505f07..9c9e857 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "last 10 Firefox versions" ], "dependencies": { + "@lottiefiles/react-lottie-player": "^3.1.2", "express": "~4.17.1", "socketio": "^1.0.0" }, diff --git a/yarn.lock b/yarn.lock index 9b864fd..0a885f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -706,6 +706,13 @@ resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== +"@lottiefiles/react-lottie-player@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@lottiefiles/react-lottie-player/-/react-lottie-player-3.1.2.tgz#077e581ffa0469d6499bf9dae21b758334143c01" + integrity sha512-u8ApmkpV4bpiQ2hqHyZGy9mmsTKxFvrQBgIJC1epPjs8NdYuAyN//33UXMFzddmvmrVCMzM4WdJb8sPoN+bIIg== + dependencies: + lottie-web "^5.7.8" + "@material-ui/core@^4.8.0": version "4.8.0" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.8.0.tgz#8fb4f4df2b35e3e781b1eec17d4aaf388edf3099" @@ -3577,6 +3584,11 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" +lottie-web@^5.7.8: + version "5.7.8" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.7.8.tgz#c7a2e42983bcb42093590a03ccdde8741d3f960e" + integrity sha512-VxKCZk33GwZac6mVHvT3grUFR/zrMsW85M7vxQPrgpJOP2IhcnjMbuD0h7muBkXgw84K9KmGulmcyzvhpzSMAg== + magic-string@^0.22.4: version "0.22.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" From 78d595255130865b9c18506fa8e4b5453b42a6d1 Mon Sep 17 00:00:00 2001 From: hanupratap Date: Wed, 14 Apr 2021 02:26:31 +0530 Subject: [PATCH 2/3] fixed invalid widget error --- dashboard.yml | 7 +- frontend/routes/Dashboard.jsx | 125 ++++++++++++++++++++-------- frontend/util/animations/error.json | 1 - 3 files changed, 91 insertions(+), 42 deletions(-) delete mode 100644 frontend/util/animations/error.json diff --git a/dashboard.yml b/dashboard.yml index cdf3121..99e8202 100644 --- a/dashboard.yml +++ b/dashboard.yml @@ -17,14 +17,13 @@ Exposure Time [ms]: - widget: slider path: devices/cmv12000/computed/exposure_time_ms min: 100 - max: *10000 - + max: 10000 - widget: spacing px: 30 - widget: buttons path: devices/cmv12000/computed/exposure_time_ms buttons: - -1 EV: x => parseFloat(x) / 2 + -2 EV: x => parseFloat(x) / 2 -1/3 EV: x => parseFloat(x) / Math.pow(2, 1/3) +1/3 EV: x => parseFloat(x) * Math.pow(2, 1/3) - +1 EV: x => parseFloat(x) * 2 + +2 EV: x => parseFloat(x) * 2 diff --git a/frontend/routes/Dashboard.jsx b/frontend/routes/Dashboard.jsx index ee14c84..be8a891 100644 --- a/frontend/routes/Dashboard.jsx +++ b/frontend/routes/Dashboard.jsx @@ -8,6 +8,8 @@ import { DialogContentText, DialogTitle, Fab, + Grid, + Link, makeStyles, Paper, TextField, @@ -21,9 +23,11 @@ import { NctrlValueWidgets } from '../components/*.jsx'; import Typography from '@material-ui/core/Typography'; import { NCTRL_BASE_PATH } from '../util/nctrl'; import { Player } from '@lottiefiles/react-lottie-player'; +import ErrorTwoToneIcon from '@material-ui/icons/ErrorTwoTone'; +// This animation is taken from : https://lottiefiles.com/624-camera-aperture and comes under creative commons license 4.0 const apertus_animation = require('../util/animations/aperture.json'); -const yaml_error = require('../util/animations/error.json'); + export const title = 'Dashboard'; export const route = '/dashboard'; export const explanation = ` @@ -31,6 +35,12 @@ export const explanation = ` **set-compatible** way. Here you can set the ISO, exposure time and related parameters.`; const YAML_PATH = 'dashboard.yml'; +const validYAML = new Set([ + '- widget: spacing', + '- widget: slider', + '- widget: textfield', + '- widget: buttons', +]); const useStyles = makeStyles(theme => ({ add: { @@ -72,6 +82,10 @@ const useStyles = makeStyles(theme => ({ paper: { padding: '10px 5px', }, + attribution: { + fontFamily: theme.typography.fontFamily, + padding: theme.spacing(1), + }, })); export function Component(props) { @@ -86,7 +100,6 @@ export function Component(props) { }, [file_yml]); const parsed = useYaml(yaml); - const [rerenderDep, setRerenderDep] = useState(0); const rerender = () => setRerenderDep(rerenderDep + 1); @@ -101,25 +114,26 @@ export function Component(props) { }} /> } -
+
{!parsed ? ( ) : parsed.error_message ? (
- + + + + An Error has Occured :

@@ -131,30 +145,41 @@ export function Component(props) {
) : ( - Object.keys(parsed).map((heading, i) => { - return ( -
- {heading}: - - {parsed[heading].map((x, i) => { - const InputWidget = - NctrlValueWidgets[ - `NctrlValue${x.widget.replace(/^(.)/, v => v.toUpperCase())}` - ]; - return ( - - ); - })} - -
- ); - }) +
+
+ {Object.keys(parsed).map((heading, i) => { + return ( +
+ {heading}: + + {parsed[heading].map((x, i) => { + const InputWidget = + NctrlValueWidgets[ + `NctrlValue${x.widget.replace(/^(.)/, v => v.toUpperCase())}` + ]; + return ( + + ); + })} + +
+ ); + })} +
+ + aperture animation + +
)}
@@ -216,13 +241,39 @@ function EditDashboard({ current_yml: currentYaml, setYaml }) { ); } +function validateWidgets(yamlString) { + var idx = 0, + curWidget = ''; + while (idx < yamlString.length) { + while (idx < yamlString.length && yamlString[idx] == ' ') idx++; + if (idx == yamlString.length) return null; + if (yamlString[idx] == '-' && idx < yamlString.length - 1 && yamlString[idx + 1] == ' ') { + while (idx < yamlString.length && yamlString[idx] != '\n') curWidget += yamlString[idx++]; + if (!validYAML.has(curWidget)) { + return curWidget; + } + curWidget = ''; + } else { + while (idx < yamlString.length && yamlString[idx] != '\n') idx++; + } + idx++; + } + return null; +} + function useYaml(yamlString) { const [deserialized, setDeserialized] = useState(null); useEffect(() => { try { + const res = validateWidgets(yamlString); + if (yamlString != null && res) + throw { + name: 'Invalid widget', + message: `Cannot find widget`, + stack: `Error : ---${res}---; ${yamlString}`, + }; setDeserialized(safeLoad(yamlString)); } catch (error) { - console.log(error); return setDeserialized({ error_name: error.name, error_message: error.message, @@ -235,4 +286,4 @@ function useYaml(yamlString) { function saveYaml(yamlString) { Fs.of(YAML_PATH).upload(yamlString); -} \ No newline at end of file +} diff --git a/frontend/util/animations/error.json b/frontend/util/animations/error.json deleted file mode 100644 index 8deece9..0000000 --- a/frontend/util/animations/error.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.1.5","fr":29.9700012207031,"ip":0,"op":42.0000017106951,"w":32,"h":32,"nm":"System-states-Sin conexión","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":3,"ty":4,"nm":"! contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[130,130,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[130,130,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.442,0],[0,-0.443],[-0.442,0],[0,0.441]],"o":[[-0.442,0],[0,0.441],[0.442,0],[0,-0.443]],"v":[[0,-0.8],[-0.8,0],[0,0.8],[0.8,0]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,12.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.221,0],[0,0.221],[0,0],[0.221,0],[0,-0.221],[0,0]],"o":[[0.221,0],[0,0],[0,-0.221],[-0.221,0],[0,0],[0,0.221]],"v":[[0,2.544],[0.4,2.144],[0.4,-2.144],[0,-2.544],[-0.4,-2.144],[-0.4,2.144]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,7.194],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sombra contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8.4,"s":[100],"e":[0]},{"t":23.8000009693939}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[180,180,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[180,180,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0}],"markers":[]} \ No newline at end of file From 9f7cd79880a37fdb1a97944458e4d65f7884db64 Mon Sep 17 00:00:00 2001 From: hanupratap Date: Wed, 14 Apr 2021 02:30:46 +0530 Subject: [PATCH 3/3] fixed yaml --- dashboard.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dashboard.yml b/dashboard.yml index 99e8202..c3a32ef 100644 --- a/dashboard.yml +++ b/dashboard.yml @@ -23,7 +23,7 @@ Exposure Time [ms]: - widget: buttons path: devices/cmv12000/computed/exposure_time_ms buttons: - -2 EV: x => parseFloat(x) / 2 + -1 EV: x => parseFloat(x) / 2 -1/3 EV: x => parseFloat(x) / Math.pow(2, 1/3) +1/3 EV: x => parseFloat(x) * Math.pow(2, 1/3) - +2 EV: x => parseFloat(x) * 2 + +1 EV: x => parseFloat(x) * 2