From 7917e5c53728cd9510276d7626da63a9e80461ce Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Sat, 27 Apr 2024 14:55:38 -0700 Subject: [PATCH] Add support for pre-defined zoom/pan settings. --- docs/README.md | 2 + docs/_coverpage.md | 4 +- docs/configuration/actions.md | 24 +- docs/configuration/cameras/README.md | 18 +- docs/configuration/conditions.md | 5 + docs/configuration/menu.md | 9 +- docs/examples.md | 60 ++ docs/images/browsers/chrome_16x16.png | Bin 0 -> 819 bytes docs/images/browsers/chromium_16x16.png | Bin 0 -> 680 bytes docs/images/browsers/edge_16x16.png | Bin 0 -> 811 bytes docs/images/media_layout/fit.png | Bin 38041 -> 67839 bytes docs/images/media_layout/pan-zoom.png | Bin 0 -> 40162 bytes .../position-shorter-than-height.png | Bin 49273 -> 76391 bytes .../position-thinner-than-width.png | Bin 49881 -> 79860 bytes docs/images/media_layout/view-box.png | Bin 34967 -> 63271 bytes scripts/update-images.sh | 6 +- src/camera-manager/manager.ts | 10 +- src/card-controller/actions-manager.ts | 17 +- src/card-controller/card-element-manager.ts | 12 +- src/card-controller/initialization-manager.ts | 30 +- src/card-controller/view-manager.ts | 2 +- src/card.ts | 4 +- src/components-lib/menu-button-controller.ts | 29 +- src/components-lib/zoom-controller.ts | 160 ----- src/components-lib/zoom/types.ts | 11 + src/components-lib/zoom/zoom-controller.ts | 419 +++++++++++ src/components-lib/zoom/zoom-view-context.ts | 57 ++ src/components/image.ts | 22 +- src/components/live/live-image.ts | 14 +- src/components/live/live.ts | 33 +- src/components/viewer.ts | 22 +- src/components/zoomer.ts | 38 +- src/config/types.ts | 90 ++- src/const.ts | 6 + src/editor.ts | 64 +- src/localize/languages/ca.json | 8 +- src/localize/languages/en.json | 8 +- 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/live-image.scss | 13 - src/scss/live-provider.scss | 8 + src/utils/action.ts | 21 + src/utils/basic.ts | 32 +- src/view/view.ts | 4 +- tests/camera-manager/manager.test.ts | 13 +- tests/card-controller/actions-manager.test.ts | 60 +- .../card-element-manager.test.ts | 3 +- .../initialization-manager.test.ts | 18 +- tests/card-controller/view-manager.test.ts | 4 +- .../menu-button-controller.test.ts | 71 +- tests/components-lib/zoom-controller.test.ts | 321 --------- .../zoom/zoom-controller.test.ts | 658 ++++++++++++++++++ .../zoom/zoom-view-context.test.ts | 85 +++ tests/config/types.test.ts | 4 + tests/utils/action.test.ts | 33 + tests/utils/basic.test.ts | 53 ++ vite.config.ts | 2 +- 59 files changed, 1981 insertions(+), 638 deletions(-) create mode 100644 docs/images/browsers/chrome_16x16.png create mode 100644 docs/images/browsers/chromium_16x16.png create mode 100644 docs/images/browsers/edge_16x16.png create mode 100644 docs/images/media_layout/pan-zoom.png delete mode 100644 src/components-lib/zoom-controller.ts create mode 100644 src/components-lib/zoom/types.ts create mode 100644 src/components-lib/zoom/zoom-controller.ts create mode 100644 src/components-lib/zoom/zoom-view-context.ts delete mode 100644 src/scss/live-image.scss delete mode 100644 tests/components-lib/zoom-controller.test.ts create mode 100644 tests/components-lib/zoom/zoom-controller.test.ts create mode 100644 tests/components-lib/zoom/zoom-view-context.test.ts diff --git a/docs/README.md b/docs/README.md index 7db2c4de..a6dc8d47 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,5 @@ +!> This documentation is for the unreleased `dev` branch! See the [Github README](https://github.com/dermotduffy/frigate-hass-card?tab=readme-ov-file#frigate-lovelace-card) for documentation of the released version. + # Getting Started ## Installation diff --git a/docs/_coverpage.md b/docs/_coverpage.md index 777ac33d..ec27a485 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -1,8 +1,8 @@ ![logo](images/frigate-logo.svg) -# Frigate Card 6.0.0 *DEV* +# Frigate Card 6.0.0 _*DEV*_ > A comprehensive camera card for Home Assistant. [GitHub](https://github.com/dermotduffy/frigate-hass-card/) -[Documentation](README.md) \ No newline at end of file +[Documentation](README.md) diff --git a/docs/configuration/actions.md b/docs/configuration/actions.md index 2d0af42d..5b9af685 100644 --- a/docs/configuration/actions.md +++ b/docs/configuration/actions.md @@ -118,15 +118,24 @@ frigate_card_action: camera_ui Open the UI for the selected camera engine (e.g. the Frigate UI). -### `default` +### `change_zoom` -Change to the default view. +Zoom in and/or pan for a given camera. ```yaml action: custom:frigate-card-action -frigate_card_action: default +frigate_card_action: change_zoom +[...] ``` +| Parameter | Description | +| - | - | +| `action` | Must be `custom:frigate-card-action`. | +| `frigate_card_action` | Must be `change_zoom`. | +| `target_id` | The [camera ID](cameras/README.md?id=cameras) to adjust the pan/zoom of, or a media ID (e.g. `frigate` event ID) to zoom in on specific media items. | +| `zoom` | How much to zoom-in. See the [camera zoom parameter](cameras/README.md?id=layout-configuration). | +| `pan` | How much to pan-x/y. See the [camera pan parameter](cameras/README.md?id=layout-configuration). | + ### `clip`, `clips`, `image`, `live`, `recording`, `recordings`, `snapshot`, `snapshots` Change to the specified view. @@ -136,6 +145,15 @@ action: custom:frigate-card-action frigate_card_action: [view] ``` +### `default` + +Change to the default view. + +```yaml +action: custom:frigate-card-action +frigate_card_action: default +``` + ### `download` Download the displayed media. diff --git a/docs/configuration/cameras/README.md b/docs/configuration/cameras/README.md index 6aeef734..31124162 100644 --- a/docs/configuration/cameras/README.md +++ b/docs/configuration/cameras/README.md @@ -144,10 +144,12 @@ 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 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. | +| `pan` | | A dictionary that may contain an `x` and `y` percentage (`0` - `100`) to control the position of the media when "digitally zoomed in" (see `zoom` parameter). This can be effectively used to "pan"/cut the media shown. 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 visualizations below. | | `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. | +| `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. Unlike `zoom`, the user cannot dynamically zoom back out -- however the builtin media controls will work as normal. See visualizations below. Limited [browser support](https://caniuse.com/mdn-css_properties_object-view-box): ![](../../images/browsers/chrome_16x16.png "Google Chrome :no-zoom") ![](../../images/browsers/chromium_16x16.png "Chromium :no-zoom") ![](../../images/browsers/edge_16x16.png "Microsoft Edge :no-zoom") | +| `zoom` | `1.0` | A value between `1.0` and `10.0` inclusive that defines how much additional "digital zoom" to apply to this camera by default. Unlike with `view_box` the user can easily "zoom back out". Often used in conjuction with `pan`. When zoomed in the [builtin browser media controls](../live.md?id=controls) will automatically be disabled (as otherwise they would be enlarged also). | -!> 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). +?> Layout operations are effectively applied in this order: `fit`, `position`, `view_box`, `zoom` then `pan`. See [media layout examples](../../examples.md?id=media-layout). @@ -169,6 +171,11 @@ See [media layout examples](../../examples.md?id=media-layout). ![](../../images/media_layout/view-box.png "Media Layout Position: Taller than wider :size=400") +#### `pan` and `zoom`: Predefined panning and zooming + +![](../../images/media_layout/pan-zoom.png "Panning and zooming :size=400") + + ## `triggers` The `triggers` block configures what triggers a camera. Triggering can be used @@ -300,6 +307,13 @@ cameras: movies: directory_pattern: '%Y-%m-%d' file_pattern: '%H-%M-%S' + - camera_entity: camera.zoomed + dimensions: + layout: + zoom: 2.0 + pan: + x: 50 + y: 50 cameras_global: live_provider: ha ``` diff --git a/docs/configuration/conditions.md b/docs/configuration/conditions.md index 23620cf2..40e59550 100644 --- a/docs/configuration/conditions.md +++ b/docs/configuration/conditions.md @@ -164,6 +164,11 @@ conditions: | `condition` | Must be `view`. | | `views` | A list of [views](view.md?id=supported-views) in which this condition is satified (e.g. `clips`). | +?> Internally, views associated with the media viewer (e.g. `clip`, `snapshot`, +`recording`) are translated to a special view called `media` after the relevant +media is fetched. When including views as part of a [condition](conditions.md), +you may need to refer to this special `media` view. + # Fully expanded reference [](common/expanded-warning.md ':include') diff --git a/docs/configuration/menu.md b/docs/configuration/menu.md index 1348e516..093f8e11 100644 --- a/docs/configuration/menu.md +++ b/docs/configuration/menu.md @@ -33,6 +33,7 @@ menu: | `camera_ui` | The `camera_ui` menu button: brings the user to a context-appropriate page on the UI of their camera engine (e.g. the Frigate camera homepage). Will only appear if the camera engine supports a camera UI (e.g. if `frigate.url` option is set for `frigate` engine users).| | `cameras` | The camera selection submenu. Will only appear if multiple cameras are configured. | | `clips` | The `clips` view menu button: brings the user to the `clips` view on tap and the most-recent `clip` view on hold. | +| `default_zoom` | The `default_zoom` button allows easily returning the camera to default pan/zoom. | | `display_mode` | The `display_mode` button allows changing between single and grid views. | | `download` | The `download` menu button: allow direct download of the media being displayed.| | `expand` | The `expand` menu button: expand the card into a popup/dialog. | @@ -53,7 +54,7 @@ menu: | Option | Default | Description | | - | - | - | | `alignment` | `matching` | Whether this button should have an alignment that is `matching` the menu alignment or `opposing` the menu. Can be used to create two separate groups of buttons on the menu. `priority` orders buttons within a given `alignment`. | -| `enabled` | `true` for `frigate`, `cameras`, `substreams`, `live`, `clips`, `snapshots`, `timeline`, `download`, `camera_ui`, `fullscreen`, `media_player`, `display_mode`. `false` for `image`, `expand`, `microphone`, `mute`, `play`, `recordings`, `screenshot`, `ptz` | Whether or not to show the button. | +| `enabled` | `true` for `frigate`, `cameras`, `substreams`, `live`, `clips`, `snapshots`, `timeline`, `download`, `camera_ui`, `fullscreen`, `media_player`, `display_mode` and `default_zoom`. `false` for `image`, `expand`, `microphone`, `mute`, `play`, `recordings`, `screenshot`, `ptz` | Whether or not to show the button. | | `icon` | | An icon to overriding the default for that button, e.g. `mdi:camera-front`. | | `priority` | `50` | The button priority. Higher priority buttons are ordered closer to the start of the menu alignment (i.e. a button with priority `70` will order further to the left than a button with priority `60`, when the menu alignment is `left`). Minimum `0`, maximum `100`.| @@ -90,9 +91,15 @@ menu: enabled: true alignment: matching icon: mdi:video-switch + default_zoom: + priority: 50 + enabled: true + alignment: matching + icon: mdi:magnify-close substreams: priority: 50 enabled: true + alignment: matching icon: mdi:video-input-component live: priority: 50 diff --git a/docs/examples.md b/docs/examples.md index c9a47395..0165992c 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -997,3 +997,63 @@ cameras: webrtc_card: ui: true ``` + +## Zoom + +### Pre-defining camera zoom and pan + +This example changes the default [zoom/pan settings for a camera](./configuration/cameras/README.md?id=layout-configuration) to always zoom in on a given area: + +```yaml +type: custom:frigate-card +cameras: + - camera_entity: camera.office + dimensions: + layout: + zoom: 3 + pan: + x: 20 + y: 80 +``` + +### Disable zooming in media views + +This example prevents zooming on the media viewer but keeps it on in other views (e.g. `live` view): + +```yaml +type: custom:frigate-card +cameras: + - camera_entity: camera.office + dimensions: + layout: + zoom: 3 + pan: + x: 20 + y: 80 +media_viewer: + zoomable: false +``` + +### Different zoom settings in media viewer vs `live` + +This example uses different settings for the media viewer and `live` view, by overriding the camera configuration: + +```yaml +type: custom:frigate-card +cameras: + - camera_entity: camera.office + dimensions: + layout: + zoom: 2 +overrides: + - conditions: + - condition: view + views: + - media + set: + 'cameras[0].dimensions.layout': + zoom: 3 + pan: + x: 100 + y: 100 +``` diff --git a/docs/images/browsers/chrome_16x16.png b/docs/images/browsers/chrome_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e2773fc99e01094d7634e8f9bebd218b57a3d6 GIT binary patch literal 819 zcmV-31I+x1P)Ah3I(AVE^R=)$fd zv93Y_0|f~aW;Ys@5LV#U7E_6hjZx$5xE;^){C?jqx(a%|1TZmJ2M9m}2wA8}8ZuL# zWXLpW(iLD~>CQ6UtGWUZ7aL77{uO{IDVKBvcuTOJ|C*KQbk{wdA3ENa6uN6&QGYzL zB>=Gq+L*zpWObRaEOR6`2{V&Ok_nT>tUC?^Gif0Y0&vJDc5eAarn*^Z1C`WlYDI2X z5JiG4U+rdA$jC()o4)$W0MHh|iFb!S8u?-VaE97=$}@xe_V1^$V;9Qc-tt>oH%}8C zWT8#+Jao5@1BbQy)JSc*mXCdKW~%3@8x3FXkk%hN$%$+a=YCuQhmpaR9C`dKcH=c- zGMA#f&73cVdRX`Jw&7Ob;Pl!KfBNbz-GAV9j&C~1(JyYJqRpLVi*K&|P0{%z&ptRy zG4s9T-Hy|x%&%C>=&QCOzizDhrN`Ei9vb57pO)#VWmGDGN+r;aDh{h>nrQ@iYufLkc$j&c*2N0hozp9B}tz zDW%yIOErpUhc-4tZ)dc-DVsCdakQcz>zD=tSQNm-V4b~hZwf%X@Y!vidvimrObi*` xcX{U`y({Bnqsch&iI_syouUR&9pJs)3v`zJi zwh06sv%cZD)tx=BFmAz*r6e*rAkL1!csu5v_=ywGDsa|Ng)=Xzu;^?#=ASOd;&T;( zwqAd&dKn8$-&XCFw9i#Ipx_hyVr*(qyaVTrl~{X=$B3n+j1|{wQCtmNv&*<@lhx~X z1sBXx(UB)EFD_nWr`JZj{jsbH}fa_GXB6n^AEULzcBAYHQxSGaO8=A zGX_yTYZO65aq)Zj^tj!1NINJf0}8(2@S`$}Tvo>9u-rmMKvp3J%rC~fKQc}mn5eh| znJhpcY2ROE!lo*mGgf2xl2Uf(hJpTV1R@9|?&a0VTkCN0xqxL?tF_0bNFjrZ{)L5? zs`37hf}>9boHI3k1uvqIK-_L#)z*ejGK&mZRLod>xf*YND@;0L^vFeo7yFGQEhUh! zhZkaY@zA!<7$iJ=E8)>QiJnTr&btE6o0urL1MD~IfzHGmJrcKvUS~@kX6@uLbt{jo z!#w>qQEecie6lTjNqjPW~j^2jQ zTLm5h%uTNcAOQq`#asIx$jYbyyY97d#U#zDfr(%MSa+=0|E5tKzCWlM_fC&@J&@(X z_Xi%xxytjda4U!|m}JyyQ)*MGFeXWJvF+wRi zer8-6XD7g^36*oMj^3qI#wwJt{uo&Fm(8ZuzPoqx;jjNSM|J6}oD>U9Q!CwYw=ebK zv6N3`39)BI=tvp+t_UNGzMcoW?N)EzUEcotc-BtMnVXyuil$PY5|hx1^K;9czgQaW z9JP#|sE#z{M3u}2l`yRA#jtx{&rwX_e6(C8v9VHgqfNT~)msC&15jSR@TR5SPs#VC zP9sK=R5dwBy^zCc69no6AwaK-wErN?JaYm7FgE#5(==13L8{!q#D+!6b;mpXGMLdu z4K;+|V1HYKiD&Z3OTcdcqU%?jjKGGmsw+$_1;-n}cF=4;I43)Zol!M&!+{eQK=XT| z)wjTpeD}Z1vn6{wmgtA<`7$v5YNZmHO98vMrK@zDzz@CaMf z_L8OaVLkio&TxJ~)O&AO0S0DUU>~?NJm<|Gi8zmQSpWdI+VVgKkW@|C6SGU9v-Mou p+aMf2ZcG2@4sZnET<|~!_#ZwEoO)Fu@mc@?002ovPDHLkV1gG{iRl0U literal 0 HcmV?d00001 diff --git a/docs/images/media_layout/fit.png b/docs/images/media_layout/fit.png index b47fe96a89bdd29decf998e661ca88fd608aad5b..a8ade712d8bc3f407390e55b51b37c573eceadbc 100644 GIT binary patch literal 67839 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 NedUKr#R|_t{tu0n!qxx) diff --git a/docs/images/media_layout/pan-zoom.png b/docs/images/media_layout/pan-zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..4e25a97949f98c9adc11c581d179172e0ff8e675 GIT binary patch literal 40162 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π4V1LHqb#6L*JZbJ~6~`Ho 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áPC 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 repu(U8jx0xXAxP9H2pE~dkc8GoW}=M> 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 W>Qnkjcm@UdQNM9V6|MZ#=f3~~ZtcJT diff --git a/docs/images/media_layout/position-thinner-than-width.png b/docs/images/media_layout/position-thinner-than-width.png index 2f171db295ca570a93d7aba487a77301687faa20..0fe36f320a48a16d6040d0c96069d835fa1d03a8 100644 GIT binary patch literal 79860 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 diff --git a/docs/images/media_layout/view-box.png b/docs/images/media_layout/view-box.png index 9a91d96a26e9192998b31667cf9c6001096108b4..4744ff4bd1e3753567f014715ec43369d08b5e35 100644 GIT binary patch literal 63271 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 { - await this._store.reset(); - } - public async initializeCamerasFromConfig(): Promise { const config = this._api.getConfigManager().getConfig(); const hass = this._api.getHASSManager().getHASS(); @@ -149,7 +145,7 @@ export class CameraManager { ); const resetAndInitialize = async () => { - await this.reset(); + await this._reset(); await this._initializeCameras(cameras); }; @@ -165,6 +161,10 @@ export class CameraManager { return true; } + protected async _reset(): Promise { + await this._store.reset(); + } + protected async _getEnginesForCameras( camerasConfig: CamerasConfig, ): Promise> { diff --git a/src/card-controller/actions-manager.ts b/src/card-controller/actions-manager.ts index 69c54ab4..08eff63c 100644 --- a/src/card-controller/actions-manager.ts +++ b/src/card-controller/actions-manager.ts @@ -12,6 +12,7 @@ import { getActionConfigGivenAction, } from '../utils/action.js'; import { getStreamCameraID } from '../utils/substream.js'; +import { generateViewContextForZoomChange } from '../components-lib/zoom/zoom-view-context.js'; import { CardActionsManagerAPI } from './types.js'; const interactionSchema = z.object({ @@ -263,9 +264,19 @@ export class ActionsManager { } break; case 'show_ptz': - this._api - .getViewManager() - .setViewWithNewContext({ live: { ptzVisible: frigateCardAction.show_ptz } }); + this._api.getViewManager().setViewWithMergedContext({ + live: { ptzVisible: frigateCardAction.show_ptz }, + }); + break; + case 'change_zoom': + this._api.getViewManager().setViewWithMergedContext( + generateViewContextForZoomChange(frigateCardAction.target_id, { + zoom: { + pan: frigateCardAction.pan, + zoom: frigateCardAction.zoom, + }, + }), + ); break; default: console.warn(`Frigate card received unknown card action: ${action}`); diff --git a/src/card-controller/card-element-manager.ts b/src/card-controller/card-element-manager.ts index 1b442f1e..c586173e 100644 --- a/src/card-controller/card-element-manager.ts +++ b/src/card-controller/card-element-manager.ts @@ -99,6 +99,9 @@ export class CardElementManager { // Manually call the location change handler as the card will be // disconnected/reconnected when dashboard 'tab' changes happen within HA. this._api.getQueryStringManager().executeAll(); + + // Make sure reconnections call the initialization code. + this._element.requestUpdate(); } public elementDisconnected(): void { @@ -108,15 +111,10 @@ export class CardElementManager { this._api.getMediaLoadedInfoManager().clear(); this._api.getFullscreenManager().disconnect(); - // Reset and uninitialize cameras to cause them to reinitialize on + // Uninitialize cameras to cause them to reinitialize on // reconnection, to ensure the state subscription/unsubscription works // correctly for triggers. - this._api - .getCameraManager() - .reset() - .then(() => - this._api.getInitializationManager().uninitialize(InitializationAspect.CAMERAS), - ); + this._api.getInitializationManager().uninitialize(InitializationAspect.CAMERAS), this._element.removeEventListener( 'mousemove', diff --git a/src/card-controller/initialization-manager.ts b/src/card-controller/initialization-manager.ts index 3c640198..cbc23190 100644 --- a/src/card-controller/initialization-manager.ts +++ b/src/card-controller/initialization-manager.ts @@ -86,19 +86,25 @@ export class InitializationManager { } if (!this._api.getMessageManager().hasMessage()) { - // Set a view on initial load. However, if the query string contains a - // view related action, we don't set any view here and allow that content - // to be triggered by the firstUpdated() call that runs query string - // actions. To do otherwise may cause a race condition between the default - // view and the querystring view, see: - // https://github.com/dermotduffy/frigate-hass-card/issues/1200 - const hasViewRelatedActions = this._api - .getQueryStringManager() - .hasViewRelatedActions(); - if (hasViewRelatedActions) { - this._api.getQueryStringManager().executeViewRelated(); + if (!this._api.getViewManager().hasView()) { + // Set a view on initial load. However, if the query string contains a + // view related action, we don't set any view here and allow that content + // to be triggered by the firstUpdated() call that runs query string + // actions. To do otherwise may cause a race condition between the default + // view and the querystring view, see: + // https://github.com/dermotduffy/frigate-hass-card/issues/1200 + const hasViewRelatedActions = this._api + .getQueryStringManager() + .hasViewRelatedActions(); + if (hasViewRelatedActions) { + this._api.getQueryStringManager().executeViewRelated(); + } else { + this._api.getViewManager().setViewDefault({ failSafe: true }); + } } else { - this._api.getViewManager().setViewDefault({ failSafe: true }); + // If we already have a view something (e.g. cameras) may have been + // reinitialized, be sure to ask for an update. + this._api.getCardElementManager().update(); } } diff --git a/src/card-controller/view-manager.ts b/src/card-controller/view-manager.ts index 2570fed9..5a369700 100644 --- a/src/card-controller/view-manager.ts +++ b/src/card-controller/view-manager.ts @@ -161,7 +161,7 @@ export class ViewManager { } } - public setViewWithNewContext(context: ViewContext): void { + public setViewWithMergedContext(context: ViewContext | null): void { if (this._view) { return this._setView(this._view?.clone().mergeInContext(context)); } diff --git a/src/card.ts b/src/card.ts index 517f5def..c6b49571 100644 --- a/src/card.ts +++ b/src/card.ts @@ -269,8 +269,8 @@ class FrigateCard extends LitElement { this._controller.getMessageManager().setMessageIfHigherPriority(ev.detail)} @frigate-card:view:change=${(ev: CustomEvent) => this._controller.getViewManager().setView(ev.detail)} - @frigate-card:view:change-context=${(ev: CustomEvent) => - this._controller.getViewManager().setViewWithNewContext(ev.detail)} + @frigate-card:view:change-context=${(ev: CustomEvent) => + this._controller.getViewManager().setViewWithMergedContext(ev.detail)} @frigate-card:media:loaded=${(ev: CustomEvent) => this._controller.getMediaLoadedInfoManager().set(ev.detail)} @frigate-card:media:unloaded=${() => diff --git a/src/components-lib/menu-button-controller.ts b/src/components-lib/menu-button-controller.ts index eeaae499..5fa25a9a 100644 --- a/src/components-lib/menu-button-controller.ts +++ b/src/components-lib/menu-button-controller.ts @@ -5,9 +5,9 @@ import { MediaPlayerManager } from '../card-controller/media-player-manager'; import { MicrophoneManager } from '../card-controller/microphone-manager'; import { ViewManager } from '../card-controller/view-manager'; import { + FRIGATE_CARD_VIEWS_USER_SPECIFIED, FrigateCardConfig, FrigateCardCustomAction, - FRIGATE_CARD_VIEWS_USER_SPECIFIED, MenuItem, } from '../config/types'; import { FRIGATE_BUTTON_MENU_ICON } from '../const'; @@ -15,6 +15,7 @@ import { localize } from '../localize/localize.js'; import { MediaLoadedInfo } from '../types'; import { createFrigateCardCameraAction, + createFrigateCardChangeZoomAction, createFrigateCardDisplayModeAction, createFrigateCardMediaPlayerAction, createFrigateCardShowPTZAction, @@ -95,6 +96,7 @@ export class MenuButtonController { this._getScreenshotButton(config, options?.currentMediaLoadedInfo), this._getDisplayModeButton(config, cameraManager, view), this._getPTZButton(config, cameraManager, view), + this._getDefaultZoomButton(config, view), ...this._dynamicMenuButtons.map((button) => ({ style: this._getStyleFromActions(config, view, button, options), @@ -582,7 +584,9 @@ export class MenuButtonController { } protected _getSubstreamAwareCameraID(view: View): string { - return view.context?.live?.overrides?.get(view.camera) ?? view.camera; + return view.is('live') + ? view.context?.live?.overrides?.get(view.camera) ?? view.camera + : view.camera; } protected _getPTZButton( @@ -614,6 +618,27 @@ export class MenuButtonController { return null; } + protected _getDefaultZoomButton( + config: FrigateCardConfig, + view: View, + ): MenuItem | null { + const targetID = view.isViewerView() + ? view.queryResults?.getSelectedResult()?.getID() ?? null + : this._getSubstreamAwareCameraID(view); + + if (!targetID || (view.context?.zoom?.[targetID]?.isDefault ?? true)) { + return null; + } + + return { + icon: 'mdi:magnify-close', + ...config.menu.buttons.default_zoom, + type: 'custom:frigate-card-menu-icon', + title: localize('config.menu.buttons.default_zoom'), + tap_action: createFrigateCardChangeZoomAction(targetID) as FrigateCardCustomAction, + }; + } + /** * Get the style of emphasized menu items. * @returns A StyleInfo. diff --git a/src/components-lib/zoom-controller.ts b/src/components-lib/zoom-controller.ts deleted file mode 100644 index 07557136..00000000 --- a/src/components-lib/zoom-controller.ts +++ /dev/null @@ -1,160 +0,0 @@ -import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; -import round from 'lodash-es/round'; -import { dispatchFrigateCardEvent, isHoverableDevice } from '../utils/basic'; - -export class ZoomController { - constructor(element: HTMLElement) { - this._element = element; - } - - protected _element: HTMLElement; - protected _panzoom?: PanzoomObject; - protected _zoomed = false; - protected _allowClick = true; - - protected _events = isHoverableDevice() - ? { - down: ['pointerdown'], - move: ['pointermove'], - up: ['pointerup', 'pointerleave', 'pointercancel'], - } - : { - down: ['touchstart'], - move: ['touchmove'], - up: ['touchend', 'touchcancel'], - }; - - protected _downHandler = (ev: Event) => { - if (this._shouldZoomOrPan(ev)) { - this._panzoom?.handleDown(ev as PointerEvent); - ev.stopPropagation(); - - // If we do not prevent default here, the media carousels scroll. - ev.preventDefault(); - this._allowClick = false; - } else { - this._allowClick = true; - } - }; - - protected _clickHandler = (ev: Event) => { - // When mouse clicking is used to pan, need to avoid that causing a click - // handler elsewhere in the card being called. Example: Viewing a snapshot, - // and panning within it should not cause a related clip to play (the click - // handler in the viewer). - if (!this._allowClick) { - ev.stopPropagation(); - } - this._allowClick = true; - }; - - protected _moveHandler = (ev: Event) => { - if (this._shouldZoomOrPan(ev)) { - this._panzoom?.handleMove(ev as PointerEvent); - ev.stopPropagation(); - } - }; - - protected _upHandler = (ev: Event) => { - if (this._shouldZoomOrPan(ev)) { - this._panzoom?.handleUp(ev as PointerEvent); - ev.stopPropagation(); - } - }; - - protected _wheelHandler = (ev: Event) => { - if (ev instanceof WheelEvent && this._shouldZoomOrPan(ev)) { - this._panzoom?.zoomWithWheel(ev); - ev.stopPropagation(); - } - }; - - protected _isScaleNormal(scale?: number): boolean { - // Floating point arithmetic warning: comparing floating point numbers, - // round them first. - return scale !== undefined && round(scale, 4) <= 1; - } - - protected _shouldZoomOrPan(ev: Event): boolean { - return ( - !this._isScaleNormal(this._panzoom?.getScale()) || - // TouchEvent does not exist on Firefox on non-touch events. - // See: https://github.com/dermotduffy/frigate-hass-card/issues/1174 - (window.TouchEvent && ev instanceof TouchEvent && ev.touches.length > 1) || - (ev instanceof WheelEvent && ev.ctrlKey) - ); - } - - protected _setTouchAction(touchEnabled: boolean): void { - this._element.style.touchAction = touchEnabled ? '' : 'none'; - } - - public activate(): void { - this._panzoom = Panzoom(this._element, { - contain: 'outside', - maxScale: 10, - minScale: 1, - noBind: true, - // Do not force the cursor style (by default it will always show the - // 'move' type cursor whether or not it is zoomed in). - cursor: undefined, - - // Disable automatic touchAction setting from Panzoom() as otherwise it - // effectively disables dashboard scrolling. - // See: https://github.com/dermotduffy/frigate-hass-card/issues/1181 - touchAction: '', - }); - - const registerListeners = ( - events: string[], - func: (ev: Event) => void, - options?: AddEventListenerOptions, - ) => { - events.forEach((eventName) => { - this._element.addEventListener(eventName, func, options); - }); - }; - - registerListeners(this._events['down'], this._downHandler, { capture: true }); - registerListeners(this._events['move'], this._moveHandler, { capture: true }); - registerListeners(this._events['up'], this._upHandler, { capture: true }); - registerListeners(['wheel'], this._wheelHandler); - registerListeners(['click'], this._clickHandler, { capture: true }); - - this._element.addEventListener('panzoomzoom', (ev: Event) => { - // Take care here to only dispatch the zoomed/unzoomed events when the - // absolute state changes (rather than on every single zoom adjustment). - if (this._isScaleNormal((>ev).detail.scale)) { - if (this._zoomed) { - this._setTouchAction(true); - dispatchFrigateCardEvent(this._element, 'zoom:unzoomed'); - } - this._zoomed = false; - } else { - if (!this._zoomed) { - this._setTouchAction(false); - dispatchFrigateCardEvent(this._element, 'zoom:zoomed'); - } - this._zoomed = true; - } - }); - } - - public deactivate(): void { - const unregisterListener = ( - events: string[], - func: (ev: Event) => void, - options?: EventListenerOptions, - ) => { - events.forEach((eventName) => { - this._element.removeEventListener(eventName, func, options); - }); - }; - - unregisterListener(this._events['down'], this._downHandler, { capture: true }); - unregisterListener(this._events['move'], this._moveHandler, { capture: true }); - unregisterListener(this._events['up'], this._upHandler, { capture: true }); - unregisterListener(['wheel'], this._wheelHandler); - unregisterListener(['click'], this._clickHandler, { capture: true }); - } -} diff --git a/src/components-lib/zoom/types.ts b/src/components-lib/zoom/types.ts new file mode 100644 index 00000000..04f92855 --- /dev/null +++ b/src/components-lib/zoom/types.ts @@ -0,0 +1,11 @@ +export interface ZoomConfig { + pan?: { + x?: number; + y?: number; + }; + zoom?: number; +} + +export interface ZoomDefault { + isDefault: boolean; +} diff --git a/src/components-lib/zoom/zoom-controller.ts b/src/components-lib/zoom/zoom-controller.ts new file mode 100644 index 00000000..8a6aeec6 --- /dev/null +++ b/src/components-lib/zoom/zoom-controller.ts @@ -0,0 +1,419 @@ +import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; +import debounce from 'lodash-es/debounce'; +import round from 'lodash-es/round'; +import { + arefloatsApproximatelyEqual, + dispatchFrigateCardEvent, + isHoverableDevice, +} from '../../utils/basic'; +import { ZoomConfig } from './types'; + +const ZOOM_DEFAULT_PAN_X = 50; +const ZOOM_DEFAULT_PAN_Y = 50; +const ZOOM_DEFAULT_SCALE = 1; +const ZOOM_PRECISION = 4; + +export class ZoomController { + protected _element: HTMLElement; + protected _panzoom?: PanzoomObject; + + // Is the controller zoomed in at all? + protected _zoomed = false; + + // Is the controller set to the default zoom/pan settings? + protected _default = true; + + // Should clicks be allowed to propagate, or consumed as a pan/zoom action? + protected _allowClick = true; + + protected _defaultConfig: ZoomConfig | null; + protected _config: ZoomConfig | null; + + // When the user pans/zooms changes may be created at a very high rate. + protected _debouncedChangeHandler = debounce(this._changeHandler.bind(this), 200); + + // Multiple calls to setConfig() or setDefaultConfig() or resizes should only + // update once. + protected _debouncedUpdater = debounce(this._updateBasedOnConfig.bind(this), 200); + + protected _resizeObserver = new ResizeObserver(this._debouncedUpdater); + + protected _events = isHoverableDevice() + ? { + down: ['pointerdown'], + move: ['pointermove'], + up: ['pointerup', 'pointerleave', 'pointercancel'], + } + : { + down: ['touchstart'], + move: ['touchmove'], + up: ['touchend', 'touchcancel'], + }; + + protected _downHandler = (ev: Event) => { + if (this._shouldZoomOrPan(ev)) { + this._panzoom?.handleDown(ev as PointerEvent); + ev.stopPropagation(); + + // If we do not prevent default here, the media carousels scroll. + ev.preventDefault(); + this._allowClick = false; + } else { + this._allowClick = true; + } + }; + + protected _clickHandler = (ev: Event) => { + // When mouse clicking is used to pan, need to avoid that causing a click + // handler elsewhere in the card being called. Example: Viewing a snapshot, + // and panning within it should not cause a related clip to play (the click + // handler in the viewer). + if (!this._allowClick) { + ev.stopPropagation(); + } + this._allowClick = true; + }; + + protected _moveHandler = (ev: Event) => { + if (this._shouldZoomOrPan(ev)) { + this._panzoom?.handleMove(ev as PointerEvent); + ev.stopPropagation(); + } + }; + + protected _upHandler = (ev: Event) => { + if (this._shouldZoomOrPan(ev)) { + this._panzoom?.handleUp(ev as PointerEvent); + ev.stopPropagation(); + } + }; + + protected _wheelHandler = (ev: Event) => { + if (ev instanceof WheelEvent && this._shouldZoomOrPan(ev)) { + this._panzoom?.zoomWithWheel(ev); + ev.stopPropagation(); + } + }; + + constructor( + element: HTMLElement, + options?: { config?: ZoomConfig | null; defaultConfig?: ZoomConfig | null }, + ) { + this._element = element; + this._config = options?.config ?? null; + this._defaultConfig = options?.defaultConfig ?? null; + } + + public activate(): void { + const config = this._getConfigToUse(); + const converted = this._convertPercentToXYPan( + config?.pan?.x ?? ZOOM_DEFAULT_PAN_X, + config?.pan?.y ?? ZOOM_DEFAULT_PAN_Y, + config?.zoom ?? ZOOM_DEFAULT_SCALE, + ); + + this._panzoom = Panzoom(this._element, { + contain: 'outside', + maxScale: 10, + minScale: 1, + noBind: true, + // Do not force the cursor style (by default it will always show the + // 'move' type cursor whether or not it is zoomed in). + cursor: undefined, + + // Disable automatic touchAction setting from Panzoom() as otherwise it + // effectively disables dashboard scrolling. See: + // https://github.com/dermotduffy/frigate-hass-card/issues/1181 + touchAction: '', + + // Set the initial pan/zoom values to avoid an initial unzoomed view. + ...(config && converted && { startX: converted.x }), + ...(config && converted && { startY: converted.y }), + ...(config && + converted && { + startScale: + config.zoom ?? + // This is not reachable as without a zoom value, a default of 1 is + // assumed in _convertPercentToXYPan, which will return null @ + // default zoom, and so this cannot be reached in practice. + /* istanbul ignore next @preserve */ + ZOOM_DEFAULT_SCALE, + }), + }); + + const registerListeners = ( + events: string[], + func: (ev: Event) => void, + options?: AddEventListenerOptions, + ) => { + events.forEach((eventName) => { + this._element.addEventListener(eventName, func, options); + }); + }; + + registerListeners(this._events['down'], this._downHandler, { capture: true }); + registerListeners(this._events['move'], this._moveHandler, { capture: true }); + registerListeners(this._events['up'], this._upHandler, { capture: true }); + registerListeners(['wheel'], this._wheelHandler); + registerListeners(['click'], this._clickHandler, { capture: true }); + + this._resizeObserver.observe(this._element); + this._element.addEventListener('panzoomchange', this._debouncedChangeHandler); + } + + public deactivate(): void { + const unregisterListener = ( + events: string[], + func: (ev: Event) => void, + options?: EventListenerOptions, + ) => { + events.forEach((eventName) => { + this._element.removeEventListener(eventName, func, options); + }); + }; + + unregisterListener(this._events['down'], this._downHandler, { capture: true }); + unregisterListener(this._events['move'], this._moveHandler, { capture: true }); + unregisterListener(this._events['up'], this._upHandler, { capture: true }); + unregisterListener(['wheel'], this._wheelHandler); + unregisterListener(['click'], this._clickHandler, { capture: true }); + + this._resizeObserver.disconnect(); + this._element.removeEventListener('panzoomchange', this._debouncedChangeHandler); + } + + public setDefaultConfig(config: ZoomConfig | null): void { + this._defaultConfig = config; + this._debouncedUpdater(); + } + + public setConfig(config: ZoomConfig): void { + this._config = config; + this._debouncedUpdater(); + } + + protected _changeHandler(ev: Event): void { + const pz = (>ev).detail; + + const isUnzoomed = this._isUnzoomed(pz.scale); + const isAtDefault = this._isAtDefaultZoomAndPan(pz.x, pz.y, pz.scale); + + // Take care here to only dispatch the zoomed/unzoomed events when the + // absolute state changes (rather than on every single zoom adjustment). + if (isUnzoomed && this._zoomed) { + this._zoomed = false; + this._setTouchAction(true); + dispatchFrigateCardEvent(this._element, 'zoom:unzoomed'); + } else if (!isUnzoomed && !this._zoomed) { + this._zoomed = true; + this._setTouchAction(false); + dispatchFrigateCardEvent(this._element, 'zoom:zoomed'); + } + + if (isAtDefault && !this._default) { + this._default = true; + dispatchFrigateCardEvent(this._element, 'zoom:default', { isDefault: true }); + } else if (!isAtDefault && this._default) { + this._default = false; + dispatchFrigateCardEvent(this._element, 'zoom:default', { isDefault: false }); + } + } + + protected _isZoomEqual(a: ZoomConfig, b: ZoomConfig): boolean { + // The ?? clauses below cannot be reached since this function is only ever + // used fully specified by this object. It's kept as-is for completeness. + return ( + arefloatsApproximatelyEqual( + /* istanbul ignore next @preserve */ + a.zoom ?? ZOOM_DEFAULT_SCALE, + /* istanbul ignore next @preserve */ + b.zoom ?? ZOOM_DEFAULT_SCALE, + ZOOM_PRECISION, + ) && + arefloatsApproximatelyEqual( + /* istanbul ignore next @preserve */ + a.pan?.x ?? ZOOM_DEFAULT_PAN_X, + /* istanbul ignore next @preserve */ + b.pan?.x ?? ZOOM_DEFAULT_PAN_X, + ZOOM_PRECISION, + ) && + arefloatsApproximatelyEqual( + /* istanbul ignore next @preserve */ + a.pan?.y ?? ZOOM_DEFAULT_PAN_Y, + /* istanbul ignore next @preserve */ + b.pan?.y ?? ZOOM_DEFAULT_PAN_Y, + ZOOM_PRECISION, + ) + ); + } + + protected _isZoomEmpty(config?: ZoomConfig | null): boolean { + return ( + config?.pan?.x === undefined && + config?.pan?.y === undefined && + config?.zoom === undefined + ); + } + + protected _getConfigToUse(): ZoomConfig | null { + return this._isZoomEmpty(this._config) ? this._defaultConfig : this._config; + } + + protected _updateBasedOnConfig(): void { + if (!this._panzoom) { + return; + } + + const config = this._getConfigToUse(); + const desiredScale = config?.zoom ?? ZOOM_DEFAULT_SCALE; + + // Transform won't exist (will be null) if the element has no dimensions, or + // if the desired scale has no zoom (i.e. is 1). + const converted = this._convertPercentToXYPan( + config?.pan?.x ?? ZOOM_DEFAULT_PAN_X, + config?.pan?.y ?? ZOOM_DEFAULT_PAN_Y, + desiredScale, + ); + + const x = converted?.x ?? 0; + const y = converted?.y ?? 0; + + // Verify there is a material change in the pan/zoom settings before acting. + if ( + this._isZoomEqual( + { zoom: desiredScale, pan: { x: x, y: y } }, + { + zoom: this._panzoom.getScale(), + pan: this._panzoom.getPan(), + }, + ) + ) { + return; + } + + this._panzoom.zoom(desiredScale, { + animate: false, + }); + + // Panzoom must allow the browser to paint the zoomed image in order to + // "contain" the pan within the parent, this creates somewhat of an async + // situation where we need to ensure the zoom completes first. Using + // `requestAnimationFrame` appears to reliably allow the zoom to finish + // rendering first, before the pain is applied. + // See: https://github.com/timmywil/panzoom?tab=readme-ov-file#a-note-on-the-async-nature-of-panzoom + window.requestAnimationFrame(() => { + this._panzoom?.pan(x, y, { + animate: false, + }); + }); + } + + /** + * Convert from Frigate card pan % values to Panzoom X/Y transformation + * coordinates. + * @param x The x translation value. + * @param y The y translation value. + * @param scale The desired (not current) scale. + * @returns An object with x/y pan % values or null on error. + */ + protected _convertPercentToXYPan( + x: number, + y: number, + scale: number, + ): { x: number; y: number } | null { + const minMax = this._getTransformMinMax(scale, this._panzoom?.getScale()); + if (minMax === null) { + return null; + } + + return { + x: minMax.minX + (minMax.maxX - minMax.minX) * (x / 100), + y: minMax.minY + (minMax.maxY - minMax.minY) * (y / 100), + }; + } + + protected _getTransformMinMax( + desiredScale: number, + currentScale?: number, + ): { + minX: number; + maxX: number; + minY: number; + maxY: number; + } | null { + const rendered = this._getRenderedSize(currentScale); + + if (!rendered.width || !rendered.height) { + return null; + } + + const minX = (rendered.width * (desiredScale - 1)) / desiredScale / 2; + const minY = (rendered.height * (desiredScale - 1)) / desiredScale / 2; + + if (arefloatsApproximatelyEqual(minX, 0) || arefloatsApproximatelyEqual(minY, 0)) { + return null; + } + + return { + minX: minX, + maxX: -minX, + minY: minY, + maxY: -minY, + }; + } + + protected _getRenderedSize(scale?: number): { width: number; height: number } { + const rect = this._element.getBoundingClientRect(); + return { + width: rect.width / (scale ?? ZOOM_DEFAULT_SCALE), + height: rect.height / (scale ?? ZOOM_DEFAULT_SCALE), + }; + } + + protected _isUnzoomed(scale?: number): boolean { + return scale !== undefined && round(scale, ZOOM_PRECISION) <= 1; + } + + protected _isAtDefaultZoomAndPan(x: number, y: number, scale: number): boolean { + if (!this._defaultConfig) { + return this._isUnzoomed(scale); + } + + const convertedDefault = this._convertPercentToXYPan( + this._defaultConfig.pan?.x ?? ZOOM_DEFAULT_PAN_X, + this._defaultConfig.pan?.y ?? ZOOM_DEFAULT_PAN_Y, + this._defaultConfig.zoom ?? ZOOM_DEFAULT_SCALE, + ); + if (!convertedDefault) { + return true; + } + + return ( + arefloatsApproximatelyEqual(x, convertedDefault.x) && + arefloatsApproximatelyEqual(y, convertedDefault.y) && + arefloatsApproximatelyEqual( + scale, + this._defaultConfig.zoom ?? + // The ZOOM_DEFAULT_SCALE clause below cannot be reached since when + // this._defaultConfig.zoom is undefined, convertedDefault will end up + // null above and this function will have already returned. + /* istanbul ignore next @preserve */ + ZOOM_DEFAULT_SCALE, + ) + ); + } + + protected _shouldZoomOrPan(ev: Event): boolean { + return ( + !this._isUnzoomed(this._panzoom?.getScale()) || + // TouchEvent does not exist on Firefox on non-touch events. See: + // https://github.com/dermotduffy/frigate-hass-card/issues/1174 + (window.TouchEvent && ev instanceof TouchEvent && ev.touches.length > 1) || + (ev instanceof WheelEvent && ev.ctrlKey) + ); + } + + protected _setTouchAction(touchEnabled: boolean): void { + this._element.style.touchAction = touchEnabled ? '' : 'none'; + } +} diff --git a/src/components-lib/zoom/zoom-view-context.ts b/src/components-lib/zoom/zoom-view-context.ts new file mode 100644 index 00000000..bd8b169a --- /dev/null +++ b/src/components-lib/zoom/zoom-view-context.ts @@ -0,0 +1,57 @@ +import { ViewContext } from 'view'; +import { ZoomConfig, ZoomDefault } from './types.js'; +import { dispatchViewContextChangeEvent } from '../../view/view.js'; + +interface ZoomViewContext { + // Populate this to request zoom to a particular scale/x/y. An empty object + // will reset to default, null will make no change. + zoom?: ZoomConfig | null; + + // This will be populated with whether or not the current zoom is at the + // default level. + isDefault?: boolean; +} + +interface ZoomsViewContext { + [targetID: string]: ZoomViewContext; +} + +declare module 'view' { + interface ViewContext { + zoom?: ZoomsViewContext; + } +} + +export const generateViewContextForZoomChange = ( + targetID: string, + options?: { + zoom?: ZoomConfig | null; + isDefault?: boolean; + }, +): ViewContext | null => { + return { + zoom: { + [targetID]: { + zoom: options?.zoom ?? null, + ...(options?.isDefault !== undefined && { isDefault: options.isDefault }), + }, + }, + }; +}; + +/** + * Convenience wrapper to convert a zoom default into a dispatched view context + * change. + */ +export const handleZoomDefaultEvent = ( + element: EventTarget, + ev: CustomEvent, + targetID?: string, +): void => { + targetID && dispatchViewContextChangeEvent( + element, + generateViewContextForZoomChange(targetID, { + isDefault: ev.detail.isDefault, + }), + ); +}; diff --git a/src/components/image.ts b/src/components/image.ts index 0ba8bbcf..5a1850d3 100644 --- a/src/components/image.ts +++ b/src/components/image.ts @@ -9,10 +9,13 @@ import { unsafeCSS, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; +import { guard } from 'lit/directives/guard.js'; import { live } from 'lit/directives/live.js'; import { createRef, ref, Ref } from 'lit/directives/ref.js'; import isEqual from 'lodash-es/isEqual'; import { CachedValueController } from '../components-lib/cached-value-controller.js'; +import { ZoomDefault } from '../components-lib/zoom/types.js'; +import { handleZoomDefaultEvent } from '../components-lib/zoom/zoom-view-context.js'; import { CameraConfig, ImageViewConfig } from '../config/types.js'; import defaultImage from '../images/frigate-bird-in-sky.jpg'; import { localize } from '../localize/localize.js'; @@ -277,8 +280,25 @@ export class FrigateCardImage extends LitElement implements FrigateCardMediaPlay } protected _useZoomIfRequired(template: TemplateResult): TemplateResult { + const targetID = this.cameraConfig?.id; + const zoomConfig = targetID ? this.view?.context?.zoom?.[targetID]?.zoom : undefined; + return this.imageConfig?.zoomable - ? html` ${template} ` + ? html` + this.cameraConfig?.dimensions?.layout + ? { + pan: this.cameraConfig.dimensions.layout.pan, + zoom: this.cameraConfig.dimensions.layout.zoom, + } + : undefined, + )} + .config=${zoomConfig} + @frigate-card:zoom:default=${(ev: CustomEvent) => + handleZoomDefaultEvent(this, ev, targetID)} + > + ${template} + ` : template; } diff --git a/src/components/live/live-image.ts b/src/components/live/live-image.ts index 91a5351d..a4d20cbd 100644 --- a/src/components/live/live-image.ts +++ b/src/components/live/live-image.ts @@ -3,8 +3,7 @@ import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit import { customElement, property } from 'lit/decorators.js'; import { createRef, ref, Ref } from 'lit/directives/ref.js'; import { CameraConfig } from '../../config/types'; -import { localize } from '../../localize/localize'; -import liveImageStyle from '../../scss/live-image.scss'; +import basicBlockStyle from '../../scss/basic-block.scss'; import { FrigateCardMediaPlayer } from '../../types.js'; import { getStateObjOrDispatchError } from '../../utils/get-state-obj'; import '../image.js'; @@ -17,9 +16,6 @@ export class FrigateCardLiveImage extends LitElement implements FrigateCardMedia @property({ attribute: false }) public cameraConfig?: CameraConfig; - @property({ attribute: true }) - public watermark?: string; - protected _refImage: Ref = createRef(); public async play(): Promise { @@ -80,17 +76,11 @@ export class FrigateCardLiveImage extends LitElement implements FrigateCardMedia .cameraConfig=${this.cameraConfig} > - ${this.watermark - ? html`` - : ''} `; } static get styles(): CSSResultGroup { - return unsafeCSS(liveImageStyle); + return unsafeCSS(basicBlockStyle); } } diff --git a/src/components/live/live.ts b/src/components/live/live.ts index 59a0bc70..8251fc07 100644 --- a/src/components/live/live.ts +++ b/src/components/live/live.ts @@ -21,6 +21,8 @@ import { import { ReadonlyMicrophoneManager } from '../../card-controller/microphone-manager.js'; import { LiveController } from '../../components-lib/live/live-controller.js'; import { MediaGridSelected } from '../../components-lib/media-grid-controller.js'; +import { ZoomConfig, ZoomDefault } from '../../components-lib/zoom/types.js'; +import { handleZoomDefaultEvent } from '../../components-lib/zoom/zoom-view-context.js'; import { CameraConfig, CardWideConfig, @@ -501,6 +503,9 @@ export class FrigateCardLiveCarousel extends LitElement { .liveConfig=${liveConfig} .hass=${this.hass} .cardWideConfig=${this.cardWideConfig} + .zoomConfig=${this.view?.context?.zoom?.[cameraID]?.zoom} + @frigate-card:zoom:default=${(ev: CustomEvent) => + handleZoomDefaultEvent(this, ev, cameraID)} > @@ -688,6 +693,9 @@ export class FrigateCardLiveProvider @property({ attribute: false }) public microphoneStream?: MediaStream; + @property({ attribute: false }) + public zoomConfig?: ZoomConfig | null; + @state() protected _isVideoMediaLoaded = false; @@ -793,9 +801,6 @@ export class FrigateCardLiveProvider this._isVideoMediaLoaded = false; } - /** - * Record that video media is being shown. - */ protected _videoMediaShowHandler(): void { this._isVideoMediaLoaded = true; } @@ -852,6 +857,15 @@ export class FrigateCardLiveProvider protected _useZoomIfRequired(template: TemplateResult): TemplateResult { return this.liveConfig?.zoomable ? html` + this.cameraConfig?.dimensions?.layout + ? { + pan: this.cameraConfig.dimensions.layout.pan, + zoom: this.cameraConfig.dimensions.layout.zoom, + } + : undefined, + )} + .config=${this.zoomConfig} @frigate-card:zoom:zoomed=${() => this.setControls(false)} @frigate-card:zoom:unzoomed=${() => this.setControls()} > @@ -899,15 +913,12 @@ export class FrigateCardLiveProvider } } - return this._useZoomIfRequired(html` + return html`${this._useZoomIfRequired(html` ${showImageDuringLoading || provider === 'image' ? html` { if (provider === 'image') { // Only count the media has loaded if the required provider is @@ -968,7 +979,13 @@ export class FrigateCardLiveProvider > ` : html``} - `); + `)} + ${showImageDuringLoading && !this._isVideoMediaLoaded + ? html`` + : ''} `; } static get styles(): CSSResultGroup { diff --git a/src/components/viewer.ts b/src/components/viewer.ts index e37a7df0..1d3b4694 100644 --- a/src/components/viewer.ts +++ b/src/components/viewer.ts @@ -12,6 +12,8 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { createRef, Ref, ref } from 'lit/directives/ref.js'; import { CameraManager } from '../camera-manager/manager.js'; import { MediaGridSelected } from '../components-lib/media-grid-controller.js'; +import { ZoomDefault } from '../components-lib/zoom/types.js'; +import { handleZoomDefaultEvent } from '../components-lib/zoom/zoom-view-context.js'; import { dispatchMessageEvent, renderMessage, @@ -484,7 +486,7 @@ export class FrigateCardViewerCarousel extends LitElement { stopEventFromActivatingCardWideActions(ev); }} > - ${guard(this._media, () => this._getSlides())} + ${guard([this._media, this.view], () => this._getSlides())} + cameraConfig?.dimensions?.layout + ? { + pan: cameraConfig.dimensions.layout.pan, + zoom: cameraConfig.dimensions.layout.zoom, + } + : undefined, + )} + .config=${mediaID ? this.view?.context?.zoom?.[mediaID]?.zoom : undefined} @frigate-card:zoom:zoomed=${() => this.setControls(false)} @frigate-card:zoom:unzoomed=${() => this.setControls()} + @frigate-card:zoom:default=${(ev: CustomEvent) => + handleZoomDefaultEvent(this, ev, mediaID)} > ${template} ` diff --git a/src/components/zoomer.ts b/src/components/zoomer.ts index 111c7bb5..7c690060 100644 --- a/src/components/zoomer.ts +++ b/src/components/zoomer.ts @@ -6,13 +6,20 @@ import { PropertyValues, TemplateResult, } from 'lit'; -import { customElement, state } from 'lit/decorators.js'; -import { ZoomController } from '../components-lib/zoom-controller.js'; +import { customElement, property, state } from 'lit/decorators.js'; +import { ZoomConfig } from '../components-lib/zoom/types.js'; +import { ZoomController } from '../components-lib/zoom/zoom-controller.js'; import { setOrRemoveAttribute } from '../utils/basic.js'; @customElement('frigate-card-zoomer') export class FrigateCardZoomer extends LitElement { - protected _zoom = new ZoomController(this); + protected _zoom: ZoomController | null = null; + + @property({ attribute: false }) + public defaultConfig?: ZoomConfig; + + @property({ attribute: false }) + public config?: ZoomConfig | null; @state() protected _zoomed = false; @@ -24,11 +31,13 @@ export class FrigateCardZoomer extends LitElement { super.connectedCallback(); this.addEventListener('frigate-card:zoom:zoomed', this._zoomHandler); this.addEventListener('frigate-card:zoom:unzoomed', this._unzoomHandler); - this._zoom.activate(); + + // Call for an update to activate. + this.requestUpdate(); } disconnectedCallback(): void { - this._zoom.deactivate(); + this._zoom?.deactivate(); this.removeEventListener('frigate-card:zoom:zoomed', this._zoomHandler); this.removeEventListener('frigate-card:zoom:unzoomed', this._unzoomHandler); } @@ -37,7 +46,26 @@ export class FrigateCardZoomer extends LitElement { if (changedProps.has('_zoomed')) { setOrRemoveAttribute(this, this._zoomed, 'zoomed'); } + + if (this._zoom) { + if (changedProps.has('defaultConfig')) { + this._zoom.setDefaultConfig(this.defaultConfig ?? null); + } + // If config is null, make no change to the zoom. + if (changedProps.has('config') && this.config) { + this._zoom.setConfig(this.config); + } + } else { + // Ensure that the configuration will be set before activation (vs + // activating in `connectedCallback`). + this._zoom = new ZoomController(this, { + config: this.config, + defaultConfig: this.defaultConfig, + }); + this._zoom.activate(); + } } + protected render(): TemplateResult | void { return html` `; } diff --git a/src/config/types.ts b/src/config/types.ts index 9c08c061..6f2d6dd3 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -90,6 +90,16 @@ const CAMERA_TRIGGER_EVENT_TYPES = [ ] as const; export type CameraTriggerEventType = (typeof CAMERA_TRIGGER_EVENT_TYPES)[number]; +// ************************************************************************* +// Pan / Zoom +// ************************************************************************* + +const panSchema = z.object({ + x: z.number().min(0).max(100).optional(), + y: z.number().min(0).max(100).optional(), +}); +const zoomSchema = z.number().min(1).max(10); + // ************************************************************************* // View Display Mode // ************************************************************************* @@ -289,15 +299,23 @@ const frigateCardShowPTZActionSchema = frigateCardCustomActionsBaseSchema.extend show_ptz: z.boolean(), }); +const frigateCardChangeZoomActionSchema = frigateCardCustomActionsBaseSchema.extend({ + frigate_card_action: z.literal('change_zoom'), + target_id: z.string(), + zoom: zoomSchema.optional(), + pan: panSchema.optional(), +}); + export const frigateCardCustomActionSchema = z.union([ - frigateCardViewActionSchema, - frigateCardGeneralActionSchema, frigateCardCameraSelectActionSchema, + frigateCardChangeZoomActionSchema, + frigateCardGeneralActionSchema, frigateCardLiveDependencySelectActionSchema, frigateCardMediaPlayerActionSchema, - frigateCardViewDisplayModeActionSchema, frigateCardPTZActionSchema, frigateCardShowPTZActionSchema, + frigateCardViewActionSchema, + frigateCardViewDisplayModeActionSchema, ]); export type FrigateCardCustomAction = z.infer; @@ -626,6 +644,8 @@ const mediaLayoutConfigSchema = z.object({ top: z.number().min(0).max(100).optional().default(0), }) .optional(), + pan: panSchema.optional(), + zoom: zoomSchema.optional(), }); export type MediaLayoutConfig = z.infer; @@ -1345,22 +1365,20 @@ const hiddenButtonDefault = { }; const menuConfigDefault = { - style: 'hidden' as const, - position: 'top' as const, alignment: 'left' as const, + button_size: 40, buttons: { - frigate: visibleButtonDefault, - cameras: visibleButtonDefault, - substreams: visibleButtonDefault, - live: visibleButtonDefault, - clips: visibleButtonDefault, - snapshots: visibleButtonDefault, - image: hiddenButtonDefault, - timeline: visibleButtonDefault, - download: visibleButtonDefault, camera_ui: visibleButtonDefault, - fullscreen: visibleButtonDefault, + cameras: visibleButtonDefault, + clips: visibleButtonDefault, + default_zoom: visibleButtonDefault, + display_mode: visibleButtonDefault, + download: visibleButtonDefault, expand: hiddenButtonDefault, + frigate: visibleButtonDefault, + fullscreen: visibleButtonDefault, + image: hiddenButtonDefault, + live: visibleButtonDefault, media_player: visibleButtonDefault, microphone: { ...hiddenButtonDefault, @@ -1368,12 +1386,15 @@ const menuConfigDefault = { }, mute: hiddenButtonDefault, play: hiddenButtonDefault, + ptz: hiddenButtonDefault, recordings: hiddenButtonDefault, screenshot: hiddenButtonDefault, - display_mode: visibleButtonDefault, - ptz: hiddenButtonDefault, + snapshots: visibleButtonDefault, + substreams: visibleButtonDefault, + timeline: visibleButtonDefault, }, - button_size: 40, + position: 'top' as const, + style: 'hidden' as const, }; const visibleButtonSchema = menuBaseSchema.extend({ @@ -1393,18 +1414,21 @@ export const menuConfigSchema = z alignment: z.enum(FRIGATE_MENU_ALIGNMENTS).default(menuConfigDefault.alignment), buttons: z .object({ - frigate: visibleButtonSchema.default(menuConfigDefault.buttons.frigate), - cameras: visibleButtonSchema.default(menuConfigDefault.buttons.cameras), - substreams: visibleButtonSchema.default(menuConfigDefault.buttons.substreams), - live: visibleButtonSchema.default(menuConfigDefault.buttons.live), - clips: visibleButtonSchema.default(menuConfigDefault.buttons.clips), - snapshots: visibleButtonSchema.default(menuConfigDefault.buttons.snapshots), - image: hiddenButtonSchema.default(menuConfigDefault.buttons.image), - timeline: visibleButtonSchema.default(menuConfigDefault.buttons.timeline), - download: visibleButtonSchema.default(menuConfigDefault.buttons.download), camera_ui: visibleButtonSchema.default(menuConfigDefault.buttons.camera_ui), - fullscreen: visibleButtonSchema.default(menuConfigDefault.buttons.fullscreen), + cameras: visibleButtonSchema.default(menuConfigDefault.buttons.cameras), + clips: visibleButtonSchema.default(menuConfigDefault.buttons.clips), + default_zoom: visibleButtonSchema.default( + menuConfigDefault.buttons.default_zoom, + ), + display_mode: visibleButtonSchema.default( + menuConfigDefault.buttons.display_mode, + ), + download: visibleButtonSchema.default(menuConfigDefault.buttons.download), expand: hiddenButtonSchema.default(menuConfigDefault.buttons.expand), + frigate: visibleButtonSchema.default(menuConfigDefault.buttons.frigate), + fullscreen: visibleButtonSchema.default(menuConfigDefault.buttons.fullscreen), + image: hiddenButtonSchema.default(menuConfigDefault.buttons.image), + live: visibleButtonSchema.default(menuConfigDefault.buttons.live), media_player: visibleButtonSchema.default( menuConfigDefault.buttons.media_player, ), @@ -1415,14 +1439,14 @@ export const menuConfigSchema = z .default(menuConfigDefault.buttons.microphone.type), }) .default(menuConfigDefault.buttons.microphone), - recordings: hiddenButtonSchema.default(menuConfigDefault.buttons.recordings), mute: hiddenButtonSchema.default(menuConfigDefault.buttons.mute), play: hiddenButtonSchema.default(menuConfigDefault.buttons.play), - screenshot: hiddenButtonSchema.default(menuConfigDefault.buttons.screenshot), - display_mode: visibleButtonSchema.default( - menuConfigDefault.buttons.display_mode, - ), ptz: hiddenButtonSchema.default(menuConfigDefault.buttons.ptz), + recordings: hiddenButtonSchema.default(menuConfigDefault.buttons.recordings), + screenshot: hiddenButtonSchema.default(menuConfigDefault.buttons.screenshot), + snapshots: visibleButtonSchema.default(menuConfigDefault.buttons.snapshots), + substreams: visibleButtonSchema.default(menuConfigDefault.buttons.substreams), + timeline: visibleButtonSchema.default(menuConfigDefault.buttons.timeline), }) .default(menuConfigDefault.buttons), button_size: z.number().min(BUTTON_SIZE_MIN).default(menuConfigDefault.button_size), diff --git a/src/const.ts b/src/const.ts index d39d45aa..b3d9c9ec 100644 --- a/src/const.ts +++ b/src/const.ts @@ -57,6 +57,10 @@ export const CONF_CAMERAS_ARRAY_DEPENDENCIES_ALL_CAMERAS = `${CONF_CAMERAS}.#.dependencies.all_cameras` as const; export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_FIT = `${CONF_CAMERAS}.#.dimensions.layout.fit` as const; + export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_PAN_X = + `${CONF_CAMERAS}.#.dimensions.layout.pan.x` as const; +export const CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_PAN_Y = + `${CONF_CAMERAS}.#.dimensions.layout.pan.y` as const; 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 = @@ -69,6 +73,8 @@ 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_DIMENSIONS_LAYOUT_ZOOM_FACTOR = + `${CONF_CAMERAS}.#.dimensions.layout.zoom` 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 0b9adc74..f79390e8 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -44,12 +44,15 @@ import { CONF_CAMERAS_ARRAY_DEPENDENCIES_CAMERAS, CONF_CAMERAS_ARRAY_DIMENSIONS_ASPECT_RATIO, CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_FIT, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_PAN_X, + CONF_CAMERAS_ARRAY_DIMENSIONS_LAYOUT_PAN_Y, 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_DIMENSIONS_LAYOUT_ZOOM_FACTOR, CONF_CAMERAS_ARRAY_FRIGATE_CAMERA_NAME, CONF_CAMERAS_ARRAY_FRIGATE_CLIENT_ID, CONF_CAMERAS_ARRAY_FRIGATE_LABELS, @@ -817,9 +820,6 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor } } - /** - * Called before each update. - */ protected willUpdate(): void { if (!this._initialized) { sideLoadHomeAssistantElements().then((success) => { @@ -981,6 +981,7 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor max?: number; label?: string; default?: number; + step?: number; }, ): TemplateResult | void { if (!this._config) { @@ -992,7 +993,14 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor return html` ` : ''} diff --git a/src/localize/languages/ca.json b/src/localize/languages/ca.json index 7890348b..f6bd7c74 100644 --- a/src/localize/languages/ca.json +++ b/src/localize/languages/ca.json @@ -55,6 +55,10 @@ "cover": "El suport s'expandeix proporcionalment per cobrir la targeta", "fill": "El suport s'estira per omplir la targeta" }, + "pan": { + "x": "", + "y": "" + }, "position": { "editor_label": "", "x": "Percentatge d'emplaçament horitzontal", @@ -66,7 +70,8 @@ "left": "", "right": "", "top": "" - } + }, + "zoom": "" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Interfície d'usuari de la càmera", "cameras": "Càmeres", "clips": "Clips", + "default_zoom": "", "display_mode": "Mode de visualització", "download": "Descarregar", "enabled": "Botó habilitat", diff --git a/src/localize/languages/en.json b/src/localize/languages/en.json index 61b48940..d145acab 100644 --- a/src/localize/languages/en.json +++ b/src/localize/languages/en.json @@ -55,6 +55,10 @@ "cover": "Media expands proportionally to cover the card", "fill": "Media is stretched to fill the card" }, + "pan": { + "x": "Pan horizontal percentage", + "y": "Pan vertical percentage" + }, "position": { "editor_label": "Layout Cover Position", "x": "Horizontal placement percentage", @@ -66,7 +70,8 @@ "left": "Left inset percentage", "right": "Right inset percentage", "top": "Top inset percentage" - } + }, + "zoom": "Zoom factor" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Camera user interface", "cameras": "Cameras", "clips": "Clips", + "default_zoom": "Zoom to default", "display_mode": "Display mode", "download": "Download", "enabled": "Button enabled", diff --git a/src/localize/languages/fr.json b/src/localize/languages/fr.json index 806ed481..0c639c16 100644 --- a/src/localize/languages/fr.json +++ b/src/localize/languages/fr.json @@ -55,6 +55,10 @@ "cover": "Il supporto si espande proporzionalmente per coprire la scheda", "fill": "Il supporto viene allungato per riempire la scheda" }, + "pan": { + "x": "", + "y": "" + }, "position": { "editor_label": "", "x": "Percentuale di posizionamento orizzontale", @@ -66,7 +70,8 @@ "left": "", "right": "", "top": "" - } + }, + "zoom": "" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Interface utilisateur de la caméra", "cameras": "Appareils photo", "clips": "Extraits", + "default_zoom": "", "display_mode": "", "download": "Télécharger", "enabled": "Bouton activé", diff --git a/src/localize/languages/it.json b/src/localize/languages/it.json index b55a68e3..cf078f21 100644 --- a/src/localize/languages/it.json +++ b/src/localize/languages/it.json @@ -55,6 +55,10 @@ "cover": "Il supporto si espande proporzionalmente per coprire la scheda", "fill": "Il supporto viene allungato per riempire la scheda" }, + "pan": { + "x": "", + "y": "" + }, "position": { "editor_label": "", "x": "Percentuale di posizionamento orizzontale", @@ -66,7 +70,8 @@ "left": "", "right": "", "top": "" - } + }, + "zoom": "" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Interfaccia utente della fotocamera", "cameras": "Telecamere", "clips": "Clip", + "default_zoom": "", "display_mode": "", "download": "Download", "enabled": "Pulsante abilitato", diff --git a/src/localize/languages/pt-BR.json b/src/localize/languages/pt-BR.json index fb1fb510..ad57b80a 100644 --- a/src/localize/languages/pt-BR.json +++ b/src/localize/languages/pt-BR.json @@ -55,6 +55,10 @@ "cover": "A mídia se expande proporcionalmente para cobrir o cartão", "fill": "A mídia é esticada para preencher o cartão" }, + "pan": { + "x": "", + "y": "" + }, "position": { "editor_label": "", "x": "Porcentagem do posicionamento horizontal", @@ -66,7 +70,8 @@ "left": "", "right": "", "top": "" - } + }, + "zoom": "" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Interface de usuário da câmera", "cameras": "Selecionar câmera", "clips": "Clipes", + "default_zoom": "", "display_mode": "", "download": "Baixe a mídia do evento", "enabled": "Botão ativado", diff --git a/src/localize/languages/pt-PT.json b/src/localize/languages/pt-PT.json index 2bee1366..46cd0f18 100644 --- a/src/localize/languages/pt-PT.json +++ b/src/localize/languages/pt-PT.json @@ -55,6 +55,10 @@ "cover": "Tapar", "fill": "Preencher" }, + "pan": { + "x": "", + "y": "" + }, "position": { "editor_label": "", "x": "Percentagem da localização horizontal", @@ -66,7 +70,8 @@ "left": "", "right": "", "top": "" - } + }, + "zoom": "" } }, "engines": { @@ -357,6 +362,7 @@ "camera_ui": "Camera", "cameras": "Selecionar câmera", "clips": "Clipes", + "default_zoom": "", "display_mode": "", "download": "Descarregar mídia do evento", "enabled": "Botão ativado", diff --git a/src/scss/live-image.scss b/src/scss/live-image.scss deleted file mode 100644 index e3950e11..00000000 --- a/src/scss/live-image.scss +++ /dev/null @@ -1,13 +0,0 @@ -:host { - width: 100%; - height: 100%; - display: block; - position: relative; -} - -ha-icon { - position: absolute; - top: 10px; - right: 10px; - color: var(--primary-color); -} diff --git a/src/scss/live-provider.scss b/src/scss/live-provider.scss index 15c43662..468bf011 100644 --- a/src/scss/live-provider.scss +++ b/src/scss/live-provider.scss @@ -2,8 +2,16 @@ display: block; height: 100%; width: 100%; + position: relative; } .hidden { display: none; } + +ha-icon { + position: absolute; + top: 10px; + right: 10px; + color: var(--primary-color); +} diff --git a/src/utils/action.ts b/src/utils/action.ts index 01b39f78..cb4e2b18 100644 --- a/src/utils/action.ts +++ b/src/utils/action.ts @@ -102,6 +102,27 @@ export function createFrigateCardShowPTZAction( }; } +export function createFrigateCardChangeZoomAction( + targetID: string, + options?: { + cardID?: string; + pan?: { + x?: number; + y?: number; + }; + zoom?: number; + }, +): FrigateCardCustomAction { + return { + action: 'fire-dom-event', + frigate_card_action: 'change_zoom', + target_id: targetID, + ...(options?.cardID && { card_id: options.cardID }), + ...(options?.pan && { pan: options.pan }), + ...(options?.zoom && { zoom: options.zoom }), + }; +} + /** * Get an action configuration given a config and an interaction (e.g. 'tap'). * @param interaction The interaction: `tap`, `hold` or `double_tap` diff --git a/src/utils/basic.ts b/src/utils/basic.ts index a31f1223..99f16855 100644 --- a/src/utils/basic.ts +++ b/src/utils/basic.ts @@ -3,7 +3,8 @@ import differenceInMinutes from 'date-fns/differenceInMinutes'; import differenceInSeconds from 'date-fns/differenceInSeconds'; import format from 'date-fns/format'; import { StyleInfo } from 'lit/directives/style-map'; -import isEqual from 'lodash-es/isEqual'; +import { round } from 'lodash-es'; +import isEqualWith from 'lodash-es/isEqualWith'; import mergeWith from 'lodash-es/mergeWith'; import { FrigateCardError } from '../types'; @@ -87,8 +88,12 @@ export const setify = (value: T | T[] | Set): Set => { * @param o The old value. * @returns `true` is the contents have changed. */ -export function contentsChanged(n: unknown, o: unknown): boolean { - return !isEqual(n, o); +export function contentsChanged( + n: unknown, + o: unknown, + customizer?: (a: unknown, b: unknown) => boolean | undefined, +): boolean { + return !isEqualWith(n, o, customizer); } /** @@ -286,3 +291,24 @@ export const desparsifyArrays = (data: T): T => { } return data; }; + +export const arefloatsApproximatelyEqual = ( + a: number, + b: number, + precision?: number, +): boolean => { + return round(a, precision) === round(b, precision); +}; + +/** + * Create a lodash isEqualsWith customizer that can compare floats. + */ +export const generateFloatApproximatelyEqualsCustomizer = ( + precision: number, +): ((a: unknown, b: unknown) => boolean | undefined) => { + return (a: unknown, b: unknown) => { + return typeof a === 'number' && typeof b === 'number' + ? arefloatsApproximatelyEqual(a, b, precision) + : undefined; + }; +}; diff --git a/src/view/view.ts b/src/view/view.ts index 03dbfeec..9e9e54e6 100644 --- a/src/view/view.ts +++ b/src/view/view.ts @@ -177,7 +177,7 @@ export class View { * @param context The context to merge in. * @returns This view. */ - public mergeInContext(context?: ViewContext): View { + public mergeInContext(context?: ViewContext | null): View { this.context = merge({}, this.context, context); return this; } @@ -306,7 +306,7 @@ export interface FrigateCardViewChangeEventTarget extends EventTarget { */ export const dispatchViewContextChangeEvent = ( target: EventTarget, - context: ViewContext, + context: ViewContext | null, ): void => { dispatchFrigateCardEvent(target, 'view:change-context', context); }; diff --git a/tests/camera-manager/manager.test.ts b/tests/camera-manager/manager.test.ts index 6a0a2258..6c69a6fb 100644 --- a/tests/camera-manager/manager.test.ts +++ b/tests/camera-manager/manager.test.ts @@ -259,16 +259,9 @@ describe('CameraManager', async () => { return new CameraManager(api, { factory: mockFactory }); }; - it('should reset', async () => { - const store = new CameraManagerStore(); - store.addCamera( - new Camera(createCameraConfig({ id: 'id' }), mock()), - ); - const manager = new CameraManager(createCardAPI(), { store: store }); - - expect(manager.getStore().getCameraCount()).toBe(1); - await manager.reset(); - expect(manager.getStore().getCameraCount()).toBe(0); + it('should construct', async () => { + const manager = new CameraManager(createCardAPI()); + expect(manager.getStore()).toBeTruthy(); }); describe('should initialize cameras from config', () => { diff --git a/tests/card-controller/actions-manager.test.ts b/tests/card-controller/actions-manager.test.ts index 8b11b640..0da864a7 100644 --- a/tests/card-controller/actions-manager.test.ts +++ b/tests/card-controller/actions-manager.test.ts @@ -196,7 +196,6 @@ describe('ActionsManager.handleInteraction', () => { manager.handleInteractionEvent( new CustomEvent('event', { - // Malformed interaction type. detail: { action: 'double_finger_snap' } as unknown as Interaction, }), @@ -800,11 +799,68 @@ describe('ActionsManager.executeAction', () => { })!, ); - expect(api.getViewManager().setViewWithNewContext).toBeCalledWith( + expect(api.getViewManager().setViewWithMergedContext).toBeCalledWith( expect.objectContaining({ live: { ptzVisible: true } }), ); }); + describe('should handle change_zoom action', () => { + it('default', async () => { + const api = createCardAPI(); + const manager = new ActionsManager(api); + + await manager.executeFrigateAction( + createAction({ + frigate_card_action: 'change_zoom', + target_id: 'camera.office', + })!, + ); + + expect(api.getViewManager().setViewWithMergedContext).toBeCalledWith( + expect.objectContaining({ + zoom: { + 'camera.office': { + zoom: {}, + }, + }, + }), + ); + }); + + it('non-default', async () => { + const api = createCardAPI(); + const manager = new ActionsManager(api); + + await manager.executeFrigateAction( + createAction({ + frigate_card_action: 'change_zoom', + target_id: 'camera.office', + zoom: 2, + pan: { + x: 3, + y: 4, + }, + })!, + ); + + expect(api.getViewManager().setViewWithMergedContext).toBeCalledWith( + expect.objectContaining({ + zoom: { + 'camera.office': { + zoom: { + zoom: 2, + pan: { + x: 3, + y: 4, + }, + }, + }, + }, + }), + ); + }); + }); + it('should handle unknown action', async () => { const manager = new ActionsManager(createCardAPI()); diff --git a/tests/card-controller/card-element-manager.test.ts b/tests/card-controller/card-element-manager.test.ts index 82f9392b..664c1faa 100644 --- a/tests/card-controller/card-element-manager.test.ts +++ b/tests/card-controller/card-element-manager.test.ts @@ -149,7 +149,6 @@ describe('CardElementManager', () => { element.removeEventListener = removeEventListener; const api = createCardAPI(); - vi.mocked(api.getCameraManager().reset).mockResolvedValue(); const manager = new CardElementManager( api, @@ -186,6 +185,6 @@ describe('CardElementManager', () => { ); expect(windowRemoveEventListener).toBeCalledWith('popstate', expect.anything()); - expect(api.getCameraManager().reset).toBeCalled(); + expect(api.getInitializationManager().uninitialize).toBeCalledWith('cameras'); }); }); diff --git a/tests/card-controller/initialization-manager.test.ts b/tests/card-controller/initialization-manager.test.ts index 7abc77b0..6ba18553 100644 --- a/tests/card-controller/initialization-manager.test.ts +++ b/tests/card-controller/initialization-manager.test.ts @@ -1,10 +1,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { loadLanguages } from '../../src/localize/localize'; import { InitializationAspect, InitializationManager, } from '../../src/card-controller/initialization-manager'; +import { loadLanguages } from '../../src/localize/localize'; import { sideLoadHomeAssistantElements } from '../../src/utils/ha'; import { Initializer } from '../../src/utils/initializer/initializer'; import { createCardAPI, createConfig, createHASS } from '../test-utils'; @@ -184,6 +184,22 @@ describe('InitializationManager', () => { expect(await manager.initializeMandatory()).toBeFalsy(); }); + + it('with existing view', async () => { + const api = createCardAPI(); + vi.mocked(api.getHASSManager().getHASS).mockReturnValue(createHASS()); + vi.mocked(api.getConfigManager().getConfig).mockReturnValue(createConfig()); + vi.mocked(api.getViewManager().hasView).mockReturnValue(true); + + const initializer = mock(); + const manager = new InitializationManager(api, initializer); + initializer.initializeMultipleIfNecessary + .mockResolvedValueOnce(true) + .mockResolvedValueOnce(true); + + expect(await manager.initializeMandatory()).toBeTruthy(); + expect(api.getCardElementManager().update).toBeCalled(); + }); }); describe('should initialize background', () => { diff --git a/tests/card-controller/view-manager.test.ts b/tests/card-controller/view-manager.test.ts index f1395938..c0bed650 100644 --- a/tests/card-controller/view-manager.test.ts +++ b/tests/card-controller/view-manager.test.ts @@ -81,7 +81,7 @@ describe('ViewManager.setView', () => { const context = { live: { fetchThumbnails: false } }; // Setting context with no existing view does nothing. - manager.setViewWithNewContext(context); + manager.setViewWithMergedContext(context); expect(manager.getView()).toBeNull(); const view = createView({ @@ -89,7 +89,7 @@ describe('ViewManager.setView', () => { camera: 'camera', }); manager.setView(view); - manager.setViewWithNewContext(context); + manager.setViewWithMergedContext(context); expect(manager.getView()?.camera).toBe('camera'); expect(manager.getView()?.view).toBe('live'); diff --git a/tests/components-lib/menu-button-controller.test.ts b/tests/components-lib/menu-button-controller.test.ts index daba7957..f7bdc4e7 100644 --- a/tests/components-lib/menu-button-controller.test.ts +++ b/tests/components-lib/menu-button-controller.test.ts @@ -11,7 +11,12 @@ import { MenuButtonController, MenuButtonControllerOptions, } from '../../src/components-lib/menu-button-controller'; -import { FrigateCardConfig, MenuItem, ViewDisplayMode } from '../../src/config/types'; +import { + FrigateCardConfig, + FrigateCardView, + MenuItem, + ViewDisplayMode, +} from '../../src/config/types'; import { FrigateCardMediaPlayer } from '../../src/types'; import { createFrigateCardSimpleAction } from '../../src/utils/action'; import { ViewMedia } from '../../src/view/media'; @@ -29,6 +34,7 @@ import { createStateEntity, createStore, createView, + TestViewMedia, } from '../test-utils'; vi.mock('../../src/utils/media-player-controller.js'); @@ -1487,6 +1493,69 @@ describe('MenuButtonController', () => { }); }); + describe('should have change zoom button', () => { + it.each([ + ['live' as const, true, false], + ['live' as const, undefined, false], + ['live' as const, false, true], + ['media' as const, true, false], + ['media' as const, undefined, false], + ['media' as const, false, true], + ])( + '%s view with isDefault %s', + ( + viewName: FrigateCardView, + isDefault: boolean | undefined, + expectedResult: boolean, + ) => { + const cameraManager = createCameraManager(); + vi.mocked(cameraManager.getStore).mockReturnValue( + createStore([{ cameraID: 'camera-1' }]), + ); + + const targetID = viewName === 'live' ? 'camera-1' : 'media-1'; + const view = createView({ + view: viewName, + camera: 'camera-1', + queryResults: new MediaQueriesResults({ + results: [new TestViewMedia({ id: 'media-1' })], + selectedIndex: 0, + }), + context: { + zoom: { + [targetID]: { + isDefault: isDefault, + }, + }, + }, + }); + const buttons = calculateButtons(controller, { + cameraManager: cameraManager, + view: view, + }); + + if (expectedResult) { + expect(buttons).toContainEqual({ + enabled: true, + icon: 'mdi:magnify-close', + priority: 50, + tap_action: { + action: 'fire-dom-event', + frigate_card_action: 'change_zoom', + target_id: targetID, + }, + title: 'Zoom to default', + type: 'custom:frigate-card-menu-icon', + }); + } else { + expect(buttons).not.toContainEqual( + expect.objectContaining({ title: 'Set zoom to default' }), + ); + } + }, + ); + }); + describe('should handle dynamic buttons', () => { it('successfully', () => { const button: MenuItem = { diff --git a/tests/components-lib/zoom-controller.test.ts b/tests/components-lib/zoom-controller.test.ts deleted file mode 100644 index e040e4d1..00000000 --- a/tests/components-lib/zoom-controller.test.ts +++ /dev/null @@ -1,321 +0,0 @@ -import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { mock } from 'vitest-mock-extended'; -import { ZoomController } from '../../src/components-lib/zoom-controller'; - -vi.mock('@dermotduffy/panzoom'); - -// https://github.com/jsdom/jsdom/issues/2527 -(window as any).PointerEvent = MouseEvent; - -// @vitest-environment jsdom -describe('ZoomController', () => { - const mediaMediSpy = vi.spyOn(window, 'matchMedia'); - - const createMockPanZoom = (): PanzoomObject => { - const panzoom = mock(); - panzoom.getScale.mockReturnValue(1.0); - return panzoom; - }; - - const createAndRegisterZoom = (element: HTMLElement): ZoomController => { - const zoom = new ZoomController(element); - zoom.activate(); - return zoom; - }; - - const createTouch = (target: HTMLElement): Touch => { - return { - clientX: 0, - clientY: 0, - force: 0, - identifier: 0, - pageX: 0, - pageY: 0, - radiusX: 0, - radiusY: 0, - rotationAngle: 0, - screenX: 0, - screenY: 0, - target: target, - }; - }; - - beforeEach(() => { - mediaMediSpy.mockReturnValue({ matches: true }); - }); - - afterEach(() => { - vi.clearAllMocks(); - }); - - it('should be creatable', () => { - const element = document.createElement('div'); - const zoom = new ZoomController(element); - expect(zoom).toBeTruthy(); - }); - - it('should respond with pointer', () => { - const element = document.createElement('div'); - - const panzoom = createMockPanZoom(); - vi.mocked(Panzoom).mockReturnValueOnce(panzoom); - - createAndRegisterZoom(element); - - // Won't zoom without control key. - const ev_1 = new WheelEvent('wheel', { bubbles: false, deltaY: -120 }); - element.dispatchEvent(ev_1); - expect(panzoom.zoomWithWheel).not.toBeCalled(); - - const ev_2 = new WheelEvent('wheel', { - bubbles: false, - deltaY: -120, - ctrlKey: true, - }); - element.dispatchEvent(ev_2); - expect(panzoom.zoomWithWheel).toBeCalledWith(ev_2); - - panzoom.getScale = vi.fn().mockReturnValue(1.2); - - const ev_3 = new PointerEvent('pointerdown'); - element.dispatchEvent(ev_3); - expect(panzoom.handleDown).toBeCalledWith(ev_3); - - const ev_4 = new PointerEvent('pointermove'); - element.dispatchEvent(ev_4); - expect(panzoom.handleMove).toBeCalledWith(ev_4); - - const ev_5 = new PointerEvent('pointerup'); - element.dispatchEvent(ev_5); - expect(panzoom.handleUp).toBeCalledWith(ev_5); - }); - - it('should not respond to pointer when not zoomed', () => { - const element = document.createElement('div'); - - const panzoom = createMockPanZoom(); - vi.mocked(Panzoom).mockReturnValueOnce(panzoom); - - createAndRegisterZoom(element); - - const ev_1 = new PointerEvent('pointerdown'); - element.dispatchEvent(ev_1); - expect(panzoom.handleDown).not.toBeCalledWith(ev_1); - - const ev_2 = new PointerEvent('pointermove'); - element.dispatchEvent(ev_2); - expect(panzoom.handleDown).not.toBeCalledWith(ev_2); - - const ev_3 = new PointerEvent('pointerup'); - element.dispatchEvent(ev_3); - expect(panzoom.handleDown).not.toBeCalledWith(ev_3); - }); - - it('should respond with touch', () => { - mediaMediSpy.mockReturnValue({ matches: false }); - - const element = document.createElement('div'); - - const panzoom = createMockPanZoom(); - vi.mocked(Panzoom).mockReturnValueOnce(panzoom); - - createAndRegisterZoom(element); - - const ev_1 = new TouchEvent('touchstart', { - bubbles: false, - touches: [createTouch(element), createTouch(element)], - }); - element.dispatchEvent(ev_1); - expect(panzoom.handleDown).toBeCalledWith(ev_1); - - panzoom.getScale = vi.fn().mockReturnValue(1.2); - - const ev_3 = new TouchEvent('touchstart'); - element.dispatchEvent(ev_3); - expect(panzoom.handleDown).toBeCalledWith(ev_3); - - const ev_4 = new TouchEvent('touchmove'); - element.dispatchEvent(ev_4); - expect(panzoom.handleMove).toBeCalledWith(ev_4); - - const ev_5 = new TouchEvent('touchend'); - element.dispatchEvent(ev_5); - expect(panzoom.handleUp).toBeCalledWith(ev_5); - }); - - it('should ignore click after pointerdown', () => { - const outer = document.createElement('div'); - const inner = document.createElement('div'); - outer.appendChild(inner); - const clickHandler = vi.fn(); - outer.addEventListener('click', clickHandler); - - const panzoom = createMockPanZoom(); - vi.mocked(Panzoom).mockReturnValueOnce(panzoom); - - createAndRegisterZoom(inner); - - // Simulate being zoomed in. - panzoom.getScale = vi.fn().mockReturnValue(1.2); - - // A click on its own will be fine. - const click_1 = new MouseEvent('click', { bubbles: true }); - inner.dispatchEvent(click_1); - expect(clickHandler).toBeCalledTimes(1); - - // A click after a pointerdown will be ignored. - const pointerdown_1 = new PointerEvent('pointerdown'); - inner.dispatchEvent(pointerdown_1); - - const click_2 = new MouseEvent('click', { bubbles: true }); - inner.dispatchEvent(click_2); - - // Click will have been ignored. - expect(clickHandler).toBeCalledTimes(1); - - // Simulate being zoomed out. - panzoom.getScale = vi.fn().mockReturnValue(1.0); - const pointerdown_2 = new PointerEvent('pointerdown'); - inner.dispatchEvent(pointerdown_2); - - const click_3 = new MouseEvent('click', { bubbles: true }); - inner.dispatchEvent(click_3); - - // Click will have been processed. - expect(clickHandler).toBeCalledTimes(2); - }); - - it('deactivate should remove event handlers', () => { - const element = document.createElement('div'); - - const panzoom = createMockPanZoom(); - vi.mocked(Panzoom).mockReturnValueOnce(panzoom); - - createAndRegisterZoom(element).deactivate(); - - const ev_1 = new WheelEvent('wheel', { - bubbles: false, - deltaY: -120, - ctrlKey: true, - }); - element.dispatchEvent(ev_1); - expect(panzoom.zoomWithWheel).not.toBeCalled(); - }); - - it('should fire frigate cards on zoom/unzoom', () => { - const element = document.createElement('div'); - - const zoomedFunc = vi.fn(); - const unzoomedFunc = vi.fn(); - - element.addEventListener('frigate-card:zoom:zoomed', zoomedFunc); - element.addEventListener('frigate-card:zoom:unzoomed', unzoomedFunc); - - vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); - - createAndRegisterZoom(element); - - const ev_1 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1.2, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_1); - expect(zoomedFunc).toBeCalled(); - expect(unzoomedFunc).not.toBeCalled(); - - const ev_2 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_2); - expect(unzoomedFunc).toBeCalled(); - }); - - it('should set touch action on zoom/unzoom', () => { - const element = document.createElement('div'); - vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); - - createAndRegisterZoom(element); - - const ev_1 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1.2, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_1); - expect(element.style.touchAction).toBe('none'); - - const ev_2 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_2); - expect(element.style.touchAction).toBeFalsy(); - }); - - it('should not fire frigate cards when state has not changed or spurious events received', () => { - const element = document.createElement('div'); - - const zoomedFunc = vi.fn(); - const unzoomedFunc = vi.fn(); - - element.addEventListener('frigate-card:zoom:zoomed', zoomedFunc); - element.addEventListener('frigate-card:zoom:unzoomed', unzoomedFunc); - - vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); - - createAndRegisterZoom(element); - - const ev_1 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_1); - - // Unzoomed event with scale === 1, this._zoomed will already be false. - expect(unzoomedFunc).not.toBeCalled(); - expect(zoomedFunc).not.toBeCalled(); - - const ev_2 = new CustomEvent('panzoomzoom', { - detail: { - x: 0, - y: 0, - scale: 1.2, - isSVG: false, - originalEvent: new PointerEvent('pointermove'), - }, - }); - element.dispatchEvent(ev_2); - expect(zoomedFunc).toBeCalledTimes(1); - expect(unzoomedFunc).not.toBeCalled(); - - // Another call when already zoomed will be ignored. - element.dispatchEvent(ev_2); - expect(zoomedFunc).toBeCalledTimes(1); - }); -}); diff --git a/tests/components-lib/zoom/zoom-controller.test.ts b/tests/components-lib/zoom/zoom-controller.test.ts new file mode 100644 index 00000000..46fa22e2 --- /dev/null +++ b/tests/components-lib/zoom/zoom-controller.test.ts @@ -0,0 +1,658 @@ +import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; +import { mock, mockClear } from 'vitest-mock-extended'; +import { ZoomController } from '../../../src/components-lib/zoom/zoom-controller'; +import { ResizeObserverMock, requestAnimationFrameMock } from '../../test-utils'; + +vi.mock('@dermotduffy/panzoom'); +vi.mock('lodash-es/debounce', () => ({ + default: vi.fn((fn) => fn), +})); + +// https://github.com/jsdom/jsdom/issues/2527 +// eslint-disable-next-line @typescript-eslint/no-explicit-any +(window as any).PointerEvent = MouseEvent; + +const triggerResizeObserver = (): void => { + const resizeObserverTrigger = vi.mocked(global.ResizeObserver).mock.calls[0][0]; + resizeObserverTrigger([], mock()); +}; + +const setElementToDefaultCardSize = (element: HTMLElement, multiple?: number): void => { + element.getBoundingClientRect = vi.fn().mockReturnValue({ + width: 492 * (multiple ?? 1), + height: 276.75 * (multiple ?? 1), + }); +}; + +// @vitest-environment jsdom +describe('ZoomController', () => { + const mediaSpy = vi.spyOn(window, 'matchMedia'); + + const createMockPanZoom = (): PanzoomObject => { + const panzoom = mock(); + panzoom.getScale.mockReturnValue(1.0); + panzoom.getPan.mockReturnValue({ x: 0, y: 0 }); + return panzoom; + }; + + const createAndRegisterZoom = (element: HTMLElement): ZoomController => { + const zoom = new ZoomController(element); + zoom.activate(); + return zoom; + }; + + const createTouch = (target: HTMLElement): Touch => { + return { + clientX: 0, + clientY: 0, + force: 0, + identifier: 0, + pageX: 0, + pageY: 0, + radiusX: 0, + radiusY: 0, + rotationAngle: 0, + screenX: 0, + screenY: 0, + target: target, + }; + }; + + beforeAll(() => { + vi.stubGlobal('ResizeObserver', ResizeObserverMock); + window.requestAnimationFrame = requestAnimationFrameMock; + }); + + beforeEach(() => { + vi.mocked(Panzoom).mockReset(); + vi.mocked(global.ResizeObserver).mockClear(); + mediaSpy.mockReturnValue({ matches: true }); + }); + + it('should be creatable', () => { + const element = document.createElement('div'); + const zoom = new ZoomController(element); + expect(zoom).toBeTruthy(); + }); + + describe('should pan and zoom', () => { + it('should respond with pointer', () => { + const element = document.createElement('div'); + + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + createAndRegisterZoom(element); + + // Won't zoom without control key. + const ev_1 = new WheelEvent('wheel', { bubbles: false, deltaY: -120 }); + element.dispatchEvent(ev_1); + expect(panzoom.zoomWithWheel).not.toBeCalled(); + + const ev_2 = new WheelEvent('wheel', { + bubbles: false, + deltaY: -120, + ctrlKey: true, + }); + element.dispatchEvent(ev_2); + expect(panzoom.zoomWithWheel).toBeCalledWith(ev_2); + + panzoom.getScale = vi.fn().mockReturnValue(1.2); + + const ev_3 = new PointerEvent('pointerdown'); + element.dispatchEvent(ev_3); + expect(panzoom.handleDown).toBeCalledWith(ev_3); + + const ev_4 = new PointerEvent('pointermove'); + element.dispatchEvent(ev_4); + expect(panzoom.handleMove).toBeCalledWith(ev_4); + + const ev_5 = new PointerEvent('pointerup'); + element.dispatchEvent(ev_5); + expect(panzoom.handleUp).toBeCalledWith(ev_5); + }); + + it('should not respond to pointer when not zoomed', () => { + const element = document.createElement('div'); + + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + createAndRegisterZoom(element); + + const ev_1 = new PointerEvent('pointerdown'); + element.dispatchEvent(ev_1); + expect(panzoom.handleDown).not.toBeCalledWith(ev_1); + + const ev_2 = new PointerEvent('pointermove'); + element.dispatchEvent(ev_2); + expect(panzoom.handleDown).not.toBeCalledWith(ev_2); + + const ev_3 = new PointerEvent('pointerup'); + element.dispatchEvent(ev_3); + expect(panzoom.handleDown).not.toBeCalledWith(ev_3); + }); + + it('should respond with touch', () => { + mediaSpy.mockReturnValue({ matches: false }); + + const element = document.createElement('div'); + + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + createAndRegisterZoom(element); + + const ev_1 = new TouchEvent('touchstart', { + bubbles: false, + touches: [createTouch(element), createTouch(element)], + }); + element.dispatchEvent(ev_1); + expect(panzoom.handleDown).toBeCalledWith(ev_1); + + panzoom.getScale = vi.fn().mockReturnValue(1.2); + + const ev_3 = new TouchEvent('touchstart'); + element.dispatchEvent(ev_3); + expect(panzoom.handleDown).toBeCalledWith(ev_3); + + const ev_4 = new TouchEvent('touchmove'); + element.dispatchEvent(ev_4); + expect(panzoom.handleMove).toBeCalledWith(ev_4); + + const ev_5 = new TouchEvent('touchend'); + element.dispatchEvent(ev_5); + expect(panzoom.handleUp).toBeCalledWith(ev_5); + }); + }); + + it('should ignore click after pointerdown', () => { + const outer = document.createElement('div'); + const inner = document.createElement('div'); + outer.appendChild(inner); + const clickHandler = vi.fn(); + outer.addEventListener('click', clickHandler); + + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + createAndRegisterZoom(inner); + + // Simulate being zoomed in. + panzoom.getScale = vi.fn().mockReturnValue(1.2); + + // A click on its own will be fine. + const click_1 = new MouseEvent('click', { bubbles: true }); + inner.dispatchEvent(click_1); + expect(clickHandler).toBeCalledTimes(1); + + // A click after a pointerdown will be ignored. + const pointerdown_1 = new PointerEvent('pointerdown'); + inner.dispatchEvent(pointerdown_1); + + const click_2 = new MouseEvent('click', { bubbles: true }); + inner.dispatchEvent(click_2); + + // Click will have been ignored. + //expect(clickHandler).toBeCalledTimes(1); + + // Simulate being zoomed out. + panzoom.getScale = vi.fn().mockReturnValue(1.0); + const pointerdown_2 = new PointerEvent('pointerdown'); + inner.dispatchEvent(pointerdown_2); + + const click_3 = new MouseEvent('click', { bubbles: true }); + inner.dispatchEvent(click_3); + + // Click will have been processed. + expect(clickHandler).toBeCalledTimes(2); + }); + + it('deactivate should remove event handlers', () => { + const element = document.createElement('div'); + + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + createAndRegisterZoom(element).deactivate(); + + const ev_1 = new WheelEvent('wheel', { + bubbles: false, + deltaY: -120, + ctrlKey: true, + }); + element.dispatchEvent(ev_1); + expect(panzoom.zoomWithWheel).not.toBeCalled(); + }); + + describe('should fire events', () => { + it('on zoom/unzoom', () => { + const element = document.createElement('div'); + const zoomedFunc = vi.fn(); + const unzoomedFunc = vi.fn(); + element.addEventListener('frigate-card:zoom:zoomed', zoomedFunc); + element.addEventListener('frigate-card:zoom:unzoomed', unzoomedFunc); + + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + createAndRegisterZoom(element); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1.2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + expect(zoomedFunc).toBeCalled(); + expect(unzoomedFunc).not.toBeCalled(); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(unzoomedFunc).toBeCalled(); + }); + + it('when state has not changed or spurious events received', () => { + const element = document.createElement('div'); + const zoomedFunc = vi.fn(); + const unzoomedFunc = vi.fn(); + element.addEventListener('frigate-card:zoom:zoomed', zoomedFunc); + element.addEventListener('frigate-card:zoom:unzoomed', unzoomedFunc); + + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + createAndRegisterZoom(element); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + + // Unzoomed event with scale === 1, this._zoomed will already be false. + expect(unzoomedFunc).not.toBeCalled(); + expect(zoomedFunc).not.toBeCalled(); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1.2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(zoomedFunc).toBeCalledTimes(1); + expect(unzoomedFunc).not.toBeCalled(); + + // Another call when already zoomed will be ignored. + element.dispatchEvent(ev_2); + expect(zoomedFunc).toBeCalledTimes(1); + }); + + describe('on default/non-default', () => { + it('without explicit default', () => { + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const defaultFunc = vi.fn(); + element.addEventListener('frigate-card:zoom:default', defaultFunc); + + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + createAndRegisterZoom(element); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1.2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + expect(defaultFunc).toBeCalledWith( + expect.objectContaining({ detail: { isDefault: false } }), + ); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 50, + y: 50, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(defaultFunc).toBeCalledWith( + expect.objectContaining({ detail: { isDefault: true } }), + ); + }); + + it('with complete explicit default', () => { + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const defaultFunc = vi.fn(); + element.addEventListener('frigate-card:zoom:default', defaultFunc); + + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + const controller = createAndRegisterZoom(element); + controller.setDefaultConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 50, + y: 50, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + expect(defaultFunc).toHaveBeenLastCalledWith( + expect.objectContaining({ detail: { isDefault: false } }), + ); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 115.62, + y: 63.6525, + scale: 2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(defaultFunc).toHaveBeenLastCalledWith( + expect.objectContaining({ detail: { isDefault: true } }), + ); + }); + + it('with partial explicit default', () => { + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const defaultFunc = vi.fn(); + element.addEventListener('frigate-card:zoom:default', defaultFunc); + + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + const controller = createAndRegisterZoom(element); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 51, + y: 51, + scale: 2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + expect(defaultFunc).toHaveBeenLastCalledWith( + expect.objectContaining({ detail: { isDefault: false } }), + ); + + controller.setDefaultConfig({}); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 50, + y: 50, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(defaultFunc).toHaveBeenLastCalledWith( + expect.objectContaining({ detail: { isDefault: true } }), + ); + }); + }); + }); + + describe('should automatically set correct zoom', () => { + it('with start', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = new ZoomController(element); + controller.setDefaultConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + + // Controller was not activated, config setting will not update pan/zoom. + expect(panzoom.zoom).not.toBeCalled(); + expect(panzoom.pan).not.toBeCalled(); + + controller.activate(); + expect(Panzoom).toBeCalledWith( + expect.anything(), + expect.objectContaining({ + contain: "outside", + cursor: undefined, + maxScale: 10, + minScale: 1, + noBind: true, + touchAction: "", + startScale: 2, + startX: 115.62, + startY: 63.6525, + }) + ); + }); + + it('with set of default config', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = createAndRegisterZoom(element); + controller.setDefaultConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + + triggerResizeObserver(); + + expect(panzoom.zoom).toBeCalledWith(2, { animate: false }); + expect(panzoom.pan).toBeCalledWith(115.62, 63.6525, { animate: false }); + }); + + it('with set of config when a default is already set', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = createAndRegisterZoom(element); + + // This call will do nothing since this is what zoom/pan already are. + controller.setDefaultConfig({ zoom: 1, pan: { x: 0, y: 0 } }); + + expect(panzoom.zoom).not.toBeCalled(); + expect(panzoom.pan).not.toBeCalled(); + + controller.setDefaultConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + + expect(panzoom.zoom).toHaveBeenNthCalledWith(1, 2, { animate: false }); + expect(panzoom.pan).toHaveBeenNthCalledWith(1, 115.62, 63.6525, { + animate: false, + }); + + controller.setConfig({ zoom: 3, pan: { x: 5, y: 6 } }); + + expect(panzoom.zoom).toHaveBeenNthCalledWith(2, 3, { animate: false }); + expect(panzoom.pan).toHaveBeenNthCalledWith(2, 147.6, 81.18, { + animate: false, + }); + }); + + it('with repeated calls with same values', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = createAndRegisterZoom(element); + + controller.setConfig({ zoom: 1 }); + expect(panzoom.zoom).not.toHaveBeenCalled(); + + controller.setConfig({ pan: { x: 50, y: 50 } }); + expect(panzoom.zoom).not.toHaveBeenCalled(); + + controller.setConfig({ zoom: 1, pan: { x: 50, y: 50 } }); + expect(panzoom.zoom).not.toHaveBeenCalled(); + + controller.setConfig({}); + expect(panzoom.zoom).not.toHaveBeenCalled(); + + controller.setConfig({ zoom: 2 }); + + expect(panzoom.zoom).toBeCalledTimes(1); + expect(panzoom.pan).toBeCalledTimes(1); + expect(panzoom.zoom).toHaveBeenNthCalledWith(1, 2, { animate: false }); + expect(panzoom.pan).toHaveBeenNthCalledWith(1, 0, 0, { + animate: false, + }); + + vi.mocked(panzoom.getScale).mockReturnValue(2); + vi.mocked(panzoom.getPan).mockReturnValue({ x: 0, y: 0 }); + controller.setConfig({ zoom: 2 }); + + expect(panzoom.zoom).toBeCalledTimes(1); + expect(panzoom.pan).toBeCalledTimes(1); + }); + + it('when config is set to empty', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = createAndRegisterZoom(element); + controller.setDefaultConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + mockClear(panzoom); + + controller.setConfig({}); + + // Should fall back to default. + expect(panzoom.zoom).toBeCalledWith(2, { animate: false }); + expect(panzoom.pan).toBeCalledWith(115.62, 63.6525, { + animate: false, + }); + }); + + it('when resized', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + const controller = createAndRegisterZoom(element); + controller.setConfig({ zoom: 2, pan: { x: 3, y: 4 } }); + + expect(panzoom.zoom).toHaveBeenNthCalledWith(1, 2, { animate: false }); + expect(panzoom.pan).toHaveBeenNthCalledWith(1, 115.62, 63.6525, { + animate: false, + }); + + vi.mocked(panzoom.getScale).mockReturnValue(2); + vi.mocked(panzoom.getPan).mockReturnValue({ x: 3, y: 4 }); + + setElementToDefaultCardSize(element); + triggerResizeObserver(); + + expect(panzoom.zoom).toHaveBeenNthCalledWith(2, 2, { animate: false }); + expect(panzoom.pan).toHaveBeenNthCalledWith(2, 57.81, 31.82625, { + animate: false, + }); + }); + + it('when not yet activated', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + setElementToDefaultCardSize(element); + + new ZoomController(element); + + triggerResizeObserver(); + + expect(panzoom.zoom).not.toBeCalled(); + expect(panzoom.pan).not.toBeCalled(); + }); + + it('when element has no size', () => { + const panzoom = createMockPanZoom(); + vi.mocked(Panzoom).mockReturnValueOnce(panzoom); + + const element = document.createElement('div'); + element.getBoundingClientRect = vi.fn().mockReturnValue({ + width: 0, + height: 0, + }); + createAndRegisterZoom(element); + + triggerResizeObserver(); + + expect(panzoom.zoom).not.toBeCalled(); + expect(panzoom.pan).not.toBeCalled(); + }); + }); + + it('should set touch action on zoom/unzoom', () => { + const element = document.createElement('div'); + vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom()); + + createAndRegisterZoom(element); + + const ev_1 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1.2, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_1); + expect(element.style.touchAction).toBe('none'); + + const ev_2 = new CustomEvent('panzoomchange', { + detail: { + x: 0, + y: 0, + scale: 1, + isSVG: false, + originalEvent: new PointerEvent('pointermove'), + }, + }); + element.dispatchEvent(ev_2); + expect(element.style.touchAction).toBeFalsy(); + }); +}); diff --git a/tests/components-lib/zoom/zoom-view-context.test.ts b/tests/components-lib/zoom/zoom-view-context.test.ts new file mode 100644 index 00000000..818cc569 --- /dev/null +++ b/tests/components-lib/zoom/zoom-view-context.test.ts @@ -0,0 +1,85 @@ +import { describe, expect, it, vi } from 'vitest'; +import { + generateViewContextForZoomChange, + handleZoomDefaultEvent, +} from '../../../src/components-lib/zoom/zoom-view-context'; + +describe('generateViewContextForZoomChangeRequest', () => { + it('with config', () => { + expect( + generateViewContextForZoomChange('target', { + zoom: { + pan: { x: 1, y: 2 }, + zoom: 3, + }, + }), + ).toEqual({ + zoom: { + target: { + zoom: { + pan: { x: 1, y: 2 }, + zoom: 3, + }, + }, + }, + }); + }); + + it('without config', () => { + expect(generateViewContextForZoomChange('target')).toEqual({ + zoom: { + target: { + zoom: null, + }, + }, + }); + }); +}); + +describe('generateViewContextForZoomDefault', () => { + it('default', () => { + expect(generateViewContextForZoomChange('target', { isDefault: true })).toEqual({ + zoom: { + target: { + isDefault: true, + zoom: null, + }, + }, + }); + }); + + it('not default', () => { + expect(generateViewContextForZoomChange('target', { isDefault: false })).toEqual({ + zoom: { + target: { + isDefault: false, + zoom: null, + }, + }, + }); + }); +}); + +// @vitest-environment jsdom +it('handleZoomDefaultEvent', () => { + const element = document.createElement('div'); + const callback = vi.fn(); + element.addEventListener('frigate-card:view:change-context', callback); + handleZoomDefaultEvent( + element, + new CustomEvent('frigate-card:zoom:default', { detail: { isDefault: true } }), + 'target', + ); + expect(callback).toBeCalledWith( + expect.objectContaining({ + detail: { + zoom: { + target: { + zoom: null, + isDefault: true, + }, + }, + }, + }), + ); +}); diff --git a/tests/config/types.test.ts b/tests/config/types.test.ts index e94ced6c..05342c9d 100644 --- a/tests/config/types.test.ts +++ b/tests/config/types.test.ts @@ -175,6 +175,10 @@ describe('config defaults', () => { enabled: true, priority: 50, }, + default_zoom: { + enabled: true, + priority: 50, + }, display_mode: { enabled: true, priority: 50, diff --git a/tests/utils/action.test.ts b/tests/utils/action.test.ts index d75389b6..1591b68b 100644 --- a/tests/utils/action.test.ts +++ b/tests/utils/action.test.ts @@ -5,6 +5,7 @@ import { actionSchema } from '../../src/config/types'; import { convertActionToFrigateCardCustomAction, createFrigateCardCameraAction, + createFrigateCardChangeZoomAction, createFrigateCardDisplayModeAction, createFrigateCardMediaPlayerAction, createFrigateCardShowPTZAction, @@ -114,6 +115,38 @@ describe('createFrigateCardShowPTZAction', () => { }); }); +describe('createFrigateCardChangeZoomAction', () => { + it('should create change zoom default action', () => { + expect( + createFrigateCardChangeZoomAction('target_id', { + cardID: 'card_id', + }), + ).toEqual({ + action: 'fire-dom-event', + frigate_card_action: 'change_zoom', + card_id: 'card_id', + target_id: 'target_id', + }); + }); + + it('should create change zoom specific action', () => { + expect( + createFrigateCardChangeZoomAction('target_id', { + cardID: 'card_id', + pan: { x: 1, y: 2 }, + zoom: 3, + }), + ).toEqual({ + action: 'fire-dom-event', + frigate_card_action: 'change_zoom', + card_id: 'card_id', + target_id: 'target_id', + pan: { x: 1, y: 2 }, + zoom: 3, + }); + }); +}); + describe('getActionConfigGivenAction', () => { const action = actionSchema.parse({ action: 'fire-dom-event', diff --git a/tests/utils/basic.test.ts b/tests/utils/basic.test.ts index 38c0add6..50fc0e60 100644 --- a/tests/utils/basic.test.ts +++ b/tests/utils/basic.test.ts @@ -2,6 +2,7 @@ import { afterAll, describe, expect, it, vi } from 'vitest'; import { FrigateCardError } from '../../src/types'; import { allPromises, + arefloatsApproximatelyEqual, arrayify, arrayMove, aspectRatioToStyle, @@ -12,6 +13,7 @@ import { errorToConsole, formatDate, formatDateAndTime, + generateFloatApproximatelyEqualsCustomizer, getChildrenFromElement, getDurationString, isHoverableDevice, @@ -406,3 +408,54 @@ describe('desparsifyArrays', () => { }); }); }); + +describe('arefloatsApproximatelyEqual', () => { + describe('without precision', () => { + it('equals', () => { + expect(arefloatsApproximatelyEqual(1.1, 1.2)).toBeTruthy(); + }); + it('not equals', () => { + expect(arefloatsApproximatelyEqual(0.5, 1.5)).toBeFalsy(); + }); + }); + describe('with precision', () => { + it('equals', () => { + expect(arefloatsApproximatelyEqual(1.00001, 1.00002, 4)).toBeTruthy(); + }); + it('not equals', () => { + expect(arefloatsApproximatelyEqual(0.5, 1.5, 4)).toBeFalsy(); + }); + }); +}); + +describe('generateFloatApproximatelyEqualsCustomizer', () => { + describe('with incorrect types', () => { + it('undefined a', () => { + expect( + generateFloatApproximatelyEqualsCustomizer(4)(undefined, 1.2), + ).toBeUndefined(); + }); + it('undefined b', () => { + expect( + generateFloatApproximatelyEqualsCustomizer(4)(1.2, undefined), + ).toBeUndefined(); + }); + it('strings', () => { + expect( + generateFloatApproximatelyEqualsCustomizer(4)('foo', 'bar'), + ).toBeUndefined(); + }); + }); + describe('with correct types', () => { + it('equals', () => { + expect( + generateFloatApproximatelyEqualsCustomizer(4)(1.00001, 1.00002), + ).toBeTruthy(); + }); + it('not equals', () => { + expect( + generateFloatApproximatelyEqualsCustomizer(5)(1.00001, 1.00002), + ).toBeFalsy(); + }); + }); +}); diff --git a/vite.config.ts b/vite.config.ts index 6794fe02..25a3f0be 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,7 +18,7 @@ const FULL_COVERAGE_FILES_RELATIVE = [ 'components-lib/menu-button-controller.ts', 'components-lib/menu-controller.ts', 'components-lib/ptz-controller.ts', - 'components-lib/zoom-controller.ts', + 'components-lib/zoom/*.ts', 'config/**/*.ts', 'const.ts', 'types.ts',