From c7c85d188db04026bae6f49b81850a5f80661329 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 15 Apr 2024 16:10:09 -0700 Subject: [PATCH 1/2] Add support for precise layout cropping options. --- docs/configuration/cameras/README.md | 31 +++++- docs/configuration/dimensions.md | 12 ++- docs/images/media_layout/fit.png | Bin 0 -> 38041 bytes .../position-shorter-than-height.png | Bin 0 -> 49273 bytes .../position-thinner-than-width.png | Bin 0 -> 49881 bytes docs/images/media_layout/view-box.png | Bin 0 -> 34967 bytes package.json | 2 + scripts/update-images.sh | 16 +++ src/camera-manager/manager.ts | 14 ++- src/config/types.ts | 8 ++ src/const.ts | 8 ++ src/editor.ts | 93 +++++++++++++++--- src/localize/languages/ca.json | 8 ++ src/localize/languages/en.json | 10 +- src/localize/languages/fr.json | 8 ++ src/localize/languages/it.json | 8 ++ src/localize/languages/pt-BR.json | 8 ++ src/localize/languages/pt-PT.json | 8 ++ src/scss/media-layout.scss | 9 ++ src/utils/media-layout.ts | 10 ++ yarn.lock | 25 +++++ 21 files changed, 251 insertions(+), 27 deletions(-) create mode 100644 docs/images/media_layout/fit.png create mode 100644 docs/images/media_layout/position-shorter-than-height.png create mode 100644 docs/images/media_layout/position-thinner-than-width.png create mode 100644 docs/images/media_layout/view-box.png create mode 100755 scripts/update-images.sh diff --git a/docs/configuration/cameras/README.md b/docs/configuration/cameras/README.md index 1036071b..6aeef734 100644 --- a/docs/configuration/cameras/README.md +++ b/docs/configuration/cameras/README.md @@ -114,7 +114,8 @@ cameras: ## `dimensions` -The `dimensions` block configures the dimensions and layout of media of a given camera. +The `dimensions` block configures the dimensions and layout of media of a given camera (see [Card Dimensions](../dimensions.md) to set the dimensions of the whole card and not just a single camera). + ```yaml cameras: @@ -130,8 +131,7 @@ cameras: ### Layout Configuration -The `layout` block configures the fit and position of the media _within_ the camera dimensions (in order to control the dimensions for the whole card see [the card dimensions configuration](../dimensions.md) ). As the default behavior is to always expand to fit the media precisely, these options only make sense if the camera `dimensions.aspect_ratio` is set to a static value that forces a particular aspect ratio that does not match the camera media. - +The `layout` block configures the fit and position of the media _within_ the camera dimensions (in order to control the dimensions for the whole card see [the card dimensions configuration](../dimensions.md) ). ```yaml cameras: @@ -143,11 +143,32 @@ cameras: | Option | Default | Description | | - | - | - | -| `fit` | `contain` | If `contain`, the media is contained within the card and letterboxed if necessary. If `cover`, the media is expanded proportionally (i.e. maintaining the media aspect ratio) until the card is fully covered. If `fill`, the media is stretched to fill the card (i.e. ignoring the media aspect ratio). See [CSS object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) for technical details and a visualization. | -| `position` | | A dictionary that contains an `x` and `y` percentage (`0` - `100`) to control the position of the media when the fit is `cover`. This can be effectively used to "pan" the media around. At any given time, only one of `x` and `y` will have an effect, depending on whether media width is larger than the card width (in which case `x` controls the position) or the media height is larger than the card height (in which case `y` controls the position). A value of `0` means maximally to the left or top of the media, a value of `100` means maximally to the right or bottom of the media. See [CSS object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) for technical details and a visualization. | +| `fit` | `contain` | If `contain`, the media is contained within the card and letterboxed if necessary. If `cover`, the media is expanded proportionally (i.e. maintaining the media aspect ratio) until the camera/card dimensions are fully covered. If `fill`, the media is stretched to fill the camera/card dimensions (i.e. ignoring the media aspect ratio). See [CSS object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) for technical details and a visualization. | +| `position` | | A dictionary that may contain an `x` and `y` percentage (`0` - `100`) to control the position of the media when the fit is `cover` (for other values of `fit` this option has no effect). This can be effectively used to "pan"/cut the media shown. At any given time, only one of `x` and `y` will have an effect, depending on whether media width is larger than the camera/card dimensions (in which case `x` controls the position) or the media height is larger than the camera/card dimensions (in which case `y` controls the position). A value of `0` means maximally to the left or top of the media, a value of `100` means maximally to the right or bottom of the media. See [CSS object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) for technicals. See visualizations below. | +| `view_box` | | A dictionary that may contain a `top`, `bottom`, `left` and `right` percentage (`0` - `100`) to precisely crop what part of the media to show by specifying a % inset value from each side. Browsers apply this cropping after `position` and `fit` have been applied. See visualizations below. | + +!> The `view_box` parameter only has effect on browsers that support [`object-view-box`](https://caniuse.com/mdn-css_properties_object-view-box). As of writing this is exclusively Chromium based browsers (e.g. Google Chrome or Microsoft Edge). See [media layout examples](../../examples.md?id=media-layout). +#### Layout **Visualizations** + +##### `fit` + +![](../../images/media_layout/fit.png "Media Layout Fit :size=400") + +##### `position`: When media is shorter than dimensions height + +![](../../images/media_layout/position-shorter-than-height.png "Media Layout Position: Wider than taller :size=400") + +##### `position`: When media is thinner than dimensions width + +![](../../images/media_layout/position-thinner-than-width.png "Media Layout Position: Taller than wider :size=400") + +#### `view_box`: Precise media cropping + +![](../../images/media_layout/view-box.png "Media Layout Position: Taller than wider :size=400") + ## `triggers` The `triggers` block configures what triggers a camera. Triggering can be used diff --git a/docs/configuration/dimensions.md b/docs/configuration/dimensions.md index 2e60fdd8..45338087 100644 --- a/docs/configuration/dimensions.md +++ b/docs/configuration/dimensions.md @@ -1,10 +1,12 @@ # `dimensions` -These options control the dimensions and aspect-ratio of the card. These options -configuration applies once to the entire card (including the menu, thumbnails, -etc), not just to displayed media. This only applies to the card in normal -render mode -- when in fullscreen, or when in expanded (popup/dialog mode) the -aspect ratio is chosen dynamically to maximize the amount of content shown. +These options control the dimensions and aspect-ratio of the card (See [Camera +Dimensions](./cameras/README.md?id=dimensions) to set the dimensions of a camera +and not the whole card). These options configuration applies once to the entire +card (including the menu, thumbnails, etc), not just to displayed media. This +only applies to the card in normal render mode -- when in fullscreen, or when in +expanded (popup/dialog mode) the aspect ratio is chosen dynamically to maximize +the amount of content shown. ```yaml dimensions: diff --git a/docs/images/media_layout/fit.png b/docs/images/media_layout/fit.png new file mode 100644 index 0000000000000000000000000000000000000000..b47fe96a89bdd29decf998e661ca88fd608aad5b GIT binary patch literal 38041 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 NedUKr#R|_t{tu0n!qxx) literal 0 HcmV?d00001 diff --git a/docs/images/media_layout/position-shorter-than-height.png b/docs/images/media_layout/position-shorter-than-height.png new file mode 100644 index 0000000000000000000000000000000000000000..e4804d12aa88d5c5a021f0455d55aa939d0394f6 GIT binary patch literal 49273 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 W>Qnkjcm@UdQNM9V6|MZ#=f3~~ZtcJT literal 0 HcmV?d00001 diff --git a/docs/images/media_layout/position-thinner-than-width.png b/docs/images/media_layout/position-thinner-than-width.png new file mode 100644 index 0000000000000000000000000000000000000000..2f171db295ca570a93d7aba487a77301687faa20 GIT binary patch literal 49881 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 literal 0 HcmV?d00001 diff --git a/docs/images/media_layout/view-box.png b/docs/images/media_layout/view-box.png new file mode 100644 index 0000000000000000000000000000000000000000..9a91d96a26e9192998b31667cf9c6001096108b4 GIT binary patch literal 34967 zcmeFZXH-*N*Dfrgs0fOJARq#wR1pmz5UO;TA-C z4G>BKQUeJ+^bj~Z-cRv)zwaI6oFC`U8Sfv5BiZb%HP>9%y5^kMT;W<8O4O80lxNPI zp?<0?uXE-MIop{tWce24vl&GFdM(iCK0!|8g> zjNK_dcFak$FLfk!1(9EufvblLnwujK2tnce^wOGXFqS)*M)o56zy8TI>Ji5le7@v+ z@8-ob=M|mvbEZn)D}$pfE>WD7d96Jau41ZqG1Hs$Q2Hf_GZ)n~Ys_za^0p|zHYp9uS9cTIN_nnEBZdR{ktYWER|NBvkfoAe10{#69LH=2fv#arP z%)kI*osG%25$os-@1vFcjq^drnU84|$U$qbZ%j8>o>HIL4xjuu*?-j;7^+rv2pQQ$ z3W{@Vx1Y(-$a33Q$((ufnv5*$!cCfB8cO4vG(pdv$()%Zqd3PNEK3hOcN6%?JBaMb z#mwmc`P2U~)Bl4maqR;6Hugfxrc0fB>g*wrHE)eU;AB~_0`_B^FuZpoHe#T~C2}`g z;MBf4U%>xIN}ad9NmH9G<|L{Yw;G7af8n=M&(-9Y->+W8pitf7)|pDcv7UgOE$MtP zcCbA~_0$z;%M#f2ufb0<3B+T8u7TQbVh8Ot(_xQv`*3Lgj+-0bg-x3tA(rw-d~o=g zd`SV3hin(w>B=9no%tU2mds~qmvt&KVP&VD(B4^w=slsl!I!(n#~p*YFWfPCy5idB znQ~cRZ_<3^Udi-qxg+lK67=yJ%C4Glg=uM2w8+4uiM#w|T(f}^Bkkh)hdZD=CDwpS zWS*Se#!-q3-t+dsIOL^^u4~7%7XnL9@z%AeM|>&Kx^XYkMGuU;`MutrAFu90EuCL*^D{NL63xbr^a)76UDu>D=PG0t+c!OBdBT%B&9^~BrBpbj zO-P^4Ms(rWJuIRmwi@@xG*6@NBepzBHqs?}8cx5D{;WNWs)6o5LCnJDvn^8~dGnAt&7Hs)zls6|}gzCuPEb5<^f@9xX3T-z3$y{@Lw!m z$6I;28|e)SEc&AYeyCSVVqAJsU8yk^T=_J`I=MaG3A@YA{VS^!5skyP-O2k8ZKpwa zsgW*z{jZgVO+S;So19#o)yhti#Ymk}FaP-M|| zYd+M<>n^VIA&fD7~R6I%FoE#IS}eNa|NWYQlYX zcSU^TG^N@btEUmspZ1e|ah{E>Zw1!P^3^DSV2|g3!inEv1YVr3bnAz zsJbmMbKs$JF<#Ny;{lj!%}_LvkPdqN`_Rqpj{$1~XYiYAT;y2|OGMY(v!lhj0=6w+ z&wA!HCK~9@$oC3bIk#*L!PUkSEx1I;bq;fQyYMv}ocXD~Cgt-2g1Mln zAtZG4u#0VczSp$u`-pM%EKfzrm4@n3p6XERZPYs*tVexu!^**w^>S%Te|z$IWYF@F zp5)rjLUm~s_y|NZ(75%QCx&du-RADvs|NGYfy8$r(uXG|MF>~w*G3HiQ9hBJuckoK zpbNguYMK0qG8^9A+fK$E5750B`x-RO{Rr94k7nLmwp|0}+3HYi#(WiVwxWhYJ~N0( ze;C4gu_^1Stk#V!V5@e&a9Cl= zT@_)&N?`j>mkZr>B6F{lr^Bx_C@PN_C-`h3>xk1lc^aJLS^aC-n$5A-eRDJlWF1Go zdk&a$2P;#w!}2YStfN!NhU`Pp2KmkMU7vY6KD{1%RLri^VVM17UCiD?mfg|Ui8`#W z`JM++FK_6Ev)4*s)rvizd{49Csox$m4dX*|B^KmqGNs+HojXo4rnkCuAgKzQGh)2i zIlm-2ma{A@462-+FpPm7!*N*Gg2L_;4=@;gFFMqa4VOoOmU@B~O4yHJmL;DoWrraEzh2I{A$kbPp@ zmR7R$`k0cglXsjjRm~u$wXBZ=5 zd19B}L?$Hm*Rnj?Vx~ztFImm58E7L~x*E{rQ;b^_IWOz3xMK!6XVXo0WGmeO0C_SE z=YDOV%@vO{uz6rEW0{tBjMUZBiy9Ub@<_cYruHpM5$3PC8}EhLT)=3x-z=758<_U% zuxzqVE22f7=7Qy4H0Fx$MI~>mQ7rUtA^PMk8A46G7)DF(PaxA_`H?2l1?Z!YdPAUwrP9XZdiQ5KGCf)vx2@ zrI&WGUT-gnAOgK&yYC1V3_fg%l!B>`7<$L5IXs~bE6wgk<2dQE?5I0~jXxmz|GA>? z0JbiFi#n|QqJtmycyVdHk-7!2V_%t8?eJy;SKckvq_oP1s2G8kG^%SlOLt*uDA{im z)1cwRGm^-$glofT?&8;DE-~g79Z{?B=yI9DbrUHTjxU1~FQHC|vU&5b<5E6H;X!QR zbny*YMOmb26p=z6?;v!wE!4y~w%!PCJs=`Lo~2bf>!toMBLWS-#*m~gezi^E1964e z;P6@adY0CMhO`8-vTTcW`|N;b^QL-$+M4kM?^@XWTA`F`Au2F=g{!3Z)T?4Zl$S(Fv5* z%;TN;i;hs9rky>^i|vMV!$b;s9vi3{f1@1&>A0X^J7%`f5yZWq!fvGETI8HW6~WD2 zlvs^^x=dLyjIqMF0H?tCk;IOLetZJi5GLEYAiZg?yFRyzAlBDV3mGOZ9qtK^6+}?y zmt%O%$nRuZHS4P07ItupvsKOJR-t-^#0~lxUQB9T^+2@>vDH5YJ!J}aN3def{SK4j z|GDo9|Aiw z77fgHIT>fBr-@X+s|f8YLbB{zATmO-UvOVQ5flzN^1DP1N*_iVXUJXIyrH~rqud4` z99=$PF~mc_l#d{FF&VUgCinT4!;xd|(JvMcX_wB%r__w1Hhg1IJ@whT7X zt22qjRMQUZZy5T4GXBXn%+7;F zC|{vt*w1T5E)SA+iBbP_E_U6HFZNIslZNmb{*9&Vmw&tNO`0>mY3?$K=8^*+UHvyP z|10Rs4|1xDvKK?{1J-y5Akfws5)A+TQ!3yiiGMTXKmIh!Muz@@ndtm>kHE}WJrtKP zS?$~a>5OK-+5nwvO%{f5LN}%ZDn3l(L#dfLYj>4C-Yl!MYzc&*x4A)nd#lF20?Z;V zw>H*4(B6!0Q~EHAu6b5x%-4oy;8eL(g#U)qF>)tPBcRHlRN`&RA#2xvKe${UgJvo>^Ek+a>luTlx zB(^*0_Ql%M7zJPS9-eIH>z3Pe!MxT{hdeMMFvi;jdWFNTsCoHM(@lQTdHZGFTXPQU z&7!Z##QZBws{1EeO69b_?89Is!kHbH9?| zUgdgtDWdTPGZ1vy{cY#0XENBa5<+!vhi!uSo{g-vlg~_Z05XAFdrsOe_0>;J6o$^L zm~1F4s>OeGyzJ^S(J@2un$uyxK3c?Uq(J*>eMk5m)r1F4uFHd&eAP}9pnfz1*F&~< zntD`WieQ_^7QO`ciV}q*4~szZ@)rb`3ZrzuXcXkvrT(^&g0sv>;h00E1UA`AP;7caiW{8W`f#g#rh^JSoysV%MC^ zFK2eCwbIX!3K)Z%R5_Ltd?Covv;t!N2WiMy@dAW0gpQ|C84d??C`Fn%?iW@N+r*ri zL|^{O?uqAb7?7;aNTmuJ+$z#5+{S}!yN^db=Mn@grS#byt0Vj6GEI0lknkBW^k7$F z4FM@q!z6Z{TNa(nsC@w0^*@y|rzL=`e||JB*w1cRf8@dM(n8#OS9x06ux_#{5(yUY zOFJH56mdbF9YxmF&l;=7-%rYOA3D6k{Me~o7-?4Vq~oQfA#^7Ri;v-P-+$Nj$wr1Q zD@VWB_9lI)?;Yp!FH3?;ZWLC5t6Sf_kgj~(@h}al+4OvG!xtALK^+!pXLues|vPBkj89zd|fa<>Sy@CkI6QCB94dr}Q8xosk#^=$e zw@PT>xJRys)(#tnvnthUMHM(B6Bd;DEUKL;x+d`Gg8OakY6D-u2b5GyszIq{Des19 zh*?qSfO+$@Y5jUvC1h?+gw5C0*SSP={i=S>3o+m+^yvZ;GWvbhYI&KCUdKdGi`6 zIMm&nxUp~}y=I>XZ@ggOvP}=4a8%4k&EIqU$6GLoy>aW)8PZ;ANwDx;iK*`A$xq$JPgX%%iio+Y2`8q{Prb0cT;S%b zT;0w3iH5Bs$F5nct|uC$;KlHOQ?*<84BygpWbLbY5zp0eD=-o(iu=rCwn|X-ip|&f z2L2_T+S9UXnUr^1(s#jI-CdAv?rTx$ArBT)R(OSB`a=n-wcY49w}scfbGmPSo;qJ_L{=6qeU>CiWhyXhQ&r(HDH*z zT*UiBxuNSwn`{f!4fT#8$Vj0shJ|n#-1q6ZOnTs2z((;Tw5hy<1)~qdRz+H6pAEBY zo{|FaF0eD$W3S%qRa~K$f1TT7ShS&PeCaQ<3`_mbZvYW!B8C*1Ji0dt@AvPi zW@*yNRq@MD3k>zS`uy-`eqSK$Vm!E2|Eq!E6e(oGjc!orc2Iw35}7A+e*grpt7-n- zg%)!SE4$1R5)*Yuvq)=|*v-(7H`nep_vA%J`e?+wsPoLSm0?OlqKaM_@NWcnbNSeI z-?l4FTCx}iYc?IFd%Y;BKuE`g3-$#v3O9}I8D7b~)vzDLZn4W`m)zgFhg1v0 zRX~OtKj`!=z8eX^C(1_b%)*PPzxsAj~-%5AwQtq5lB4RU1H+n z3F=-Ai|TzkMHKp;9jLWbmo#FU@EqobDySwnH{)>t3W}wH_!~W!I$AVPmuqIq1~jE&~dAc1YdXmXa>W zvTwS6E1{79*QQ~NY~UIIO#yT}lqy6qOfBsOv)V+?gsRSTKI^DqT6o26p(&6yNVDFc zItMQH5T zTe_q7I}X1GE!VsHuUBnE;eTFOlJr;!gihA6T=^ID3C)^$HK74d@{R#xPRg&afF+7* zp0@?r$k^x{Lv5I@FIpb-Xo$`RTOvzL_mzB8mnB+?KV4;Hf~5iI$2yD-kgTSVXR&Os zv{Gb(zHECv;-Gmm`E)Dcu&XC%oapO1*>58wboP184U@d1z7!Eydwf?8ag)ikssvK< z>EeDB31&+^Cfqh9pJV-G^6lAos<^H}d()p^{13NVYC>DbhQyZ3W`ekFR5+fdfuX)X zf%rN`w~p$a8-W;jHjOxo61x@X9*85EH5=pD(v5mpM{%RM45c&327|6(<%=rB-Bv4O!IK7QjZ|TgivlfH<1BgBU;9si04&*hN*qI< zbUwnHn@%Oohmj)b93*T+teR!v4O4WF@6O}APRW^mb3b3Zkz!|H?9Y{q?*pOGFY4yq z(n^epjSSOcmw27WKvv8BKH>Im5_f8^rQI>{Ltp`(uL5m1$lo<|#hEYoX|~Yg`)U+l z>}Fo`bVU0MhW%if&&!WBEhb}>glec9uI+0)%6Od)fB9ham6D~<^Sl8$sKrh&y!{Ptm`tKZW?%FP&7%eaXTzhKW(8>CDOGgOv`5ruvHX zhXO5!C(gGPC&Vs**d{Ts$Zp5cue;4HYMctRzjj53%7|LC%Gex&c0rWl6TJ>58ZV7t za4R_ll~HyB9?Mq5QR2&_{b~RWzyhPN>gnx#H6Uw}dv$Ey)U`>N(Z%+u z#J=X(L1$2^=cGf%;XWkteLAFVfi5z4h$$}3doFyYQ%ECS!l&5}^-WZVD$J;C#Tel* z)~S?sgcbfdt`$~0X=yoeovn0g(Ed#)_0rxUb5MAs+O%0xwsZ7O$ZWCQq+N&OpzJjb~caD9)f zk}HUvJPWrffH=Ok56<=H+-2gFrWNPSiv2!0)=2AIl&*Mh$0$>4lI!hoBea3eMh3`- z1Wfu|0%EwDHp`P=$t8JaNcC)4UsSRFRP4OtkDr0JNhzD#K)UjY3JXEXrW9CEX?Lq` z$O;OZfw;Sdx^m&~SOgwMt(?_HNY!YQ?m|U%Lq-a=K2e_zNsxu;6y6^qLuYq&GMK&m zei%*~iygRSp+??=_S+hHdQO8a#~<(CE|J#XIPp~&f|BC4+v z&$9?T^2&z3Ba}YfPq~r;?CPI0rxJb%rW7`~^|wo9>nH-Q7)Z*;Vr*rEuC`m2M)Sr& z<{A_^`dtRO*Xk}Cx;}>POimiue+I81XFO62D>Ni4G=C~AWq+Z_v1t4GqW=RS8N|lq zFvJaD=HrFl&#dHg$;`+gZndWw;Y+QZ!OMa}7vEwJxVn+f-lbmZrzvVlirh9Rz0yy7 zqx$2qOYybK?ym+^jmWdY=TF>#Wy5BE69{Rj>!{>ja2zk#S~||}*PId9kt!i8%e1E_ zEls`z>J-fLd;rNb^j1|iHs1j2VS{)nh4#UOA{=6|0 zoutJ9vV^zDMb6>!Qd~@UVzN7cO|-sRq!#m&H~=i}P|CXUn+z0H*iy7!f!6H)rO%lT zAyzUwfoN@t%w9du;5*V3@*AW5uxp?|kY#<~B(RfgYleNy-Ma3HA9sudLjy`Z>9~Lt zkNY4YQ5trl)?gVkW&0d8RQgTyI#n2W0GyYGd{(!c{xlEua|19qolf?ZZ_Ja{a&1|yqO$6)U>C41r;}@bYCkzoPrBUWldW+s&48KavetlL zhUyKo8>dYu-DFP31c(h}?dv}fJHZ2`d!Oe9p=@u`#U$g$xZf=O;J($jj<9i2m)&QT zL+Y}eq|%#JQpo@OZdnTCgj1Kn-7*D{;@jCiwdOuwbYyB-cl`GXcmKtqwa}cw3V@W>|w$5sLU8{^IWLTe1`QD-#VxKkgb|S>Ur;o zO%nL8$JsGy#i>9pt9pGB=i_ChtNnQD@G4Upw`FFQ7h-Kc(OErojAg(1 zZRkBgt(C^n@69{iklyNkONvhE1O+@b-Gkh&fl{&|8#`wLCjEdqOqjuQxM}c*N7}oz zg*1NPys{GtN3A36?#ShBqc@I)j32x$@L}j)vgHagwVAVFI-b?@v{B_?S|@>*O>^<# zNY%F8WrY2Q&*$ttekRLC=<%FW?V_@Aqr0BpwNNtUrSjq&0x$F#`l1Bf6~5!k|9hdd zEY1P0_6;jPd2lixDZV~HX{jO+f9T!w;)za&Zkq9EOy+@A2^E5D6ffi|y9-K+P_qpr zzZ2VSm`#tp&lO3G)7kwRsVe2z=6=!0&*Y6vAb~rS z^D2p!#Sp2S0Z)fRRaPMjwlb9^`iqQqyCr?ke)NnwV~6?!xZ+aw?UMQfTYAD+ZO=Qh(Q7M z(#jIzk=l+0LMldmAWyw)J@PNnxi;=KVrc+>XN@G%*>eeBI!&oc3nwAs?WFPG-9Hj^W@vIB@8 z?kuY8V)eKZFm|&6&QnaL&4MmO;!%;63Tf`p5q-P13V7Zc(j1yru?M&hOyAw>o(Fqd zPWX;zvs_->pm1`w_H`Bnwb(Gek8o<0)u4cZYm>v0SfPKR2k-KSE?eX`O3{9xf7I)s z@ow;W=w5QIyR(_ih{tWFh+*L|e7v(audS8b2ich=>BgavA^%(Z;ENH_<6uy6pl;HN z;I(AC=ZI~3`hO(sKx}8)!#TQw=xzj(&#jYl-~TfkX~Rl&G5Am2PV{Q_AV&$`Y^W3& z9p~R~_&=BTy#8XZ(`5eR)qbWxZ#9rZgbBS&fs?8&t&JhClpUI5aTPCd#lH; z4ONfHzrxW6ce%5II?9ToJj^N{WPpI=|sO!q%@ zrtRMOQ7VGiGal(ecCP}}`lpjp9}IQ_ce)aW4J5s&l{LoWMxavbz=zL~kmaiX`VxWL z(>tk#CBD>%Yy3cV;LsGP6+b0^7SR@z$Q2D=f{rMjc~@6(SuZq3I@u8UT{zt^ej_Vxn`k70*_epP%JMn%3c6*LgfVW$oSVso6LlLX+|LAi7(BQ^UX0 z)LXNQUa+Nzba2O%&#(E|ZH)xzezK6O?QPTfLD$XASn&LYrH$G>2jH`F_qLWsqn#XRmUh;AZ@%o6$jks>;F{-ZdW; zF;3K4qdee-EzD};F}*+P`uar(C9e`IoXorNq?#lTGL^;|CkC9~Duoq?A;i4M)<)pR zlD)Dz`b=x^KzwTc*~M@dA1QTY@47JV(1k=C)0{$jVcr}RciH~*>$$g_uQHHXRgA{= zliO$E8(*xJz>b0MATso&)2Z7ib@BbA?YI=LWM{@`AHK&qBNO$6FNGEU^N2d8=v~bX z;V4^Cpg4L5Q3il#UL_*)EEyr571JbS-7Crp)cOdwxqi+$X;8PrKc}Cckn)AhPi9N^VV9reqo>f;aIS5 zWaL{i9?}1t2i4osG-=yXMWI-$uOz-Y#q>_laZE$wCURl-D54+V-||In+XuupIv~m? z#wDN42YSS0yv51|6xplQqRL&n?8mJgcjSJ`&l*m;ATlcqajQqu%&f$2CsL`u?=F<( z0=dr1|Mb>0f;7lDS3_!1PY{!ZRxnqiL|+D5Jl8=r6Bjc+|D4?sg!lsK1uS%Jv|~gY zJ8fri`fA$<#P(J9a6z{j?moGaHyzoukxT?wND><(O;ai8rLYsKH!;d8`zM#>e4U82 z5Y(gDH-cBc$Op*k{S|cX+#e94+^BUB1F~|ce1g=P$g@$aRH^HIEqui~uTR8XOiz=5 zy3#_`iH@-YR!$OvRZFV5pEQZg!Z^bgS@5C=m1S4r&Q;Dz)d6IVcc0*^0YkVr^u$f~ zw+=@_wWF-im;Lll-xMp~WTx@TV1>w_+`|5m;r$yOBLP(1`gakCimLNd$k-+A+L#oc z9@_(RTD7lcHMg=Z|BpcOe{`gOZrcAxHM4-S*!eBRg_h;%0Kqd0QLePkobM@efIQT6 zz~y*y87b`)?Ww~|YCr_tU46Z!RuZ->PbTxww|?zwSPp*k4BJC(hn|bebp%TALe@N+JHOR zZ#nUsA2s3P2dE-B z=EpAeh;;~}8Iea=;%6@D=wbCc+5;qsfs^Zyp?YEr-q5L0F3OJISp4had6w$QfQXdz z)84OKp6IU~w04rBdCndE%xld*wk*ewhELdi{r7_jT%OqBfD*J}&50Pi(R;IkdB=M^ zZ9d=J*LFi`wYkD^G+-W`ahjWP`zn)^qh}Q4!u={jf3dz-MgYq0SKsAQmWMW0c>$6H zDl@mX!B6g>wT9x3Dn6GwfQ?879u6juV@Jg8;ArH^Fdr+6u***y$?0lLNeWiPaXSl* zJjv>LtX2yfGLp2Y*v+*H-#;lvBfmO#^a(PQG@C{-l%OQajeDx6)|y}N3yhc9^u=)O zcrRtedDXbUhG;!40b(Fs^Ma6W9nObaY{62RWajG%cPDflKkNN}c+#JY1-*Gu&l7c$ODnXer{Y-SWL{$!-!! z#Ny&7HpagXz+mQc;(PUIudW-0C5>zAPxn{KnysPCLMnkBV9)jH^>iNh;b!Zjk5it@ z$F;=BlJU)6=YB7zsYYAo^^y6yt0kw`{0=}bIsMs zeWI7s@M<`Vz{=jthS6Jhi@;Z>9ZTY#ICI*3Xx$uk!AorevnFt2-)#NXl|{G+NZ+xR z6ONIYGha;U&D@C*j4jsnrQ|NnlJj0_8SkVRBm;Me@EsPv(RG}^Pn6QeO~F3@j-5l! zW@~|ofTPG2zb_p}7Rv;y{eV*zQ-@~j4~DKRnHzEF{0?4(^{BRagTR`2yf<}&CY(64 zF<#jP7HQDL6uTqm&04I(A<+mgHKYdeAwtR=-yNq}H%ttWBQ-sot8yWvU)l)RMf#Dw zCnrcBkJbV)KwweJx|C?S*ydr)4b+SXsf|NHYXcBy*VLVMl4W&M*L?Js*s9u9oEC>x zHC&B!BJrhQtw%#S6CW_YA5j@~%nyh=nDoUwmOOR#V!bsH%Wb?(y}wVwL)mM3MSvQ! zf%LAh)>1(3y4e9}SdX)x=hB|Y+@wFSItTPv(C~8JId}Q}WyF$zCCF={Uf~9>!I1&1 zYHjQ_2Lp+=v+Jn^lf9m6&CDSBd_3t6I;bI&KYV{fsiDP{)Ozy%3wF#^{=Os~Uojck zrf!`|91i`@x#Y}-%mJ+)peGmUWgi))QD9Jgt+ulQW(F-*^XU6#^iH#&Yat;$(*&$5 zHF{5PgftL9Y27LRPPMcEbJENn{5*&CbZ#R86?%0dq`hYDdsNGz9i&F`MwN2g<#uYS zi#Az+_QRB9Jgtu&CJ}emVj6qqcyU4oru z_5wEh4m#3(eez5nSinwkTTzk~BJ)xg8DziFysz`!U6~nhK8QB2TsD{+_5-T3gph`- z@2_g#BI!EcGao);gE#NvFRg(s%0;Y>V6dGbC79RTQ?Ap!@^z#HY!fg2aTkdb-&`t* z(-7U-zo!y^tU2m9+HzYs@F(x-$twgyF}HbruXOiqFVqZghS{QF>4g16bsKY^Ni}+- zSt|G{#ktJH4>ZLuwa4S=(Zh45i+p+q99Bl{zr_PtHXSuHW<6gN!7rhP@^_~71l07dr}Aja_@9Q*X@=_<@3 z3YUghXbO!;VJRmF@#=ilTY zVZY49kJnKjP}dHi@#n%oK8(>yHBF*?TcaoIN6fD1RRN^ELf7YxlYx^cn6=B?@=uMJ zrIIU0I6ZOV$BfZZb-H`olIDjg2zN^@GLcp^#~fjz2m^eo8%ZUR23XhE^CWjB+U`Ld|5VNZQO!Sa=U zi`{igA6Mk-C@#s$zz#FXW&o5R$I$w{+P%8#_f$`!WUJ_Y#uebvy%!7_$=%dXnQQdF z`VYJAdbj_yTZ(;PzLYWL#o9O!5WvlJ@w+Vd(w%cf_MNzl2lA}4-_BggU~37ff0Zrf zk=&8#oHB0Rm2HY4;LsA=)4RNuO}0oU=L|QjgJn(KHv|O4VK-Jxboel~wpZBry$;hf z)r_$9Lm^*hy%lP_*lu<+I*Ywi+B}S2TZrxLJ9OQ!q-GE|?Lv)~yR;A^as6pU?|#4_ zzn7DmKT*=_wjq)=V-vg5sJhd(uFI@}{!dmwwx?UD z=Bs(NaB_tU4&K+^*IoS1%k<_L5n_L>U8vFAZ;!J|kdBXX+w@?M0d_09juk|MG?PAf zY8nV+YbD|jj{IB<_-w!H)GbZbb(D_)>&0bWzdM=R!7pHc8p>G;Y4w|VQZpF;p62&% zNes3SqFVs06T=-DMDyl+d&KbxeY5{^KCN)38IPxHBXoq~R4O9)Zu3dHqUiCW$h7A^ zMI1c9ZU6qh_w%3ReDSe7rhBdpGbc`2t+h51LKykQ?(*DAo9pguw*b6rHw%7tgZhw| zZ<@$`xi_9+Pt(08gwxH%Z$;*3Ks4j;4UsV;8=~THqDY#&l*8EEI}}kR(=RqDSn5?t z%kgIyNlO3}$6*b)5F^J_eVm~B3#4_4pqoKSg>)IA+pyqZjap90#Vvz;R))zU`1u3+ zJNKEk@tTI64}~12x0P(8q)*_a?UTWquSfVv%rE$MPW_8SvsqosEkCD1*h&VLobR#J zFL-ur3?QK~D6Tl^a=e}gg8>SQlN~IM;+`B6n`>6$`42*kTBuH3jTUYHZVD&9%mcmW zvmW?i$Q=~^+v^Crd?3X%C@2X%O zLQAD+vTiHUA<2N_;ytquk)F58Wv*x~j?Z#-U=)&i7}A6AyQ*HbDlHhJY1r`s}QO~mV`6Zri0VUz2~sT)`P zkHl$1zdTKa;zW-A0>o`4N67U%meC@?&&X~`0YkmQBKCq{j%(Z1p_`ug{BO5h+dC5{JIUqhqwt=Bd+Jc(3#n zeaTdlL)&#aLG!}xr!74^icD@m($Y34Bu5pHp-lY&0W06Zlr~}xDC7$NV{tF zDqJ)e(i()-cfZbf$eO{O3#7%|S*sTrJe&PB70HK*$rxHzxE*!aho!gnZVk`#gk`gi zkG^I+QJP@sjJcE!W7?L~>@&i~0lL zc2VhynyeB4-oTrqXJGXzn_JR8gK=Gj|PheZBhj?2Gcj|8eDh~P`$!V;g* zw#QYqqXlek(#4PF5=Ogh&JHx4oWzp0TZL+kMFZ+cmd7uy8|lJVSrm}3YFXW(>d)VJ zzDMM~N5+Lh05xfDi914Im(kj0qUBcXvcQ(0QXYzCB_BTAzAbQ9>W*eM>-wB&a)lL+ z7<~x`12h18pJj_GP3k`awF*`Zz>yOd?gAg>i2)3KHEbpc0yn%otA#ru6cWjucD zc3Ji^od7nU4~gkFuXgzqczG8|EfB(yQf?b%x%``F-6c5*Ky8=`UoxP}EA7!P87=Gj zM3?bWF&5Bmm7xZgj&uTg{!-t*7AHR}NztUg*q9)gyEaORHOc7-xSc}_oG!)WXWP%C z7Y2P5ZM$O+m9qGWuTyUSdiO6U1l~XK3||_6uoXqQ&01>T+~$1G!4~}N$tzh7csRTy zKZTb>h=FW8o%^*n`a*PZWUpI+g#AnJotBk7b>NAP0>0Yco3cp1A=0a!nzj5YMb3d7 z)AZbc=>|+P5D}7Q8IYxbdrKn~CE|RTo!N1lAV37#*><$2w3*$e^sRnFd}%#3bAFC% z$jiTi=wQlirpG>w^Y{FkvLm<8u-$Z&1Cj&(a7^IrCp`iz_ld+%)~+d5zDchra$j%e z^_ghRkryMLBcUiy{hR;7iDxqJr7KuX5NKyj1%AM!R1leTtVpNdKCXp~l&k2 zwl3|~32+IShvm*PKvCu}lt56-KhMVY$8-7s=dMBj@k0;Kp4AGIFG0wfQe0FVnJmA- zZgid`vnMIiN!mZX3c%?9wBvub z*ncc1u+jf>(*Lpb{`Z|{URj9E)qjW2711Byuz2P?JFpHyjsIU;-wLO&S(?+g*oTy= z@(EC;&zxo=*S-c$$2Gw zISF9pK5`5N$wvT}Kxn^^|j`_Dxq+2ef$*^shgeh++y)F3JL zX0w0bWOa90@Gr>BiVhsmyiNl1cN0 zh-6X0wW^wRspTq{nJ#93oVf#m&5MK%alB3K#DHwXS(@lS{1!V|u}@C|FSS>X*<{m* zq-J~`Qp@&FiCQSXd1)KE0+jPAkv9Ov{fl|?!L84g0ny_B4Qz0)Q!MOWg{_$TE(-J5))U}eXczNL zjgu;JR}DS}CgW(IS3R~AoP8FbQS0t)TJEWDE&Xvo|8jK=(4U^y2xQ+cWpCmtF_=)Q z{-mn@$Jxy5Qc0Hy2S7K!svwgr2iyD$iD*wXNw2;=^w04FB}X%hz%&|1_y5 z*5FT!qsVzi=LIMty*3hx(MxE*nZ`=+2{GAyHXd>}`$d{>UfcRGK&z(ZqSlnh*2L`- zYY2l3(~`O`QU>8ex)^VPTgM|f7(T3WeyJUhd^MVGB*hv$C@wo1N`UQ@)`H!~N<)g$ z9~w8I+!$l5qxctrnw{396!$G)J-g#212g}B(0;cPA?SJCY)#Y!8u zFkWGRlo}&>xIN{t$Yg%gyQi~qTg}XCzJ${~t~b0DNG;su$U0652VtFSdGqV* z``JSu)hHC)?SKA`j2dOE7%>NW{W zXo^{*zW^TQu;@=oE`6F51H7GpG@M&=z1EkDibTDUoVzK(=;Ow+7d zdEqEdP)J{>o#n3L$0mW2TUqMBiK6t}G|(Tz>`=)3;d)YZL9q%IFj;_qY}<@bsvHuV>W zC>5)zFFJU0bOW-L#v3W=B*>*D9g=m+L((H`g?yRzB%1*-%sK-u z&F$g46?lQ===f<3C;tLJOml_ z#-xce+C5L&)`iv-*ZMMCrw39pj>jq)s%%H~)heZl3lQnUpAE~ye7*9TwlQUko}UCl zuJsyKg4Sy5UIEF7>0zj5^5gtl$0iG^YsO-S#9g`zl8&uZG4s>uQ?WihI#>xng5pqf zWIk9oInSpW`8*qqG+1J4y3O(MJZW9t(-f1g6#{M=x_bt1;PkM__Nd3^j$4X+9HLdS z`{+xYc!|R`rdBP9p*DDQ|i>n4}nRI&_v>(3F1=uR5w*- zf08tH8rTTLj`bb~K~Xy=2F??<)xx(5Zw{n_bsoFuq}}_cQJVO14Qm=~Bh=^BpH({d zDu}S6K$+D!8#}ZO(`xZuMxBk2#Oe4#Irzf|l4Em5j=H|Z_k|Ao?#wH}dD`Z$dJTU4 z3sY0~u&(5BVG46~1SRA38nsTDLk6@?eA3iL+GipAz)FEF;m!W9<|59dg#gGWfT4i@ zT_w_Ez3vOR)svlT{{Zk!qrBOwn2clFNrO65!(|N{4VKGjTYat{{25gX+8ZYq47qA- zT`C>(d&4+J--|2M2vBMr?`1E;PuG032QT4h)B!Aio)U^|c{u=FID(L6 zJhpFn*(3b^OaI$G?%59MEVkJ2C$n1hv|=_t?A_n#B=H@yq#T#eZP_&f9Wg3=4At(r z$a>y)14=(T`yAOvuJM@XIYsgnw9W!MQuWqkx#HDg#`sqTOY}973Q0O{lq|7@UQ=aS z%X5_%4DRB1`?_; z$&L+xy2Q)>!gsIt(A>}bMv30lP5k`)E1DQ6bTs?Z`Z6(Qpipo=YmhqxvI1W>;Z>6@ z!va$9ZCRE`H9pu^yzudQ_)?jyt{XPYA-FA#FRKy?k^?S55n^Xg+752}*YGdwH0djU zZY{E*K!NEaj%}H)X@$ioQlqxjxSgKD^HZoO@t?_tB|fn|Ww&__%6&Jo@%fbEjiMY1 zEbBaGuBT>|c9b@;J#5PPvBw#wB}yXye~{}k^)~U76NTwFO1DMWDSdL2dkU?y`rmQB zsb{$jokr8pEcTAE=!DpF7t7LG5%I#5Z|0`ZVmy?rx^>hOTHf()FB+^&>iuvnDMkBV z^wsS6&13E(PEuw2N4j*Hx75-&J5vC*H8&V9EG>8G-uf+R$pM=yl&ZZvCq_@XQ7HWL zwLM9mDayLxyB^S;s*)Gcr=jH0Pu3!8*Mz)!c z8B68@DJQvbFLQ=$FX6n}&=-7YfshagiGO1U0ME)!h)v$o1|Z2Evo#gy!KEMiJ@nZD z!}`#h;FJ1p?%c@c_4nBIui*8gcktrJC%)K&ofaQ?w}$Pf`k5b)f);%w|*AQWzrskJVZDaM{OS>8?D75e-|p?0Uq&~$7$ zZ?YUFTl39$ezjVW5j7LiI4A}Q&ITl0dFo%&cyDX~S3apTPn~p&^X!fqqzJh#0!$Zi z|3~iQuPK)v%d0wDc8F%bShMkzMw``=WQQwu|EsaD4y$V0;uTR^T2e}oF6r)WkdPK> z=}rNa?(UFOK)PWI(#@9c?rxCUytTLIo_o%@=Y8+-r{CvdtvSaW;}>HNCI&2`&xCLc z;hbhx$EBmrX;E9|4lR*Lq0}V}vugvEttXd(Z6L}tKLQix4&9F>)tV8uX zH&q>a#}wQM$24Alr3i~4yqIDMh3LinL%Fv5m5(yG;y#oLhGF-58IB zV2V8MlyLV-9-US+kndKwnMi>Nc~IEKkLyXjS5w7m-|>gg0Kt;ZGL@(oYx9+Wwm9>OV;Kph#audlZ;Gyv&q(5b9NxU)srVUDGYgvX@# z=Gy23oUCNV5lGExS4ytHC91kPHIb-%R>xRz`fkpX9vr_WzMD+9{;MDZ7`^sbR7!Rl zeO@6@EJbNPWSftMy9Qu*KvtNp>}GNPU$Tp0OcMPm>)yz^P2sjkZ9UG1+jV9xh*M0p z$>0-)d;e`j-iS zYvl`-qkCozZymx1q=JU@-DWozU)o+5L3RJ{;o)BBzrV*m|H7@GX{Y+K!N@|VLB>0i z&g!#e1eM!LUG(tO(O$9TdO!%9-#cdLbx`?P8ny^$i}*EQ=G$l=1^d5HL=6Ip*KW$G zHEa&Fc5`Qs8LX$BZiJF!X>XJ$iDrCu*6R-Clf&-M_D=6=qaElBvsdbvW?kL&XQ4d= zIjbNDWOB7;zSem2d(F<+olF$Q-5%JO<2kemCT(sK0|!lp9;Fq?)OB-}Ci}JVo#A)1 z&N~rNJ~pHb>GD>I4KDs-C3BLos5k*$mblVR2XpTe6`TZ}4P0NE_YnV6T|;U2LyB`!=J{{a?X74@evcfBB@F94bV=V}{jr$T+c(X<`7BBkTjzQyaN%v5$7?Jlk zxu6W!2FAJ+msl;6&bQiMwl8Br;XZGs#jxrf`{arapml(cl|EA^Dy4p>YGCs=xUXJr zftK2*u0#vwhF*3>V&951iy<2MIP~|nn-C0|VvtpoRTgww9t6yZ2{VgMrGTq_8tZ)t z_fCLIBHRM?ilI#%wTC~lb*}-5kEP85h$`U z79(4?LENc4HZ||>Ub#jgra*ZT{WmO3`A<$@FK&m|hg-Q(kd~pOOZV2uQ0Ki7o4O6J z`t!2A`FqRpIwLK1e4*PVx-Xd*H3QPXjsAVrt#Ln!I$_oPcQuAv6+0Hyri+M+$=61o zfMh|5HHi+I_NS!#H2&)b-@|M1o<2WvVv2ynJ3d7^n>Z1r-!UqVHDjYr-KEBmlIBKu zkQXGo?R|=p))xlcr&j3aqdgDaLkVh%4SUZtAn}~6eXZ~ zR;Ocnc8(nutLa)}xg9|s??0B}*RlcyLT7*is_i_xsq2i%fGUnz@*?2C9Ede`e;R5jOw%m+Q3dZp~VWAPPxL;iik0Ts@bT)72 z%T?hS!QR3M?L)!7eO0zR0p=oz-us+JZcEq!FbBX#*!a*E@4TrpO$v};aGgDvl92xp z+I1g@%sH^t=r~_E=H!C-=7u3iq1n3AxQG!bOnB&OQ|h)a)2>A0Iyp|3Sw`oPNES;_ zTVYD=tzk7vsnpAa%;87`ojDDc&LMcRG=B4U{Rb;La*~CcbQyVgq#$4xQUOy`3YV}A zRa?&HE_L7pj>9DhGusOYf0$ z&wltYt*sU}Hh(dFPD=2z`|r~#pd!cT!Z8O}4lzexvPOlyT^^bUnJ`zAM^Rf}t&$`( zmjc5fzxR6?SOszeQlZ5TU7}ih%7GQC3jsD+$Tn-k%}E#@)(%vea?A+RMF^6H!Jqpa z;DQ{oK;86}8SP@NDWNwvd+6Jo@ywc;GDt6d*L0Sn8nxK60=~Xyz?Jm3__(4kJX>9Z zI%ayvuWeY5WAYRu1@r*n)fx}&G^u3f`XeEn!|q142tghcyJ`?vx+mNfL7jN(;Q0Je z(|JP$P=_0=V@VF2=Dx=Sb+LUjJU2N!lndGf3shcfHaM=|znw%WbaB0ln$eru<`hhf z89v6XTo+0G^(SJSqE`cuC*Epb>A3#|^^Yi_|g$B2n{9pi@7arvMtTm2pdfaz)&`M-&PxwqmT zLS8 zVy{h5qaBUSHOv7uYjzIVAX&+3>>r~#Fth!vOuBm~@`xv8K|>3^d)ei%qX zG#=e>MEt1aO(`p5L?SJfJSskYQ-WgCuJoy3AJDULNr>_7_1k_9Ly7YQ?OkZg)wes| zL6TnJjuy<-`=bLeLMiOi0b3)Ez}h# zn)=TrRqFwFqjP*Yr|W_SWAAn#Y!Nx>qxIALaT4e)uOjbbu?= zlCTW(ZJ^!uzc2VCrRBojQG&?(`*cx~OJn~TF3Yp-?*cftn2RbGrtaviJbj4m);BVM z(SxK!oT{47)_ZHuIg};h4AW}fSzTCRWie~%nNoK(meB$8S_FZZpVLzL+ zp*6?lS=ozCvzk3D%PpXW>hb;d0IYDMp*z{*f0MRk-Ul+J4oe)lXuLV;PdD8i!CS)S ztJT$V(hgh{9Ip0I35T>h*&tw7nrtRvjZ#Gqsm z-{i6DO2-HYpE}>`qoK~1CX&Ta5ZlkG&NfHlbHA0}Is`goE^E9P7)|SrqTNKmGn^POfnOh$$9ie-JVCPZt5hT<=gqlq*oh5 z8-bC9!~!XJ&NUV>7ELHkLoa8Y<~R_`flF>9eX9UP0d!?Jl$gIbR7JWi!?VAAZW;R2 z`+{J!`N2sYvDCUEEHpPo%6uxVlW@}a2+34jK-ZYfM#=Rq?Qp%6+P3D>v8~w6@a7^b(8(cQS2rw z@C8oX`;Ps?!P+&uo>~{pLN>q|)e~kyD|sZ=c$H^D4WSZupaMuM7UtjW-dl>-P3YbN z+eJRy)`oS);JX9iOG+$#M12f>eBD5}D;AXdQg5}V&>MMl>wP`E)?>fcYAfOU$SsyN zbqlZ_l)N{QCSi=*6pAm4W==u5Z1A}N-Q>TNZd$me(k^JIlFM6GHe4uoV6TdI!yRtV4>QPDX-CFpX>BBB{E8}<8BXCecYg_UMV0tRW~y8xfYyjFx~A9U!!?yZb`Nm^c z<~0x#QB2>ie2Cw)^)YIB`53}R_|$EAR29d(z!XiLCn2MQY4x-00YpKQo)~gJ%a37B zSL7Y_YNzp(aB;tY9YtrbM$ua=d) zF!A&5XY^W`7VCed#4zV@xYyGlcQl_Y8{fpNJ~h3R{lN~Q}il(EpBhWH0!d5uZpzurU)xH0>90ZRL}juWoM$;{_ZRPz`1+v ziQr+<{)>>?aP$mCcnR$822wB`K`zPr=h{@^ObrEpPnZxI% z64aDdNmJ9G5b-gxExulA^^1LL6)7Gi1WY$7O?}YKipL1x}ikrHRQovK8d>5`gysKa9LSEKz=OeyuHpBUd6r^u= zS89^OO-!I(MxS4AjAWz$x?R?aanfEo)nGVz2wV!`9OKSU?3sNKgP4a_zGH*-{GgXx z=w8|+0`)+y4foaq)ujRvofJFel0w`1WbQ@G6%VGKf9@E(A7aRU+mP3QZgiJ&n)!OOC!b4O?QHWIyi%hqcI=Ph13hpbB@g%Of(q+cX9b~IoGsz#)i$l___CM zeyL$P+u<&^m_I%AR&^G{#poL`qFS!qvv+k{6{^{krRJ|urx>Le}7b#pQsoK!Qc;t2x*Y@icvY3~Mq-Yt#i2q6V{&?Rjoco~%d10)(c}o~G zzkU5-3~w9ijN5_cm>#Ok+}fqG#X=>}Tr!}mQyocd;LlE;cEHzCh>y?>Ir66{m_a)X zt4z8OsFXt@1QU$<7wdPo?R6FpI)#8a9lAc|?6wYZ3$ufUxGu{~w>ZVuB=UNqylea+x+a7nv9aVAi4r{-Az-PqvNZ5t-}S2xa*S1=mz zCRchXy-n*pryhTvO~(|w{+1Qbf_mK(rSRvf4SalOL9 z*@F}#qQt9HAap9NyQk;9_K#b7B-z+R{ClJp5Q4A$I38ppx?|jWxH8y0v4|&hRbRzs zll|4kzA}_h?9Z)kocgG;o|RsV(u{G&kbyWVWR@iU((*g@CCmG7M@u_{F^e>r8G(}d zZAwHB^XW?C4aKtxD{xXro@+x8&|E>W&06S32s6fO?95+`58ADs9OyO3xr@JePPe(G zl?=C1{W6(n<7#CiW=XrEVno-_vyOG+;O2P?7y-e9i0h0EmB7TdK_1m0NsX8)A_E$= zFS5UgBLrhk0|!eLNfZ7k|G*9MNPv<{BBW!Y@RT(28(a~~uj6TlrVybHzwYzh0U3iBTmhzBb6?Ex)z;p@`sy$|OP{xvU;DL875K|@`6|AK0n#1=T? zv~oIMQk8-$e7m2JXj%_XY z4&RaY>$BA%qk2rP<+Afu3;SKen{xIYPcA(bGizFcraUf+%tZ$)*Cb;k(|{=#G*d#%*3oP4`DliJ+7Z?c9*ux?@lh1;f0aSz7uPh<85p4wo@s=N@biCr4+jl)1#tYEi;ec9@}R*a~xJa8HFX53Vdj0f%f)Wd$S z`iH?suKV*UwBhh;KQ{c!tD^K8C}Mj!jZ|zEJwKx)w6yx^H8fEADNIMppmu#E#_K$7 zADn%NhRzKRk3daBiZu5RHMr25Gka*|<8$_s`f6S{3E`xB&iwJ60_^}6zN3!3KXtz= zEg}`kf8t+&9QiYA-Qn0cM?VE_D2ZGfnT+Oo*y8<3#??|^o3_4JvJ^knh*Hm5m&}N6w%1T34OZX>z{BatY$WPfGB8@ZS{S8f*yIMg?&&J z{m6&%)L~be%t_Da?qV|3AnEdz8!CZ#m+zrvxop$klA2Ah@7?^W4i!hfWF^S=(`Tp4 zg|1)8-uEll2)ekkKgy3zDUnDdN~7V1X8W`uE^zQ!ZRoXy_-vbAS5rJczEY5(VNh8` zOHLYpPy;)CFn_Y^t~lB5r-h(hyFiG&SZFKVLjcAdY8XFUx{$33XM80K_Fc4Gu7dN$ za5N#Jmoz|yEy*JW*pdXIMT@-I#Ig%C9PWFpjPS(c)-ge-b{aiYwNSzi7qzWLZr!rn zso&}vK|xccOYWRi78UuMqNsKSZ2xkX8blK1pML!DTB`K+wuFb3wBDewz`$KI+O$Qy z9Ag2YWz1ExZ~I9+LgvdS=Zb}}<6+{LCypS4>nJhJ@j;QL`6+MK)045OUrUYFvFfjq zdQf7hthr)>q`f{-y$_`>wtiMsh^r;?g)X)ZE{6>yrXB-@FqN3oNQ#O3Dl}(6;tmlz zSKy*KdUSIaTq%}JH%z4K+G5Q0n$BR^F1#z@4vYipQKzp?Q=sY51xuould=r2z3n87 z`U>3VK-EBL#m)(ZElEI+6ttp)KfEP^N5pt}W#Rf{N=Qn`U9}#e)BDybK_ofB(CqzCEN8%Um=^vZ zmd|dPRVYxXa$g*xg|C}%yG+wzp717=LJ#Wm@~5S z;vVp!VS^r@;Wq6yHx&3GS})wW-Vqg{V-JnpfKU}AMVb&+PBxAtybo^{%Whb#@aVq9 zJZ>vO!pQxMnKjA6C$^Pfw{^5|kO>i4(@~57J;6*^e){*Xg@HsFf%vCU^0l>sQ3m&G zyFI)ctD$@KFWTblbsxrml*^)uFdpk5q_xZ@BhE^=l;Kpm_tryp3NOs-3sMXL9_k_D z{}omkO(`m&c_|z78+31j42;!FPBtw?MP%){)%!-8o$99Kd>rIJs79|h^_{g%AR?cz zR(#CD8T-O+c3G>7jBYtxP5h9CgJIADH6{XDLkP*Yqv5bI5;AXn%tXraJo-twH7Zx^ zi5ni0B6z}IO*&9e?E--5`6*)R@#sd1+0Tnj8{AZDhUIV zVkVUT1&f(^MH=#CzB5!2H>a}E@M1o}!iQ`w3+(|@M(cW_M5n zp*I)XVYs51&*1cG>x}^u>`hdI_iHK#k}`aOTioc8X`a6CpAryZTw9@YQ0YaI3Xk`& zIgIZeTvu&B? z1`p9mg!%}`9VROWJS{Yg*7k7*PqzkHAfp77;(?3U$WAMBZp}^>^S)Z_qm08XN)2y* z*x&7Y33CnRdfXF`ozWam)&iN9s@M1kGcho!!*Eo+7goem_U_K?q*{OIZ)&=KeWaIx z^uku;(Q3>&825#bQDGDjH}8p;hu9Zmx%J`slq}h<#?^)C7?BFM@%Tc1g&;d; zhSUYFq3p)%Qc5Q!CQU?GSUehDMM*OB%9X8E-f?SN>@00pIR&q|WZkQbv8~1NqEAdCI)^xiW1Byor3!17#8r^9A!ur=hTKILENO5!d?5*LIO6 z=8Ez2)=kAQ^IqHW-qGf%KXZ3Kmo-c3?pTevNk%XY5O>BMU->708LmAign|r8JNUJq z;w?Av_ug?MY9G}iypS~BN+;+{zrKDw-~3ehyX7~)xtUkrnp&Sc&nDkvo#Ldub0-NN z&cmzI|HSMX_^4U}T+(9oL@lxdoLd`wg7Q8@e%1BlKN{EgM*$&?F(7i+W@d(wZu z^3rF9%#**uP_c3~5o^i=QD0KmmP@ZHRJqa~enTLz9?~*3i$%qVrSPxNz2vi=qcVE! z8ewzrsZ!)wo__mbLuf=mbnGFitNXmKc2(O-&Fu5d{>SivlMb7#fnu~-ldoZ?zT5cS zJk8u>&*6_&am8S~!NzFqqP8XEvnP0Sx6Tinea1-69UFaatR$_t4ra{J2*oh>h-Bm{ z1t58NQi%3T$P6tp@&jaLO$tYX4&|u-HR=?v9l`C1s z_-sQAqL+j99!ZYGmzdarlaF6~jrDhkXBMVId%Qc;+XqLN1dCn)e*>(K>tOhrl~u8- z=rU*lO!)#bnFFDk(!aF6z2Z6gis?45VqB&ct*~wT?g2v7V()7z93UYA_2fS&re`_G z*RBG(+DXG&GBXs#%5Q>kU7leuu3{Zi@nit1}XRy@90wgk%+74X0O9hYrFiu1D& zK%BUsa^biju@qU~3>j)@jz^FI5(ZMt@2bZHhw@#KAfw78f-cw6cj0tac(RQ0CFoV1 z0kyEd6u@?T0nB;z~BR*&V8v_ z0Ozc$bZHy{_69&{-z^Adng0A~6hm*2!vTBWyQwzxp4nVo1J-qmlG_H;FCX-1uNR}) zMLFrNE%cx&4Rf>pr%V4uNh#^@28LrDkz*u!OI5~?0+|>x?v&I-`+Ty zAIH_i2yWQ$+JItw4)B4$PX#=t|D!0l=1A4 zns<8&eEy%9CZX!=_=_4;cf_6nK*GIoYoO}oxy3@jvGNIXS`iU@yH z`hYk2z^1J)rI_M$XR+YZBSB84R{LgGb zA)PhwSj3%`K{3q17`gb~5-~uA#7Z06W_TR_D&}=0tsJo? zsTrhZZlVW+qGo9Z*(9ZI0f`F0Mq=fE2XDV~RSu(GL&eXE{xU@;Q?an*+_#yArZ`CQ zp;l4~7I-DdbA7%9xNEB6p!aWwXJYCUS$XknvH1`}$eR5>8ulUCYu9*a&HGwawS_S0 zj1%)Eyt%F#|1RxIO8Y=U^31XL6tG@vMwf$C)1!PZc215jAt&`MCy&Dmh7 zpb#bNP<93wm^my<=XNPZ>ZLWyH(x%$2$?NL%ACCnDSWtP$R3g;^h;bjWPe?yNSL?_ zJ!BK&odt(4x$zDPOxOL8{tfrZsZmbw#73Z77WE-oRK3+12@fqBx7YDb z+e&w>)CR^Q0wvk;I$Bdm&$W5z#?kFk=keqO_WzYK-=jIIMu*`WP?Rn@|R0*3+&drE1s$ItP0v@sskWF(K_$WmmRHm z-P<~{TGaB{AF1T_H0_3KwHK3i9x65aI;^FhP1&FF9%ZU<_8Zon4uVmHua8v&D1Dqw z#xsi@42V!eHaPrig>gzHSDIT&VS7q*_Us4KRXe4RdW?(D`4eN5Zc;ZfZ3LwCQ*`HP zJ_DzvC5nJq>On>*dQ<=TwPUI1DGU%NIPGkkQ#Wq(FAw!rp>}7DJs(jN3{hkO5vKIx zG_RGB@Yb@v9ncQ|gd?s>(EG#g7#BqtLr7Rw1Z2QFfePa?GjQbpNeX1V9w_eSTLNat< zi}rNGUC^LKu_+P@qb*08`{~fmO#52UXTvu?e`O+)U*;*{qU`g#g{>v#eK04@inyH2 z(Xet-7%$Tjx;7r>Gx*e^pLNQ@oG!d2_lll}`Su%ZRj@tL-?)?SLA-TV-cqe5x2zyj z-a@=HRaj={Q<4STdf{wHap_^@qfh&0fWg$}QGAY`b^-1S64$#c0VD2s7M~mTEVn79 zI_U{cPN-J31}6)AHhgypPQg;GTX&^`j0_%c9hmWq>88ne-f;X z@)ieWho?yWrNF(D1p0CiveOLcX1|9Bwe-jQp)X+y7}b?`ir0RVYi|xe)}gowhwSPygBt~jVvJZ^m99fn0NBX*Xp?-U1E)~y_pSj6X zVi|BGP>m0o!S#@%H`M~`9HaK#2h~GfCK<@>Vh%=HAI^Pxxx-`Yy95CoZ@lL6K|jEd z)Jt!fM)*cj(jm^7=d9-9c?$^fTddMNm+97A-1T=>PoHILHqUyvgYE9E z+t8zxn>+M9BH68{Zh7to&;#1h@40a>_JNYMQl8|Q&*33;>~mN1J2o|1<$z7{Ub-^N zQl-kv{Zjv4NMe=74qn34z29U)yci{;@tm!~mrFJ@16=#||xDpD-+ z@o_icI-Gv65@a?Hv;AR>@at4$?=%kFqRJutklN*Ro|lV~)kH?B&Z$GT%-vCXE!Eog zmy^RA=V#78MFVnuu1{t3T!~mYZU=+UXARi{<6CMAVYFW8?|5!6R;{5mE9%p{U;U#O zat*4g-B~naeJ!r(vC3+Ri^n)DNc$PK+rDisp}L|uyi0<~G|>Cvwh zxRcE^B4}PifiCTDO9bnj%L4tCuTZ|&SFd7ysV^5Id=E@pZ>4t#Zy+7e8rPb*}uyi`y zNb%y2P%gT6FdGIYM*K#!>Vb7=NQ1Q8)Tusjlk?9EMFZ=dd}(koq>4vpq&5J;X}}@v zL<(YsaP|_@)!i}$MjVRDqAoLZd~b3ZyUJvpus2V= zJ(AH*c^qa)s!L_;&bcBG=y3R<{2RykDLvgsIRA_*V#FTq26MGW*<+b{q5W-qdKMWrLo2Ipx zc9@Qvf_QxpT_34Op}Z!H^?bT!vq5tA=pCl#_Ruo#afCZLO+aA4LAoIg*;EJ5hE_K| zy5L!pX+kk$X9@|p6l3){S)j!A`>Z=@6MbMQ0L)JMUpEJ(l^$-MrSM4PF(duZ)P{gl z;x{@SY154BF6iG3wV2J0<27>|F4It4p`##QQ}}rlbVP@S?&UL9-y0C8TlW(Aur_o^ zunKRS`_T!p|KNM~lEOx(4y{*NtV-kgZj-^Cg=jW`_+_Ab)s93HBLAh;4a!ps$@-`^ICf zN@ZzfNgSOneJV$zlb76?cH?wfj?3YSSux>HkVGQvmI+BVXMa-L1 zDRErlWO%Y!^jq3OjJ!z_O5D0rfF~UZ1jUcXn;tP3g&YAA8mvG9CnW|Zm@Yo|*IpJq z+LT;<0oAd+-;nEtsWr(hl#)QJih3aTf2b+|4bjOv+-AE3sp{0MTCy{ghU;MobrYTx zUX0FWYXlHe=+T3)js7e80j%WTq4;mQf=K4rGYdIYlncWo{44bT%Nst&2*%WaoeM?@ zu0QJ>?3_ykOG*3%ECM<&ECB$YgN(te-Zjt_YS^a{7rB{lz#TI)wfyJ z66-l7wA}t7SvoAj%i~}FMVXPHc>NE-8YVy?#XJF|8;<9H{T(6uWr}|@>i#J==8hNI z_^kTIgqi$@kp8=3`u|uw`u2bDhrg`a|LW_1A&LJkal_=0e-)%*(iBjk0{*V*vVs1j z^J{Qef0vPAqWQl)5r#hh@TX7`|Gu;TaoYePOyd1NHDoHNKkz$h{{P?qokTLszk@#U zpYQMBdTHQw%iSWZHR}FpBo@pjY6g{~W&R;YPt7$g3PH#M zFsDTVy&H-U{%v2n5wq^zpCo3!U!3yPOu`7j+!k?-rZ6lm`tZ--02&tpFl+q&NyD-+ z87U-~$N_fx4;sqg|Ml^|uv6$i|I4oU1CIti_irQ%SXQyIhcEh%iX5Uax632E#8iPc zi$9fd;B7=sH%f+%v+M>nxvaRN5X&&16Zb^3Xf1X{Goq>zX7^N*03$b>PvTnc4zDP? z!dsf8vmpIEfvd{znl~fB5Fe~=EetZjD*y`$S%68rZbNSNjz4F&o1xYJs`PN!WF~N4 zpOX*N<7Pk5%YxuD5wYEF&^>E8@ATDopFGUjl{#v7Bo{2_ zbwZq zn{{E9uT9+sb(@~){7cKb(h+Gr6%E~~S$hk{#a-c9M7~ij2em^B#_|)^^o`wscv)?^ z(ROz^75y*cN#7wKglvCg^2Ymjz%bUqo-e!Hn#wLO?h zqIvl { + await this.reset(); await this._initializeCameras(cameras); + }; + + try { + // This concurrency limit prevents multiple rapidly arriving configs from + // generating reset-n-initialize race conditions (e.g. changing values + // rapidly in the config editor). + await this._initializationLimit.add(resetAndInitialize); } catch (e: unknown) { this._api.getMessageManager().setErrorIfHigherPriority(e); return false; diff --git a/src/config/types.ts b/src/config/types.ts index 7692d2ec..9c08c061 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -618,6 +618,14 @@ const mediaLayoutConfigSchema = z.object({ y: z.number().min(0).max(100).optional(), }) .optional(), + view_box: z + .object({ + bottom: z.number().min(0).max(100).optional().default(0), + left: z.number().min(0).max(100).optional().default(0), + right: z.number().min(0).max(100).optional().default(0), + top: z.number().min(0).max(100).optional().default(0), + }) + .optional(), }); export type MediaLayoutConfig = z.infer; diff --git a/src/const.ts b/src/const.ts index 6a497438..d39d45aa 100644 --- a/src/const.ts +++ b/src/const.ts @@ -61,6 +61,14 @@ export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_X = `${CONF_CAMERAS}.#.dimensions.layout.position.x` as const; export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_Y = `${CONF_CAMERAS}.#.dimensions.layout.position.y` as const; +export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_TOP = + `${CONF_CAMERAS}.#.dimensions.layout.view_box.top` as const; +export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_BOTTOM = + `${CONF_CAMERAS}.#.dimensions.layout.view_box.bottom` as const; +export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_LEFT = + `${CONF_CAMERAS}.#.dimensions.layout.view_box.left` as const; +export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_RIGHT = + `${CONF_CAMERAS}.#.dimensions.layout.view_box.right` as const; export const CONF_CAMERAS_ARRAY_TRIGGERS_MOTION = `${CONF_CAMERAS}.#.triggers.motion` as const; export const CONF_CAMERAS_ARRAY_TRIGGERS_OCCUPANCY = diff --git a/src/editor.ts b/src/editor.ts index 9502d69f..0b9adc74 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -46,6 +46,10 @@ import { CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_FIT, CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_X, CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_Y, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_BOTTOM, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_LEFT, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_RIGHT, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_TOP, CONF_CAMERAS_ARRAY_FRIGATE_CAMERA_NAME, CONF_CAMERAS_ARRAY_FRIGATE_CLIENT_ID, CONF_CAMERAS_ARRAY_FRIGATE_LABELS, @@ -1226,6 +1230,10 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor configPathFit: string, configPathPositionX: string, configPathPositionY: string, + configPathPositionTop: string, + configPathPositionBottom: string, + configPathPositionLeft: string, + configPathPositionRight: string, ): TemplateResult | void { return this._putInSubmenu( domain, @@ -1236,16 +1244,50 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor ${this._renderOptionSelector(configPathFit, this._layoutFits, { label: localize('config.cameras.dimensions.layout.fit'), })} - ${this._renderNumberInput(configPathPositionX, { - min: 0, - max: 100, - label: localize('config.cameras.dimensions.layout.position.x'), - })} - ${this._renderNumberInput(configPathPositionY, { - min: 0, - max: 100, - label: localize('config.cameras.dimensions.layout.position.y'), - })} + ${this._putInSubmenu( + `${domain}.position`, + true, + 'config.cameras.dimensions.layout.position.editor_label', + { name: 'mdi:aspect-ratio' }, + html` ${this._renderNumberInput(configPathPositionX, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.position.x'), + })} + ${this._renderNumberInput(configPathPositionY, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.position.y'), + })}`, + )} + ${this._putInSubmenu( + `${domain}.view_box`, + true, + 'config.cameras.dimensions.layout.view_box.editor_label', + { name: 'mdi:crop' }, + html` + ${this._renderNumberInput(configPathPositionTop, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.view_box.top'), + })} + ${this._renderNumberInput(configPathPositionBottom, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.view_box.bottom'), + })} + ${this._renderNumberInput(configPathPositionLeft, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.view_box.left'), + })} + ${this._renderNumberInput(configPathPositionRight, { + min: 0, + max: 100, + label: localize('config.cameras.dimensions.layout.view_box.right'), + })} + `, + )} `, ); } @@ -1971,9 +2013,34 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor ${this._renderMediaLayout( MENU_CAMERAS_DIMENSIONS_LAYOUT, 'config.cameras.dimensions.layout.editor_label', - CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_FIT, - CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_X, - CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_Y, + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_FIT, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_X, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_POSITION_Y, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_TOP, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_BOTTOM, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_LEFT, + cameraIndex, + ), + getArrayConfigPath( + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_VIEW_BOX_RIGHT, + cameraIndex, + ), )} `, )} diff --git a/src/localize/languages/ca.json b/src/localize/languages/ca.json index a822bf33..7890348b 100644 --- a/src/localize/languages/ca.json +++ b/src/localize/languages/ca.json @@ -56,8 +56,16 @@ "fill": "El suport s'estira per omplir la targeta" }, "position": { + "editor_label": "", "x": "Percentatge d'emplaçament horitzontal", "y": "Percentatge d'emplaçament vertical" + }, + "view_box": { + "bottom": "", + "editor_label": "", + "left": "", + "right": "", + "top": "" } } }, diff --git a/src/localize/languages/en.json b/src/localize/languages/en.json index f0c5df92..61b48940 100644 --- a/src/localize/languages/en.json +++ b/src/localize/languages/en.json @@ -56,8 +56,16 @@ "fill": "Media is stretched to fill the card" }, "position": { + "editor_label": "Layout Cover Position", "x": "Horizontal placement percentage", "y": "Vertical placement percentage" + }, + "view_box": { + "bottom": "Bottom inset percentage", + "editor_label": "Layout View Box", + "left": "Left inset percentage", + "right": "Right inset percentage", + "top": "Top inset percentage" } } }, @@ -616,4 +624,4 @@ "timeline": { "select_date": "Choose date" } -} +} \ No newline at end of file diff --git a/src/localize/languages/fr.json b/src/localize/languages/fr.json index fdc1107b..806ed481 100644 --- a/src/localize/languages/fr.json +++ b/src/localize/languages/fr.json @@ -56,8 +56,16 @@ "fill": "Il supporto viene allungato per riempire la scheda" }, "position": { + "editor_label": "", "x": "Percentuale di posizionamento orizzontale", "y": "Percentuale di posizionamento verticale" + }, + "view_box": { + "bottom": "", + "editor_label": "", + "left": "", + "right": "", + "top": "" } } }, diff --git a/src/localize/languages/it.json b/src/localize/languages/it.json index e515dc57..b55a68e3 100644 --- a/src/localize/languages/it.json +++ b/src/localize/languages/it.json @@ -56,8 +56,16 @@ "fill": "Il supporto viene allungato per riempire la scheda" }, "position": { + "editor_label": "", "x": "Percentuale di posizionamento orizzontale", "y": "Percentuale di posizionamento verticale" + }, + "view_box": { + "bottom": "", + "editor_label": "", + "left": "", + "right": "", + "top": "" } } }, diff --git a/src/localize/languages/pt-BR.json b/src/localize/languages/pt-BR.json index ad8fe495..fb1fb510 100644 --- a/src/localize/languages/pt-BR.json +++ b/src/localize/languages/pt-BR.json @@ -56,8 +56,16 @@ "fill": "A mídia é esticada para preencher o cartão" }, "position": { + "editor_label": "", "x": "Porcentagem do posicionamento horizontal", "y": "Porcentagem do posicionamento vertical" + }, + "view_box": { + "bottom": "", + "editor_label": "", + "left": "", + "right": "", + "top": "" } } }, diff --git a/src/localize/languages/pt-PT.json b/src/localize/languages/pt-PT.json index fb8f531c..2bee1366 100644 --- a/src/localize/languages/pt-PT.json +++ b/src/localize/languages/pt-PT.json @@ -56,8 +56,16 @@ "fill": "Preencher" }, "position": { + "editor_label": "", "x": "Percentagem da localização horizontal", "y": "Percentagem da localização vertical" + }, + "view_box": { + "bottom": "", + "editor_label": "", + "left": "", + "right": "", + "top": "" } } }, diff --git a/src/scss/media-layout.scss b/src/scss/media-layout.scss index cde335ec..ec93509a 100644 --- a/src/scss/media-layout.scss +++ b/src/scss/media-layout.scss @@ -2,4 +2,13 @@ object-fit: var(--frigate-card-media-layout-fit, contain); object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%); + + // This is supported on limited browsers: + // See: https://caniuse.com/?search=object-view-box + object-view-box: inset( + var(--frigate-card-media-layout-view-box-top, 0%) + var(--frigate-card-media-layout-view-box-right, 0%) + var(--frigate-card-media-layout-view-box-bottom, 0%) + var(--frigate-card-media-layout-view-box-left, 0%) + ); } diff --git a/src/utils/media-layout.ts b/src/utils/media-layout.ts index 017c1efe..356a8dd0 100644 --- a/src/utils/media-layout.ts +++ b/src/utils/media-layout.ts @@ -24,4 +24,14 @@ export const updateElementStyleFromMediaLayoutConfig = ( element.style.removeProperty(`--frigate-card-media-layout-position-${dimension}`); } } + for (const dimension of ['top', 'bottom', 'left', 'right']) { + if (mediaLayoutConfig?.view_box?.[dimension] !== undefined) { + element.style.setProperty( + `--frigate-card-media-layout-view-box-${dimension}`, + `${mediaLayoutConfig.view_box[dimension]}%`, + ); + } else { + element.style.removeProperty(`--frigate-card-media-layout-view-box-${dimension}`); + } + } }; diff --git a/yarn.lock b/yarn.lock index 4cbbfb1b..d7d556b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3622,6 +3622,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + "execa@npm:^8.0.1": version: 8.0.1 resolution: "execa@npm:8.0.1" @@ -3886,6 +3893,7 @@ __metadata: markdown-link-check: "npm:^3.12.1" masonry-layout: "npm:^4.2.2" moment: "npm:^2.29.4" + p-queue: "npm:^8.0.1" prettier: "npm:^2.6.0" propagating-hammerjs: "npm:^2.0.1" quick-lru: "npm:^6.1.0" @@ -6234,6 +6242,16 @@ __metadata: languageName: node linkType: hard +"p-queue@npm:^8.0.1": + version: 8.0.1 + resolution: "p-queue@npm:8.0.1" + dependencies: + eventemitter3: "npm:^5.0.1" + p-timeout: "npm:^6.1.2" + checksum: 10c0/fe185bc8bbd32d17a5f6dba090077b1bb326b008b4ec9b0646c57a32a6984035aa8ece909a6d0de7f6c4640296dc288197f430e7394cdc76a26d862339494616 + languageName: node + linkType: hard + "p-timeout@npm:^3.1.0, p-timeout@npm:^3.2.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" @@ -6243,6 +6261,13 @@ __metadata: languageName: node linkType: hard +"p-timeout@npm:^6.1.2": + version: 6.1.2 + resolution: "p-timeout@npm:6.1.2" + checksum: 10c0/d46b90a9a5fb7c650a5c56dd5cf7102ea9ab6ce998defa2b3d4672789aaec4e2f45b3b0b5a4a3e17a0fb94301ad5dd26da7d8728402e48db2022ad1847594d19 + languageName: node + linkType: hard + "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" From 5f4943e19008e0962257b88ddb768a2dd0b2fbe5 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 15 Apr 2024 16:26:47 -0700 Subject: [PATCH 2/2] Add tests. --- src/utils/media-layout.ts | 2 +- tests/utils/media-layout.test.ts | 116 +++++++++++++++++++++++++++++++ vite.config.ts | 1 + 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 tests/utils/media-layout.test.ts diff --git a/src/utils/media-layout.ts b/src/utils/media-layout.ts index 356a8dd0..6128e10c 100644 --- a/src/utils/media-layout.ts +++ b/src/utils/media-layout.ts @@ -8,7 +8,7 @@ import { MediaLayoutConfig } from '../config/types'; export const updateElementStyleFromMediaLayoutConfig = ( element: HTMLElement, mediaLayoutConfig?: MediaLayoutConfig, -) => { +): void => { if (mediaLayoutConfig?.fit !== undefined) { element.style.setProperty('--frigate-card-media-layout-fit', mediaLayoutConfig.fit); } else { diff --git a/tests/utils/media-layout.test.ts b/tests/utils/media-layout.test.ts new file mode 100644 index 00000000..85054fc9 --- /dev/null +++ b/tests/utils/media-layout.test.ts @@ -0,0 +1,116 @@ +import { describe, expect, it } from 'vitest'; +import { updateElementStyleFromMediaLayoutConfig } from '../../src/utils/media-layout.js'; + +// @vitest-environment jsdom +describe('updateElementStyleFromMediaLayoutConfig', () => { + describe('fit', () => { + it('set', () => { + const video = document.createElement('video'); + + updateElementStyleFromMediaLayoutConfig(video, { + fit: 'cover', + }); + + expect(video.style.getPropertyValue('--frigate-card-media-layout-fit')).toBe( + 'cover', + ); + }); + + it('unset', () => { + const video = document.createElement('video'); + video.style.setProperty('--frigate-card-media-layout-fit', 'cover'); + + updateElementStyleFromMediaLayoutConfig(video); + + expect( + video.style.getPropertyValue('--frigate-card-media-layout-fit'), + ).toBeFalsy(); + }); + }); + + describe('position', () => { + it('set', () => { + const video = document.createElement('video'); + + updateElementStyleFromMediaLayoutConfig(video, { + position: { + x: 10, + y: 20, + }, + }); + + expect( + video.style.getPropertyValue('--frigate-card-media-layout-position-x'), + ).toBe('10%'); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-position-y'), + ).toBe('20%'); + }); + + it('unset', () => { + const video = document.createElement('video'); + video.style.setProperty('--frigate-card-media-layout-position-x', '10%'); + video.style.setProperty('--frigate-card-media-layout-position-y', '20%'); + + updateElementStyleFromMediaLayoutConfig(video); + + expect( + video.style.getPropertyValue('--frigate-card-media-layout-position-x'), + ).toBeFalsy(); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-position-y'), + ).toBeFalsy(); + }); + }); + + describe('view_box', () => { + it('set', () => { + const video = document.createElement('video'); + + updateElementStyleFromMediaLayoutConfig(video, { + view_box: { + top: 1, + bottom: 2, + left: 3, + right: 4, + }, + }); + + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-top'), + ).toBe('1%'); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-bottom'), + ).toBe('2%'); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-left'), + ).toBe('3%'); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-right'), + ).toBe('4%'); + }); + + it('unset', () => { + const video = document.createElement('video'); + video.style.setProperty('--frigate-card-media-layout-view-box-top', '1%'); + video.style.setProperty('--frigate-card-media-layout-view-box-bottom', '2%'); + video.style.setProperty('--frigate-card-media-layout-view-box-left', '3%'); + video.style.setProperty('--frigate-card-media-layout-view-box-right', '4%'); + + updateElementStyleFromMediaLayoutConfig(video); + + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-top'), + ).toBeFalsy(); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-bottom'), + ).toBeFalsy(); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-left'), + ).toBeFalsy(); + expect( + video.style.getPropertyValue('--frigate-card-media-layout-view-box-right'), + ).toBeFalsy(); + }); + }); +}); diff --git a/vite.config.ts b/vite.config.ts index 4479c43b..6794fe02 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -34,6 +34,7 @@ const FULL_COVERAGE_FILES_RELATIVE = [ 'utils/ha/entity-registry/types.ts', 'utils/ha/types.ts', 'utils/media-info.ts', + 'utils/media-layout.ts', 'utils/media-to-view.ts', 'utils/media.ts', 'utils/ptz.ts',